40 . SH4TREE,SH3TREE,SH4TRIM,SH3TRIM,LSUBMODEL)
52#include "implicit_f.inc"
59#include "remesh_c.inc"
63 INTEGER IPART(LIPART1,*), IPARTC(*), IPARTTG(*),
64 . ixc(nixc,*), ixtg(nixtg,*),
65 . sh4tree(ksh4tree,*), sh3tree(ksh3tree,*),
66 . sh4trim(*), sh3trim(*)
71 INTEGER ID,ID1,ID2,ID3,ID4,II,I1,I2,I3,I4,NLIST,N,LEVEL,NN,
73 INTEGER IERROR, NINTLST2,ERRORADJ,NSHELL,NSH3N
74 INTEGER,
DIMENSION(:),
ALLOCATABLE :: LIST,INDEXL
75 INTEGER IX1(MAX(NUMELC,NUMELTG)),
76 . ix2(max(numelc,numeltg
77 . index(2*max(numelc,numeltg))
79 CHARACTER(LEN=NCHARTITLE) :: TITR
80 CHARACTER(LEN=NCHARKEY) :: KEY,KEY2
83 DATA mess /
'ADAPTIVE MESHING STATE DEFINITION '/
101 IF(key2(1:len_trim(key2))==
'SHELL')
THEN
104 is_available = .false.
108 CALL hm_get_intv(
'NSHELL',nshell,is_available,lsubmodel)
109 nlist = nlist + nshell
115 ALLOCATE(list(5*nlist),stat=ierror)
116 IF(ierror/=0)
CALL ancmsg(msgid=268,anmode=aninfo,
119 ALLOCATE(indexl(10*nlist),stat=ierror)
120 IF(ierror/=0)
CALL ancmsg(msgid=268,anmode=aninfo,
136 . option_titr = titr,
140 IF(key2(1:len_trim(key2))==
'SHELL')
THEN
143 is_available = .false.
147 CALL hm_get_intv(
'NSHELL',nshell,is_available,lsubmodel)
172 nn=nintlst2(list,nlist,indexl,ixc,nixc,numelc,
173 . mess,ix1,ix2,index,0)
188 . option_titr = titr,
192 IF(key2(1:len_trim(key2))==
'SHELL')
THEN
195 is_available = .false.
199 CALL hm_get_intv(
'NSHELL',nshell,is_available,lsubmodel)
222 IF(i1+i2+i3+i4 /=0 .AND.
223 . (i2-i1/=1 .OR. i3-i1 /= 2 .OR. i4-i1 /= 3))
THEN
234 IF(i1+i2+i3+i4 /=0)
THEN
236 IF(ixc(2,ii) /= ixc(2,i1).OR.ixc(3,ii) /= ixc(3,i2)
237 . .OR.ixc(4,ii) /= ixc(4,i3).OR.ixc(5,ii) /= ixc(5,i4))
THEN
239 ELSEIF(ixc(4,i1) /= ixc(5,i2).OR.ixc(5,i2) /= ixc(2,i3)
240 . .OR.ixc(2,i3) /= ixc(3,i4).OR.ixc(4,i1) /= ixc(3,i4))
THEN
242 ELSEIF(ixc(3,i1) /= ixc(2,i2).OR.ixc(4,i2) /= ixc(3,i3)
243 . .OR.ixc(5,i3) /= ixc(4,i4).OR.ixc(5,i1) /= ixc(2,i4))
THEN
247 IF(erroradj ==1.AND.abs(level)<levelmax)
THEN
258 IF(level<-levelmax-1.OR.level>levelmax)
THEN
296 . option_titr = titr,
300 IF(key2(1:len_trim(key2))==
'SH3N')
THEN
303 is_available = .false.
307 CALL hm_get_intv(
'NSH3N',nsh3n,is_available,lsubmodel)
308 nlist = nlist + nsh3n
316 ALLOCATE(list(5*nlist),stat=ierror)
317 IF(ierror/=0)
CALL ancmsg(msgid=268,anmode=aninfo,
320 ALLOCATE(indexl(10*nlist),stat=ierror)
321 IF(ierror/=0)
CALL ancmsg(msgid=268,anmode=aninfo,
339 . option_titr = titr,
343 IF(key2(1:len_trim(key2))==
'SH3N')
THEN
345 is_available = .false.
349 CALL hm_get_intv(
'NSH3N',nsh3n,is_available,lsubmodel)
376 NN=NINTLST2(LIST,NLIST,INDEXL,IXTG,NIXTG,NUMELTG,
377 . MESS,IX1,IX2,INDEX,0)
384 CALL HM_OPTION_START('/admesh/state
')
391 CALL HM_OPTION_READ_KEY(LSUBMODEL,
392 . OPTION_TITR = TITR,
396 IF(KEY2(1:LEN_TRIM(KEY2))=='sh3n
')THEN
399 IS_AVAILABLE = .FALSE.
403 CALL HM_GET_INTV('nsh3n
',NSH3N,IS_AVAILABLE,LSUBMODEL)
407 CALL HM_GET_INT_ARRAY_INDEX('sh3n_id
',ID,I,IS_AVAILABLE,LSUBMODEL)
408 CALL HM_GET_INT_ARRAY_INDEX('sh3n_id1
',ID1,I,IS_AVAILABLE,LSUBMODEL)
409 CALL HM_GET_INT_ARRAY_INDEX('sh3n_id2
',ID2,I,IS_AVAILABLE,LSUBMODEL)
410 CALL HM_GET_INT_ARRAY_INDEX('sh3n_id3
',ID3,I,IS_AVAILABLE,LSUBMODEL)
411 CALL HM_GET_INT_ARRAY_INDEX('sh3n_id4
',ID4,I,IS_AVAILABLE,LSUBMODEL)
412 CALL HM_GET_INT_ARRAY_INDEX('actlev
',LEVEL,I,IS_AVAILABLE,LSUBMODEL)
413 CALL HM_GET_INT_ARRAY_INDEX('imapping
',ITRIM,I,IS_AVAILABLE,LSUBMODEL)
427.AND.
IF(I1+I2+I3+I4 /=0
428.OR..OR.
. (I2-I1/=1 I3-I1 /= 2 I4-I1 /= 3))THEN
429 CALL ANCMSG(MSGID=655,
439 IF(I1+I2+I3+I4 /=0) THEN
441.OR.
IF(IXTG(2,II) /= IXTG(2,I1)IXTG(3,II) /= IXTG(3,I2)
442.OR.
. IXTG(4,II) /= IXTG(4,I3)) THEN
444.OR.
ELSEIF(IXTG(3,I1) /= IXTG(2,I2)IXTG(4,I2) /= IXTG(3,I3)
445.OR.
. IXTG(2,I3) /= IXTG(3,I4)) THEN
447.OR.
ELSEIF(IXTG(4,I1) /= IXTG(2,I3)IXTG(4,I1) /= IXTG(3,I4)
448.OR..OR..OR.
. IXTG(4,I2) /= IXTG(2,I4)IXTG(4,I4) /= IXTG(2,I2)
449 . IXTG(4,I4) /= IXTG(3,I1)) THEN
453.AND.
IF(ERRORADJ ==1ABS(LEVEL)<LEVELMAX) THEN
454 CALL ANCMSG(MSGID=1023,
464.OR.
IF(LEVEL<-LEVELMAX-1LEVEL>LEVELMAX)THEN
465 CALL ANCMSG(MSGID=657,
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)