50 1 ITYP ,KEY ,ITAB ,ITABM1 ,IX ,
51 3 NIX ,IAD ,IFI ,ITHGRP ,ITHBUF ,
52 4 NV ,VARE ,NUMEL ,VARG ,NVG ,
53 5 IVARG ,NSNE ,NV0 ,IMERGE ,ITHVAR ,ITHERM_FE,
54 6 FLAGABF,NVARABF,RFI ,LSUBMODEL,MAP ,
66#include "implicit_f.inc"
81 INTEGER NIX,ITYP,ITABM1(*),IX(NIX,*),
82 . ITAB(NUMNOD),(NITHGR),ITHBUF(*),
83 . IFI,IAD,NV,NUMEL,NVG,IVARG(18,*),NSNE,
85 CHARACTER*10 VARE(NV),KEY,VARG(NVG),KEY1
86 INTEGER,
INTENT(in) :: MAPSIZE
87 INTEGER,
INTENT(in) :: ITHERM_FE
88 INTEGER,
DIMENSION(MAPSIZE,2),
INTENT(in) :: MAP
89 TYPE(SUBMODEL_DATA) :: LSUBMODEL(NSUBMOD)
93 INTEGER J,JJ, I,ISU,ID,NNE,NOSYS,J10(10),NTOT,KK,IER,
94 . ok,igs,igrs,nsu,k,l,cont,iad0,iadv,ntri,
nl,
95 . ifitmp,iadfin,
nvar,m,n,iad1,iad2,isk,iproc,
jc,
98 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
99 CHARACTER MESS*40,DIRMSG*3
105 INTEGER USR2SYS,ULIST2S,LISTCNT,NINTRN,HM_THVARC
109 DATA MESS/
'TH GROUP '/
113 is_available = .false.
115 CALL fretitl2(titr1,ithgrp(nithgr-ltitr+1),ltitr)
123 IF (
nvar>0)
nvar = hm_thvarc(vare,nv,ithbuf(iad),varg,nvg,ivarg,nv0,id,titr1 ,lsubmodel)
126 CALL ancmsg(msgid=1109,msgtype=msgerror,anmode
139 CALL hm_get_intv(
'idsmax',idsmax,is_available,lsubmodel)
143 IF (nsubdom /= 0)
THEN
146 IF(
r2r_sys(n,itabm1,mess) /= 0)
THEN
150 IF(r2r_nin(n,ix,nix,numel) /= 0)
THEN
161 iad2=iad+lvarithb*nne
164 CALL zeroin(iad,iad+(40+lvarithb)*nne-1,ithbuf)
173 titr(siz+1:siz+1)=
' '
176 IF(nsubdom /= 0)
THEN
177 IF (
r2r_sys(n,itabm1,mess) == 0) cycle
179 ithbuf(iad)=usr2sys(n,itabm1
182 IF (ithbuf(iad) == imerge(
jc))
183 . ithbuf(iad) = imerge(numcnod+
jc)
187 IF(nsubdom /= 0)
THEN
188 IF (r2r_nin(n,ix,nix,numel) == 0) cycle
190 id_local = set_usrtos(n,map,mapsize)
191 IF(id_local == 0)
THEN
195 ithbuf(iad)=map(id_local,2)
198 ithbuf(iad+nne)=iproc
199 ithbuf(iad+3*nne)=isk
204 CALL fretitl(titr,ithbuf(iad2),40)
212 CALL hord3(ithbuf(iad
216 DO i=iad0,iad0+
nvar-1
217 IF((ireac == 0) .AND. (ithbuf(i) == 620 .OR.
218 . ithbuf(i) == 621 .OR. ithbuf(i) == 622 .OR.
219 . ithbuf(i) == 623 .OR. ithbuf(i) == 624 .OR.
220 . ithbuf(i) == 625)) ireac = 1
221 IF((ithbuf(i) == 626 .OR. ithbuf(i) == 627 .OR.
222 . ithbuf(i) == 628) .AND.
223 . ((isecut == 0 .AND. iisrot == 0 .AND. impose_dr == 0 .AND. idrot == 0) .OR. iroddl == 0))
THEN
224 IF (ithbuf(i) == 626)dirmsg=
'DRX'
225 IF (ithbuf(i) == 627)dirmsg=
'DRY'
226 IF (ithbuf(i) == 628)dirmsg='drz
'
227 CALL FRETITL2(TITR,ITHGRP(NITHGR-LTITR+1),LTITR)
228 CALL ANCMSG(MSGID=774, MSGTYPE=MSGWARNING, ANMODE=ANINFO_BLIND_1, I1=ITHGRP(1), C1=TITR, I2=ITHGRP(1), C2=DIRMSG)
230.AND.
IF(ITHBUF(I) == 19 ITHERM_FE == 0 ) THEN
231 CALL FRETITL2(TITR,ITHGRP(NITHGR-LTITR+1),LTITR)
232 CALL ANCMSG(MSGID=1087,
233 . MSGTYPE=MSGWARNING,
234 . ANMODE=ANINFO_BLIND_1,
243 ITHBUF(IAD+2*NNE)=ITAB(K)
247 CALL UDOUBLE(ITHBUF(IAD+2*nne),1,NNE,MESS,0,BID)
248 ELSE ! Not used in the program. Now is used for saving skew number when it's defined
252 ithbuf(iad+2*nne)=ix(nix,k)
258 CALL udouble(ithbuf(iad+2*nne),1,nne,mess,0,bid)
270 DO j=iad0,iad0+
nvar-1
272 ithvar((ithgrp(9)+(j-iad0)-1)*10+k)=
273 . ichar(vare(ithbuf(j))(k:k))
276 nvarabf = nvarabf +
nvar
282 DO j=iad0,iad0+
nvar-1
283 IF ( vare(ithbuf(j))(1:3) ==
'EPS' .OR.
284 . vare(ithbuf(j))(1:4) ==
'LEPS' ) th_strain = 1
297 IF ( key ==
'NODE' )
THEN
306 CALL fretitl2(titr,ithgrp(nithgr-ltitr+1),ltitr)
307 WRITE(iout,
'(A,I10,3A,I3,A,I5,A,2A)')
'TH GROUP:',ithgrp(1),
',',trim(titr),
',',
nvar,
' VAR,',n,
' ',key1,
':'
308 WRITE(iout,
'(A)')
' -------------------'
310 WRITE(iout,
'(10A10)')(vare(ithbuf(j)),j=iad0,iad0+
nvar-1)
311 WRITE(iout,
'(A)')
' NODE SKEW(OR FRAME) NAME '
315 WRITE(iout,
'(2I10,8X,2A)')itab(ithbuf(k)),ithbuf
' ',titr(1:40)
318 WRITE(iout,
'(10A10)')(vare(ithbuf(j)),j=iad0,iad0+
nvar
319 WRITE(iout,
'(2A)')key,
' P_SPMD NAME '
323 WRITE(iout,
'(2I10,2A)')ix(nix,ithbuf(k)),ithbuf(k+n),
' ',titr(1:40)
subroutine hm_read_thgrne(ityp, key, itab, itabm1, ix, nix, iad, ifi, ithgrp, ithbuf, nv, vare, numel, varg, nvg, ivarg, nsne, nv0, imerge, ithvar, itherm_fe, flagabf, nvarabf, rfi, lsubmodel, map, mapsize)
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)