37 1 IXQ ,PM ,IPARG ,GEO ,
38 2 EADD ,ND ,DD_IAD ,IDX ,
39 3 INUM ,INDEX ,CEP ,IPARTQ ,
40 4 ITR1 ,IGRSURF ,IGRQUAD,MAT_PARAM,
41 5 IGEO ,IPM ,IQUAOFF,INIVOL,PRINT_FLAG)
69#include "implicit_f.inc"
73#include "vect01_c.inc"
84 INTEGER IGEO(NPROPGI,NUMGEO),IPM(NPROPMI,NUMMAT), IXQ(NIXQ,NUMELQ),IPARG(NPARG,*),
85 . EADD(*),(NSPMD+1,*),INUM(9,*),INDEX(*),
86 . CEP(*),IPARTQ(*),ITR1(*),
88 INTEGER,
INTENT(IN) :: PRINT_FLAG
89 TYPE (INIVOL_STRUCT_) ,
DIMENSION(NUM_INIVOL) :: INIVOL
90 MY_REAL PM(NPROPM,NUMMAT), GEO(NPROPG,NUMGEO)
92 TYPE (GROUP_) ,
DIMENSION(NGRQUAD) :: IGRQUAD
93 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
94 TYPE(matparam_struct_) ,
DIMENSION(NUMMAT),
INTENT(IN) :: MAT_PARAM
99 . ngr1, mln, ng, n, mid, pid, ii, nel, ne1,
100 . p, nel_prec, lb_l, igt, jhbe, i,
101 . ml1, ml2, mt1, mt2,nb,ineg,ieos,
103 . iplast,ifail,nfail,
104 . ngp(nspmd+1),icpre,ipartr2r,ismst,tag_invol,
105 . jale_from_mat,jale_from_prop
106 INTEGER ID,MFT,ILOC,JJ
107 CHARACTER(LEN=NCHARTITLE)::TITR
117 CALL zeroin(1,nd*(nspmd+1),dd_iad(1,nspgroup+1))
123 dd_iad(p,nspgroup+n) = 0
131 nel = eadd(n+1)-eadd(n)
135 inum(1,i)=ipartq(nft+i)
136 inum(2,i)=ixq(1,nft+i)
137 inum(3,i)=ixq(2,nft+i)
138 inum(4,i)=ixq(3,nft+i)
139 inum(5,i)=ixq(4,nft+i)
140 inum(6,i)=ixq(5,nft+i)
141 inum(7,i)=ixq(6,nft+i)
142 inum(8,i)=ixq(7,nft+i)
143 inum(9,i)=iquaoff(nft+i)
147 CALL my_orders( mode, work, cep(nft+1), index, nel , 1)
149 ipartq(i+nft)=inum(1,index(i))
150 ixq(1,i+nft)=inum(2,index(i))
151 ixq(2,i+nft)=inum(3,index(i))
152 ixq(3,i+nft)=inum(4,index(i))
153 ixq(4,i+nft)=inum(5,index(i))
154 ixq(5,i+nft)=inum(6,index(i))
155 ixq(6,i+nft)=inum(7,index(i))
156 ixq(7,i+nft)=inum(8,index(i))
157 iquaoff(i+nft)=inum(9,index(i))
158 itr1(nft+index(i)) = nft+i
162 p = cep(nft+index(1))
165 IF (cep(nft+index(i))/=p)
THEN
166 dd_iad(p+1,nspgroup+n) = nb
168 p = cep(nft+index(i))
173 dd_iad(p+1,nspgroup+n) = nb
175 dd_iad(p,nspgroup+n) = dd_iad(p,nspgroup+n)
176 . + dd_iad(p-1,nspgroup+n
179 dd_iad(p,nspgroup+n) = dd_iad(p-1,nspgroup+n)+1
181 dd_iad(1,nspgroup+n) = 1
186 index(i) = cep(nft+index(i))
189 cep(nft+i) = index(i)
200 IF(igrsurf(i)%ELTYP(j) == 2)
201 . igrsurf(i)%ELEM(j) = itr1(igrsurf(i)%ELEM(j))
208 nn=igrquad(i)%NENTITY
210 igrquad(i)%ENTITY(j) = itr1(igrquad(i)%ENTITY(j))
221 nel = dd_iad(p+1,nspgroup+n)-dd_iad(p,nspgroup+n)
223 nel_prec = dd_iad(p,nspgroup+n)-dd_iad(1,nspgroup+n)
225 ng = (nel-1)/nvsiz + 1
233 IF (nsubdom>0) ipartr2r =
tag_mat(mid)
244 IF(igeo(10,pid)==17 .OR.
245 . (n2d==1.AND.igeo(10,pid)==22))
THEN
251 istrain= igeo(12,pid)
253 isorth = igeo(17,pid)
255 IF (igt /= 15) iplast = igeo(9,pid)
256 IF(igt==15) jpor=2*nint(geo(28,pid))
258 mln = nint(pm(19,abs(mid)))
260 IF(mln==6.AND.jpor/=2)mln=17
266 jale_from_mat = nint(pm(72,mid))
267 jale_from_prop = igeo(62,pid)
268 jale =
max(jale_from_mat, jale_from_prop)
270 IF(jale==0.AND.mln/=18)jlag=1
277 !
ale rezoning/remaping : number of mat/eos variables to treat(used by staggered scheme only : arezon.f)
281 ale%REZON%NUM_NUVAR_MAT =
ale%REZON%NUM_NUVAR_MAT + mat_param(mid)%REZON%NUM_NUVAR_MAT
282 ale%REZON%NUM_NUVAR_EOS =
ale%REZON%NUM_NUVAR_EOS + mat_param(mid)%REZON%NUM_NUVAR_EOS
287 iparg(81,ngroup) = mat_param(mid)%REZON%NUM_NUVAR_MAT
288 iparg(82,ngroup) = mat_param(mid)%REZON%NUM_NUVAR_EOS
291 jtur=nint(pm(70,mid))
292 jthe=nint(pm(71,mid))
296 jmult=nint(pm(20,mid))
309 IF (igt == 14.OR.igt == 6)
THEN
310 IF (icpre < 0) icpre =0
311 IF (ismst < 0) ismst =4
322 CALL fretitl2(titr,igeo(npropgi-ltitr+1,pid),ltitr)
323 IF (ismst /= 2 .AND. ismst /= 4)
THEN
326 . anmode=aninfo_blind_2,
334 . anmode=aninfo_blind_1,
338 IF (jhbe==17.AND.(jale+jeul /= 0))
THEN
340 . msgtype=msgwarning,
341 . anmode=aninfo_blind_2,
346 IF (geo(13,pid) == zero) geo(13,pid) = em01
352 IF(jcvt/=0.AND.(jlag==0.OR.mln==20))
THEN
354 . igeo(npropgi-ltitr+1,pid),ltitr)
356 . msgtype=msgwarning,
357 . anmode=aninfo_blind_1,
365 nfail = mat_param(mid)%NFAIL
376 mft = eadd(n)-1 + nft
377 ne1=
min( nvsiz, nel + nel_prec - nft)
380 IF(inivol(jj)%PART_ID == ipartq(iloc+mft))
THEN
393 CALL zeroin(1,nparg,iparg(1,ngroup))
395 iparg(1,ngroup) = mln
396 ne1 =
min( nvsiz, nel + nel_prec - nft)
397 iparg(2,ngroup) = ne1
398 iparg(3,ngroup)= eadd(n)-1 + nft
402 iparg(6,ngroup) = npt
403 iparg(7,ngroup) = jale
404 iparg(11,ngroup)= jeul
405 iparg(12,ngroup)= jtur
406 IF(jale == 0 .AND. jeul == 0)
THEN
407 iparg(13,ngroup)=-abs(jthe)
409 iparg(13,ngroup)=+abs(jthe)
411 iparg(14,ngroup)= jlag
412 iparg(18,ngroup)= mid
413 iparg(20,ngroup)= jmult
415 IF (mln == 151) iparg(20, ngroup) = ipm(20, mid)
416 iparg(10,ngroup)= icpre
417 iparg(23,ngroup)= jhbe
419 iparg(25,ngroup)= ml1
420 iparg(26,ngroup)= ml2
421 iparg(27,ngroup)= jpor
422 iparg(29,ngroup)= iplast
424 iparg(32,ngroup)= p-1
426 iparg(34,ngroup)= nint(pm(10,mid))
427 iparg(37,ngroup)= jcvt
428 iparg(38,ngroup)= igt
429 iparg(40,ngroup)= israt
430 iparg(42,ngroup)= isorth
431 iparg(43,ngroup)= ifail
432 iparg(44,ngroup)= istrain
434 iparg(53,ngroup) = tag_invol
436 iparg(55,ngroup)= ieos
437 iparg(62,ngroup)= pid
439 IF (nsubdom>0) iparg(77,ngroup)= ipartr2r
448 ngp(nspmd+1)=ngp(nspmd+1)+ngp(p)
451 dd_iad(nspmd+1,nspgroup+n)=ngp(nspmd+1)
455 nspgroup = nspgroup + nd
459 ixq(1,i) = abs(ixq(1,i))
463 IF(print_flag>6)
THEN
465 WRITE(iout,1001)(n,iparg(1,n),iparg(2,n),iparg(3,n)+1,
466 + iparg(4,n),iparg(6,n),iparg(7,n),iparg(11,n),
467 + iparg(12,n),iparg(13,n),iparg(23,n),
468 + iparg(24,n),iparg(18,n),iparg(27,n),
469 + iparg(29,n)+1,iparg(43,n),iparg(55,n),
473 . msgtype=msgwarning,
474 . anmode=aninfo_blind_2,
478 . anmode=aninfo_blind_2,
481 1000
FORMAT(//,7x,
'4-NODE 2D SOLID ELEMENT GROUPS'/
482 + 7x,
'---------------------'//
483 +
' GROUP MAT. ELEM. FIRST BUFFER GAUSS',
484 +
' A.L.E. EULER TURBU. THERM. HOUR- INTEG',
485 +
' VAR POROUS PLASTI. FAILURE IEOS '/
486 +
' # LAW NUMBER ELEM. ADDRESS POINTS',
487 +
' FLAG FLAG FLAG FLAG GLASS FLAG',
488 +
' MID MEDIUM FLAG FLAG TYPE '/)
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)