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)
52 use element_mod ,
only : nixq
70#include "implicit_f.inc"
74#include "vect01_c.inc"
85 INTEGER IGEO(NPROPGI,NUMGEO),IPM(NPROPMI,NUMMAT), IXQ(NIXQ,NUMELQ),IPARG(NPARG,*),
86 . EADD(*),DD_IAD(NSPMD+1,*),INUM(9,*),INDEX(*),
87 . CEP(*),IPARTQ(*),ITR1(*),
89 INTEGER,
INTENT(IN) :: PRINT_FLAG
90 TYPE (INIVOL_STRUCT_) ,
DIMENSION(NUM_INIVOL) :: INIVOL
91 MY_REAL PM(NPROPM,NUMMAT), GEO(NPROPG,NUMGEO)
93 TYPE (GROUP_) ,
DIMENSION(NGRQUAD) :: IGRQUAD
94 TYPE (SURF_) ,
DIMENSION(NSURF) ::
95 TYPE(matparam_struct_) ,
DIMENSION(NUMMAT),
INTENT(IN)
100 . ngr1, mln, ng, n, mid, pid, ii, nel, ne1,
101 . p, nel_prec, lb_l, igt, jhbe, i,
102 . ml1, ml2, mt1, mt2,nb,ineg,ieos,
103 . mode, work(70000),nn,j,
104 . iplast,ifail,nfail,
105 . ngp(nspmd+1),icpre,ipartr2r,ismst,tag_invol,
106 . jale_from_mat,jale_from_prop
107 INTEGER ID,MFT,ILOC,JJ
108 CHARACTER(LEN=NCHARTITLE)::TITR
118 CALL zeroin(1,nd*(nspmd+1),dd_iad(1,nspgroup+1))
124 dd_iad(p,nspgroup+n) = 0
132 nel = eadd(n+1)-eadd(n)
136 inum(1,i)=ipartq(nft+i)
137 inum(2,i)=ixq(1,nft+i)
138 inum(3,i)=ixq(2,nft+i)
139 inum(4,i)=ixq(3,nft+i)
140 inum(5,i)=ixq(4,nft+i)
141 inum(6,i)=ixq(5,nft+i)
142 inum(7,i)=ixq(6,nft+i)
143 inum(8,i)=ixq(7,nft+i)
144 inum(9,i)=iquaoff(nft+i)
148 CALL my_orders( mode, work, cep(nft+1), index, nel , 1)
150 ipartq(i+nft)=inum(1,index(i))
151 ixq(1,i+nft)=inum(2,index(i))
152 ixq(2,i+nft)=inum(3,index(i))
153 ixq(3,i+nft)=inum(4,index(i))
154 ixq(4,i+nft)=inum(5,index(i))
155 ixq(5,i+nft)=inum(6,index(i))
156 ixq(6,i+nft)=inum(7,index(i))
157 ixq(7,i+nft)=inum(8,index(i))
158 iquaoff(i+nft)=inum(9,index(i))
159 itr1(nft+index(i)) = nft+i
163 p = cep(nft+index(1))
166 IF (cep(nft+index(i))/=p)
THEN
167 dd_iad(p+1,nspgroup+n) = nb
169 p = cep(nft+index(i))
174 dd_iad(p+1,nspgroup+n) = nb
176 dd_iad(p,nspgroup+n) = dd_iad(p,nspgroup+n)
177 . + dd_iad(p-1,nspgroup+n)
180 dd_iad(p,nspgroup+n) = dd_iad(p-1,nspgroup+n)+1
182 dd_iad(1,nspgroup+n) = 1
187 index(i) = cep(nft+index(i))
190 cep(nft+i) = index(i)
201 IF(igrsurf(i)%ELTYP(j) == 2)
202 . igrsurf(i)%ELEM(j) = itr1(igrsurf(i)%ELEM(j))
209 nn=igrquad(i)%NENTITY
211 igrquad(i)%ENTITY(j) = itr1(igrquad(i)%ENTITY(j))
224 nel_prec = dd_iad(p,nspgroup+n)-dd_iad(1,nspgroup+n)
226 ng = (nel-1)/nvsiz + 1
234 IF (nsubdom>0) ipartr2r =
tag_mat(mid)
245 IF(igeo(10,pid)==17 .OR.
246 . (n2d==1.AND.igeo(10,pid)==22))
THEN
252 istrain= igeo(12,pid)
254 isorth = igeo(17,pid)
256 IF (igt /= 15) iplast = igeo(9,pid)
257 IF(igt==15) jpor=2*nint(geo(28,pid))
259 mln = nint(pm(19,abs(mid)))
261 IF(mln==6.AND.jpor/=2)mln=17
267 jale_from_mat = nint(pm(72,mid))
268 jale_from_prop = igeo(62,pid)
269 jale =
max(jale_from_mat, jale_from_prop)
271 IF(jale==0.AND.mln/=18)jlag=1
282 ale%REZON%NUM_NUVAR_MAT =
max(
ale%REZON%NUM_NUVAR_MAT, mat_param(mid)%REZON%NUM_NUVAR_MAT )
283 ale%REZON%NUM_NUVAR_EOS =
max(
ale%REZON%NUM_NUVAR_EOS, mat_param(mid)%REZON%NUM_NUVAR_EOS )
288 iparg(81,ngroup) = mat_param(mid)%REZON%NUM_NUVAR_MAT
289 iparg(82,ngroup) = mat_param(mid)%REZON%NUM_NUVAR_EOS
292 jtur=nint(pm(70,mid))
293 jthe=nint(pm(71,mid))
297 jmult=nint(pm(20,mid))
310 IF (igt == 14.OR.igt == 6)
THEN
311 IF (icpre < 0) icpre =0
312 IF (ismst < 0) ismst =4
323 CALL fretitl2(titr,igeo(npropgi-ltitr+1,pid),ltitr)
324 IF (ismst /= 2 .AND. ismst /= 4)
THEN
327 . anmode=aninfo_blind_2,
335 . anmode=aninfo_blind_1,
339 IF (jhbe==17.AND.(jale+jeul /= 0))
THEN
341 . msgtype=msgwarning,
342 . anmode=aninfo_blind_2,
347 IF (geo(13,pid) == zero) geo(13,pid) = em01
353 IF(jcvt/=0.AND.(jlag==0.OR.mln==20))
THEN
355 . igeo(npropgi-ltitr+1,pid),ltitr)
357 . msgtype=msgwarning,
358 . anmode=aninfo_blind_1,
377 mft = eadd(n)-1 + nft
378 ne1=
min( nvsiz, nel + nel_prec - nft)
381 IF(inivol(jj)%PART_ID == ipartq(iloc+mft))
THEN
394 CALL zeroin(1,nparg,iparg(1,ngroup))
396 iparg(1,ngroup) = mln
397 ne1 =
min( nvsiz, nel + nel_prec - nft)
398 iparg(2,ngroup) = ne1
399 iparg(3,ngroup)= eadd(n)-1 + nft
403 iparg(6,ngroup) = npt
404 iparg(7,ngroup) = jale
405 iparg(11,ngroup)= jeul
406 iparg(12,ngroup)= jtur
407 IF(jale == 0 .AND. jeul == 0)
THEN
408 iparg(13,ngroup)=-abs(jthe)
410 iparg(13,ngroup)=+abs(jthe)
412 iparg(14,ngroup)= jlag
413 iparg(18,ngroup)= mid
414 iparg(20,ngroup)= jmult
416 IF (mln == 151) iparg(20, ngroup) = ipm(20, mid)
417 iparg(10,ngroup)= icpre
418 iparg(23,ngroup)= jhbe
420 iparg(25,ngroup)= ml1
421 iparg(26,ngroup)= ml2
422 iparg(27,ngroup)= jpor
423 iparg(29,ngroup)= iplast
425 iparg(32,ngroup)= p-1
427 iparg(34,ngroup)= nint(pm(10,mid))
428 iparg(37,ngroup)= jcvt
429 iparg(38,ngroup)= igt
430 iparg(40,ngroup)= israt
431 iparg(42,ngroup)= isorth
432 iparg(43,ngroup)= ifail
433 iparg(44,ngroup)= istrain
435 iparg(53,ngroup) = tag_invol
437 iparg(55,ngroup)= ieos
438 iparg(62,ngroup)= pid
440 IF (nsubdom>0) iparg(77,ngroup)= ipartr2r
449 ngp(nspmd+1)=ngp(nspmd+1)+ngp(p)
450 dd_iad(p,nspgroup+n)=ngp(p)
452 dd_iad(nspmd+1,nspgroup+n)=ngp(nspmd+1)
456 nspgroup = nspgroup + nd
460 ixq(1,i) = abs(ixq(1,i))
464 IF(print_flag>6)
THEN
466 WRITE(iout,1001)(n,iparg(1,n),iparg(2,n),iparg(3,n)+1,
467 + iparg(4,n),iparg(6,n),iparg(7,n),iparg(11,n),
468 + iparg(12,n),iparg(13,n),iparg(23,n),
469 + iparg(24,n),iparg(18,n),iparg(27,n),
470 + iparg(29,n)+1,iparg(43,n),iparg(55,n),
474 . msgtype=msgwarning,
475 . anmode=aninfo_blind_2,
479 . anmode=aninfo_blind_2,
482 1000
FORMAT(//,7x,
'4-NODE 2D SOLID ELEMENT GROUPS'/
483 + 7x,
'---------------------'//
484 +
' GROUP MAT. ELEM. FIRST BUFFER GAUSS',
485 +
' A.L.E. EULER TURBU. THERM. HOUR- INTEG',
486 +
' VAR POROUS PLASTI. FAILURE IEOS '/
487 +
' # LAW NUMBER ELEM. ADDRESS POINTS',
488 +
' FLAG FLAG FLAG FLAG GLASS FLAG',
489 +
' 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)