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),ITHGRP(NITHGR),ITHBUF(*),
83 . IFI,IAD,NV,NUMEL,NVG,(18,*),NSNE
85CHARACTER*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, ,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
106 INTEGER R2R_SYS,R2R_NIN
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=aninfo_blind_1,i1=id,c1=titr1 )
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
163 ifi=ifi+lvarithb*nne+40*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,mess,id)
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
192 CALL ancmsg(msgid=69, msgtype=msgerror,anmode=aninfo,i1=ithgrp(1),c1=titr1,i2=n)
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),nne,ithbuf(iad+nne),ithbuf(iad2),40)
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 ==
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
230 IF(ithbuf(i) == 19 .AND. itherm_fe == 0 )
THEN
231 CALL fretitl2(titr,ithgrp(nithgr-ltitr+1),ltitr)
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)
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),
','' VAR,',n,
' ',key1,
':'
308 WRITE(iout,
'(A)')
' -------------------'
310 WRITE(iout,
'(10A10)')(vare(ithbuf(j)),j=iad0,iad0
311 WRITE(iout,
'(A)')
' NODE SKEW(OR FRAME) NAME '
315 WRITE(iout,
'(2I10,8X,2A)')itab(ithbuf(k)),ithbuf(k+n),
' ',titr(1:40)
318 WRITE(iout,
'(10A10)')(vare(ithbuf(j)),j=iad0,iad0+
nvar-1)
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)