40 1 IXTG ,PM ,IPARG ,GEO ,
41 2 EADD ,ND ,IPARTTG,DD_IAD ,
42 3 IDX ,INUM ,INDEX ,CEP ,
43 4 THK ,XNUM ,ITR1 ,IGRSURF,IGRSH3N,
44 5 ICNOD ,IGEO ,IPM ,IXTG1 ,
45 6 IPART ,SH3TREE,NOD2ELTG,ITRIOFF,
46 7 SH3TRIM,TAGPRT_SMS,IWORKSH, STACK,
48 9 MAT_PARAM, SH3ANG,DRAPEG,PRINT_FLAG,PTSH3N,DAMP_RANGE_PART)
62 use element_mod ,
only : nixtg
81#include "implicit_f.inc"
87#include "com_xfem1.inc"
90#include "vect01_c.inc"
92#include "remesh_c.inc"
100 . IXTG(NIXTG,*), IPARG(NPARG,*), EADD(*), IXTG1(4,*),
101 . DD_IAD(NSPMD+1,*),IPARTTG(*),
102 . INUM(10,*),ITR1(*),INDEX(*),CEP(*),ICNOD(*),IPM(NPROPMI,NUMMAT),
103 . ITRIOFF(*), SH3TRIM(*),IGEO(NPROPGI,NUMGEO),
104 . IPART(LIPART1,*), SH3TREE(KSH3TREE,*), NOD2ELTG(*) ,
105 . TAGPRT_SMS(*),IWORKSH(3,*)
106 INTEGER,
INTENT(IN) :: PRINT_FLAG
107 INTEGER ,
DIMENSION(NUMELTG) ,
INTENT(INOUT):: PTSH3N
108 INTEGER ,
INTENT(IN) :: DAMP_RANGE_PART(NPART)
109 MY_REAL PM(NPROPM,NUMMAT), GEO(NPROPG,NUMGEO),THK(*),XNUM(*),RNOISE(NPERTURB,*), SH3ANG(*)
112 TYPE (DRAPE_) ,
TARGET :: DRAPE(NUMELC_DRAPE
113TYPE (DRAPEG_) :: DRAPEG,XNUM_DRAPEG
114 TYPE (DRAPE_) ,
DIMENSION(:),
ALLOCATABLE :: XNUM_DRAPE
115 TYPE (DRAPE_PLY_) ,
POINTER :: DRAPE_PLY
117 TYPE (GROUP_) ,
DIMENSION(NGRSH3N) :: IGRSH3N
118 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
119 TYPE(MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT),
INTENT(IN) :: MAT_PARAM
123 INTEGER I, K, NGR1, MLN,ISMST,NN,ICSEN,NLEVXF,
124 . npn, n, mid, pid,ii, j, midn, nsg, nel, ne1, ithk,
125 . ipla, igtyp, p, nel_prec, nb,mode,kcnod,prt,neltg3,ipt,
126 . ilev, ie, mpt, nuvarr,iadm, my_nvsiz,ixfem_err,
127 . imatly,ixfem,iptun,irep,ifwv,
128 . isubstack,ippid,ipmat,ish3n, npg,idrot1,nb_law58,ipert,
129 . stat, igmat,ism0,jale_from_mat, jale_from_prop,nslice,kk,npt_drp,
130 . idrape, jj,iel,iel0,idamp_freq_range
131 INTEGER WORK(70000),NGP(NSPMD+1)
132 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: ISTOR
134 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
135 my_real,
DIMENSION(:,:),
ALLOCATABLE :: XNUM_RNOISE
136 INTEGER,
DIMENSION(:),
ALLOCATABLE :: INDEX2, INUM_PTSH3N
137 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: INUM_WORKSH
138 my_real :: ANGLE(NUMELTG)
143 CALL my_alloc(index2,numeltg)
147 ALLOCATE( istor(ksh3tree+1,numeltg) )
149 ALLOCATE( istor(0,0) )
152 IF (nperturb > 0)
THEN
153 ALLOCATE(xnum_rnoise(nperturb,numeltg),stat=stat)
154 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
158 ALLOCATE(xnum_rnoise(0,0))
171 CALL zeroin(1,nd*(nspmd+1),dd_iad(1,nspgroup+1))
177 dd_iad(p,nspgroup+n) = 0
182 neltg3 = numeltg-numeltg6
183 IF(ndrape > 0) iel = drapeg%NUMSH4
185 nel = eadd(n+1)-eadd(n)
187 IF (ndrape > 0 .AND. numeltg_drape > 0)
THEN
188 ALLOCATE(xnum_drape(nel))
189 ALLOCATE(xnum_drapeg%INDX(nel))
192 iel0 = drapeg%INDX(numelc + i + nft)
194 npt = drape(iel0)%NPLY
195 npt_drp = drape(iel0)%NPLY_DRAPE
196 ALLOCATE(xnum_drape(i)%INDX_PLY(npt))
197 ALLOCATE(xnum_drape(i)%DRAPE_PLY(npt_drp))
198 xnum_drape(i)%INDX_PLY= 0
200 nslice = drape(iel0)%DRAPE_PLY(j)%NSLICE
201 ALLOCATE(xnum_drape(i)%DRAPE_PLY(j)%RDRAPE(nslice,2))
202 ALLOCATE(xnum_drape(i)%DRAPE_PLY(j)%IDRAPE(nslice,2))
203 xnum_drape(i)%DRAPE_PLY(j)%RDRAPE = 0
204 xnum_drape(i)%DRAPE_PLY(j)%IDRAPE = 0
208 ALLOCATE( xnum_drape(0) )
210 ALLOCATE(inum_worksh(3,nel))
212 IF(ndrape > 0 .AND. numeltg_drape > 0)
THEN
215 inum(1,i)=iparttg(nft+i)
216 inum(2,i)=itrioff(nft+i)
217 inum(3,i)=ixtg(1,nft+i)
218 inum(4,i)=ixtg(2,nft+i)
219 inum(5,i)=ixtg(3,nft+i)
220 inum(6,i)=ixtg(4,nft+i)
221 inum(7,i)=ixtg(5,nft+i)
222 inum(8,i)=ixtg(6,nft+i)
223 inum(10,i)=ixtg(1,nft+i)
225 inum_worksh(1,i) = iworksh(1,numelc + nft + i)
226 inum_worksh(2,i) = iworksh(2,numelc + nft + i)
227 inum_worksh(3,i) = iworksh(3,numelc + nft + i)
228 IF (nperturb > 0)
THEN
229 DO ipert = 1, nperturb
230 xnum_rnoise(ipert,i) = rnoise(ipert,nft+i)
233 angle(i) = sh3ang(nft + i)
235 iel0 = drapeg%INDX(numelc + nft + i)
238 npt = drape(iel0)%NPLY
239 xnum_drape(i)%NPLY = npt
240 xnum_drape(i)%INDX_PLY(1:npt) = drape(iel0)%INDX_PLY(1:npt)
241 npt = drape(iel0)%NPLY_DRAPE
242 xnum_drape(i)%NPLY_DRAPE = npt
243 xnum_drape(i)%THICK = drape(iel0)%THICK
245 drape_ply => drape(iel0)%DRAPE_PLY(jj)
246 nslice = drape_ply%NSLICE
247 xnum_drape(i)%DRAPE_PLY(jj)%NSLICE = nslice
248 xnum_drape(i)%DRAPE_PLY(jj)%IPID = drape_ply%IPID
250 xnum_drape(i)%DRAPE_PLY(jj)%IDRAPE(kk,1)=drape_ply%IDRAPE(kk,1)
251 xnum_drape(i)%DRAPE_PLY(jj)%IDRAPE(kk,2)=drape_ply%IDRAPE(kk,2)
252 xnum_drape(i)%DRAPE_PLY(jj)%RDRAPE(kk,1)=drape_ply%RDRAPE(kk,1)
253 xnum_drape(i)%DRAPE_PLY(jj)%RDRAPE(kk,2)=drape_ply%RDRAPE(kk,2)
255 DEALLOCATE(drape_ply%IDRAPE, drape_ply%RDRAPE)
257 DEALLOCATE(drape(iel0)%DRAPE_PLY)
258 DEALLOCATE(drape(iel0)%INDX_PLY)
263 inum(1,i)=iparttg(nft+i)
264 inum(2,i)=itrioff(nft+i)
265 inum(3,i)=ixtg(1,nft+i)
266 inum(4,i)=ixtg(2,nft+i)
267 inum(5,i)=ixtg(3,nft+i)
268 inum(6,i)=ixtg(4,nft+i)
269 inum(7,i)=ixtg(5,nft+i)
270 inum(8,i)=ixtg(6,nft+i)
271 inum(10,i)=ixtg(1,nft+i)
272 inum_worksh(1,i) = iworksh(1,numelc + nft + i)
273 inum_worksh(2,i) = iworksh(2,numelc + nft + i)
274 inum_worksh(3,i) = iworksh(3,numelc + nft + i)
276 IF (nperturb > 0)
THEN
277 DO ipert = 1, nperturb
278 xnum_rnoise(ipert,i) = rnoise(ipert,nft+i)
281 angle(i)=sh3ang(nft+i)
285 IF(abs(isigi) == 3 .OR. abs(isigi) == 4 .OR. abs(isigi) == 5)
THEN
286 ALLOCATE(inum_ptsh3n(nel))
288 inum_ptsh3n(i)=ptsh3n(nft+i)
294 istor(k,i)=sh3tree(k,nft+i)
299 istor(ksh3tree+1,i)=sh3trim(nft+i)
305 CALL my_orders( mode, work, cep(nft+1), index, nel , 1)
306 IF(ndrape > 0 .AND. numeltg_drape > 0)
THEN
309 iparttg(i+nft)=inum(1,index(i))
310 itrioff(i+nft)=inum(2,index(i))
311 thk(i+nft) =xnum(index(i))
312 ixtg(1,i+nft)=inum(3,index(i))
313 ixtg(2,i+nft)=inum(4,index(i))
314 ixtg(3,i+nft)=inum(5,index(i))
315 ixtg(4,i+nft)=inum(6,index(i))
316 ixtg(5,i+nft)=inum(7,index(i))
317 ixtg(6,i+nft)=inum(8,index(i))
318 itr1(nft+index(i)) = nft+i
319 iworksh(1,numelc + nft + i)=inum_worksh(1,index(i))
320 iworksh(2,numelc + nft + i)=inum_worksh(2,index(i))
321 iworksh(3,numelc + nft + i)=inum_worksh(3,index(i))
322 IF (nperturb > 0)
THEN
323 DO ipert = 1, nperturb
324 rnoise(ipert,i+nft) = xnum_rnoise(ipert,index(i))
327 sh3ang(nft+i) = angle(index(i))
329 iel0 = xnum_drapeg%INDX(index(i))
330 drapeg%INDX(numelc + nft + i)= 0
333 npt = xnum_drape(index(i))%NPLY
334 drape(iel)%NPLY = npt
335 drapeg%INDX(numelc + nft + i)= iel
336 ALLOCATE(drape(iel)%INDX_PLY(npt))
337 drape(iel)%INDX_PLY = 0
338 drape(iel)%INDX_PLY(1:npt) = xnum_drape(index(i))%INDX_PLY(1:npt)
339 npt = xnum_drape(index(i))%NPLY_DRAPE
340 drape(iel)%NPLY_DRAPE = npt
341 drape(iel)%THICK = xnum_drape(index(i))%THICK
342 ALLOCATE(drape(iel)%DRAPE_PLY(npt))
344 drape_ply => drape(iel)%DRAPE_PLY(jj)
345 nslice = xnum_drape(index(i))%DRAPE_PLY(jj)%NSLICE
346 drape_ply%NSLICE = nslice
347 drape_ply%IPID = xnum_drape(index(i))%DRAPE_PLY(jj)%IPID
348 ALLOCATE(drape_ply%IDRAPE(nslice,2), drape_ply%RDRAPE(nslice,2))
350 drape_ply%RDRAPE = zero
352 drape_ply%IDRAPE(kk,1) = xnum_drape(index(i))%DRAPE_PLY(jj)%IDRAPE(kk,1)
353 drape_ply%IDRAPE(kk,2) = xnum_drape(index(i))%DRAPE_PLY(jj)%IDRAPE(kk,2)
354 drape_ply%RDRAPE(kk,1) = xnum_drape(index(i
355 drape_ply%RDRAPE(kk,2) = xnum_drape(index(i
362 iparttg(i+nft)=inum(1,index(i))
363 itrioff(i+nft)=inum(2,index(i))
364 thk(i+nft) =xnum(index(i))
365 ixtg(1,i+nft)=inum(3,index(i))
366 ixtg(2,i+nft)=inum(4,index(i))
367 ixtg(3,i+nft)=inum(5,index(i))
368 ixtg(4,i+nft)=inum(6,index(i))
369 ixtg(5,i+nft)=inum(7,index(i))
370 ixtg(6,i+nft)=inum(8,index(i))
371 itr1(nft+index(i)) = nft+i
372 iworksh(1,numelc + nft + i)=inum_worksh(1,index(i))
373 iworksh(2,numelc + nft + i)=inum_worksh(2,index(i))
374 iworksh(3,numelc + nft + i)=inum_worksh(3,index(i))
375 IF (nperturb > 0)
THEN
376 DO ipert = 1, nperturb
377 rnoise(ipert,i+nft) = xnum_rnoise(ipert,index(i))
380 sh3ang(nft+i) = angle(index(i))
383 IF(abs(isigi)==3.OR.abs(isigi)== 4.OR.abs(isigi)==5)
THEN
385 ptsh3n(nft+i) = inum_ptsh3n(index(i))
387 DEALLOCATE(inum_ptsh3n)
392 sh3tree(k,i+nft)=istor(k,index(i))
397 sh3trim(i+nft)=istor(ksh3tree+1,index(i))
405 inum(1,i)=ixtg1(1,ii)
406 inum(2,i)=ixtg1(2,ii)
407 inum(3,i)=ixtg1(3,ii)
412 ixtg1(1,ii)=inum(1,index(i))
413 ixtg1(2,ii)=inum(2,index(i))
414 ixtg1(3,ii)=inum(3,index(i))
420 p = cep(nft+index(1))
423 IF (cep(nft+index(i))/=p
THEN
424 dd_iad(p+1,nspgroup+n) = nb
426 p = cep(nft+index(i))
431 dd_iad(p+1,nspgroup+n) = nb
433 dd_iad(p,nspgroup+n) = dd_iad(p,nspgroup+n)
434 . + dd_iad(p-1,nspgroup+n)
437 dd_iad(p,nspgroup+n) = dd_iad(p-1,nspgroup+n)+1
439 dd_iad(1,nspgroup+n) = 1
444 index(i) = cep(nft+index(i))
447 cep(nft+i) = index(i)
451 IF(ndrape > 0 .AND. numeltg_drape > 0)
THEN
453 iel0 = xnum_drapeg%INDX(i)
455 npt_drp = xnum_drape(i)%NPLY_DRAPE
457 DEALLOCATE(xnum_drape(i)%DRAPE_PLY(j)%RDRAPE)
458 DEALLOCATE(xnum_drape(i)%DRAPE_PLY(j)%IDRAPE)
460 DEALLOCATE(xnum_drape(i)%DRAPE_PLY,xnum_drape(i)%INDX_PLY)
462 DEALLOCATE(xnum_drape, xnum_drapeg%INDX )
464 DEALLOCATE( xnum_drape )
466 DEALLOCATE(inum_worksh)
474 . sh3tree(1,i)=itr1(sh3tree(1,i))
476 . sh3tree(2,i)=itr1(sh3tree(2,i))
485 IF(igrsurf(i)%ELTYP(j) == 7)
486 . igrsurf(i)%ELEM(j) = itr1(igrsurf(i)%ELEM(j))
493 nn=igrsh3n(i)%NENTITY
495 igrsh3n(i)%ENTITY(j) = itr1(igrsh3n(i)%ENTITY(j))
501 DO i=1,3*numeltg+3*numeltg6
502 IF(nod2eltg(i) /= 0)nod2eltg(i)=itr1(nod2eltg(i))
512 nel = dd_iad(p+1,nspgroup+n)-dd_iad(p,nspgroup+n)
514 nel_prec = dd_iad(p,nspgroup+n)-dd_iad(1,nspgroup+n)
516 DO WHILE (nft < nel_prec+nel)
521 mln = nint(pm(19,mid))
524 IF (nsubdom>0) ipartr2r =
tag_mat(mid)
532 igmat = igeo(98 ,pid)
533 ithk = nint(geo(35,pid))
534 ipla = nint(geo(39,pid))
536 istrain = nint(geo(11,pid))
537 IF (ish3n > 3 .AND. ish3n < 30) ish3n=2
538 IF (ish3n > 31 )
THEN
539 CALL fretitl2(titr,igeo(npropgi-ltitr+1,pid),ltitr)
552 IF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52)
THEN
553 npn = iworksh(1,numelc + ii)
554 isubstack =iworksh(3,numelc + ii)
557 CALL fretitl2(titr,igeo(npropgi-ltitr+1,pid),ltitr)
568 IF(ndrape > 0 .AND. (igtyp == 17 .OR. igtyp == 51 .OR. igtyp ==52 ))
THEN
569 IF(drapeg%INDX(ii) /= 0 ) idrape = 1
573 IF (igtyp == 11 .or. igtyp == 16)
THEN
575 imatly = igeo(100+ipt,pid)
576 IF (mat_param(imatly)%NFAIL > 0) ixfem = mat_param(imatly)%IXFEM
578 IF (ixfem > 0) ixfem = 1
579 IF (ixfem == 1) nlevxf = nxel*npn
580 ELSEIF (igtyp == 51 .OR. igtyp == 52)
THEN
584 imatly = stack%IGEO(ipmat + ipt ,isubstack)
585 IF (mat_param(imatly)%NFAIL > 0) ixfem = mat_param(imatly)%IXFEM
586 IF (ixfem > 0) ixfem = 1
587 IF (ixfem == 1) nlevxf = nxel*npn
589 ELSEIF (igtyp == 1 .or. igtyp == 9 .or. igtyp == 10 .or. igtyp == 17)
THEN
590 ixfem = mat_param(mid)%IXFEM
596 nlevmax =
max(nlevmax, nlevxf)
598 IF (ish3n >= 30 .and. ixfem > 0)
THEN
615 CALL fretitl2(titr,igeo(npropgi-ltitr+1,pid),ltitr)
627 IF(ilev<0)ilev=-ilev-1
628 my_nvsiz=
max(4,
min(4**ilev,nvsiz))
632 IF (igtyp == 0) mln=0
640 IF (mat_param(mid)%SMSTR==1 .OR. mln == 1) ithk = 0
643 IF (ithk == 0) ism0=2
646 . anmode=aninfo_blind_2,
658 . anmode=aninfo_blind_2,
668 IF (mat_param(mid)%SMSTR==1)
THEN
674 IF (mat_param(mid)%STRAIN_FORMULATION==2) ismst =4
675 IF (mln == 58 ) ismst =4
676 IF (mln == 19 .AND. npn==1) ismst =11
682 . anmode=aninfo_blind_2,
690 IF (igtyp == 16 .and. mln == 58 .and. ismst /= 4)
THEN
693 . msgtype=msgwarning,
694 . anmode=aninfo_blind_2,
700 IF (igtyp == 1 .AND. mln ==200)
THEN
703 . anmode=aninfo_blind_1,
710 IF (npn /= 1 .and. mln == 1) npn = 0
712 IF (npn == 0 .and. mln /= 0 .and. mln /= 1 .and. mln /= 91)
THEN
715 . msgtype=msgwarning,
722 IF (npn == 0 .and. mln > 2 .and. mln /= 22 .and.
723 . mln /= 36 .and. mln /= 43 .and. mln /= 60 .and.
724 . mln /= 86 .and. mln /= 13 .and. mln /= 151)
THEN
726 . ipm(npropmi-ltitr+1,mid),
738 IF (igtyp == 1 .and. ismst == 11 )
THEN
742 . msgtype=msgwarning,
743 . anmode=aninfo_blind_2,
749 ELSEIF (ismst == 10 )
THEN
750 IF (ish3n >= 30 )
THEN
753 . msgtype=msgwarning,
760 IF (mln /=42 .AND. mln /=69 .AND. mln /=88 .and. mln /= 99)
THEN
761 CALL ancmsg(msgid=3020, anmode=aninfo, msgtype=msgwarning,
770 IF (idrot1>0.AND.ish3n>29)
THEN
772 . msgtype=msgwarning,
773 . anmode=aninfo_blind_2,
778 IF(npn == 0.AND.(mln == 36.OR.mln == 86))
THEN
781 ELSEIF(npn == 0.AND.mln == 3)
THEN
789 ELSEIF(mln == 32)
THEN
793 CALL zeroin(1,nparg,iparg(1,ngroup))
794 iparg(1,ngroup) = mln
795 ne1 =
min( my_nvsiz, nel + nel_prec - nft)
796 iparg(2,ngroup) = ne1
797 iparg(3,ngroup)= eadd(n)-1 + nft
798 iparg(4,ngroup) = lbufel+1
806 imatly = igeo(100+ipt,pid)
807 IF (mat_param(imatly)%NFAIL > 0) iparg(43,ngroup) = 1
808 IF (mat_param(imatly)%IFAILWAVE > 0) ifwv = 1
811 ELSEIF(igtyp == 17)
THEN
815 imatly = stack%IGEO(ipmat + ipt ,isubstack)
816 IF (mat_param(imatly)%NFAIL > 0)
THEN
821 ELSEIF (igtyp == 51 .OR. igtyp == 52 )
THEN
829 imatly = stack%IGEO(ipmat + ipt ,isubstack)
830 IF (mat_param(imatly)%NFAIL > 0)
THEN
833 IF (mat_param(imatly)%IFAILWAVE > 0) ifwv = 1
835 IF (nint(pm(19,imatly)) == 58) nb_law58 = nb_law58 + 1
838 IF (nb_law58 == npn)
THEN
840 ELSEIF (nb_law58 > 0)
THEN
845 IF(mat_param(mid)%NFAIL > 0.AND.mln /= 0 .AND. mln /= 13)
THEN
848 IF (mat_param(mid)%IFAILWAVE > 0) ifwv = 1
851 IF(mln == 13) irigid_mat = 1
852 jthe = nint(pm(71,mid))
855 IF(ipm(218,mid) > 0 .AND. mln /=0 .AND. mln /= 13)
THEN
859 iparg(54,ngroup) = ixfem
860 iparg(65,ngroup) = nlevxf
862 IF (nsubdom>0) iparg(77,ngroup)= ipartr2r
864 iparg(6,ngroup) = npn
865 iparg(9,ngroup) = ismst
866 iparg(11,ngroup)= kcnod
867 iparg(13,ngroup)= jthe
868 iparg(44,ngroup)= istrain
869 iparg(23,ngroup)= ish3n
870 iparg(28,ngroup)= ithk
871 iparg(29,ngroup)= ipla
872 iparg(35,ngroup)= irep
873 iparg(38,ngroup)= igtyp
874 iparg(39,ngroup)= icsen
875 iparg(41,ngroup)= idrot1
876 iparg(62,ngroup)= pid
878 iparg(78,ngroup)= mat_param(mid)%NLOC
879 iparg(79,ngroup)= ifwv
883 iparg(20, ngroup) = ipm(20, mid)
884 jale_from_mat = nint(pm(72,mid))
885 jale_from_prop = igeo(62,pid)
886 jale =
max(jale_from_mat, jale_from_prop)
893 iparg(7, ngroup) = jale
894 iparg(11, ngroup) = jeul
895 iparg(13,ngroup)=+abs(jthe)
902 ale%REZON%NUM_NUVAR_MAT =
max(
ale%REZON%NUM_NUVAR_MAT, mat_param
903 ale%REZON%NUM_NUVAR_EOS =
max(
ale%REZON%NUM_NUVAR_EOS, mat_param(mid)%REZON%NUM_NUVAR_EOS)
908 iparg(81,ngroup) = mat_param(mid)%REZON%NUM_NUVAR_MAT
909 iparg(82,ngroup) = mat_param(mid)%REZON%NUM_NUVAR_EOS
912 iparg(45,ngroup)= ilev
913 IF(ilev/=0 .AND. ish3n > 2)
THEN
918 . anmode=aninfo_blind_1,
927 sh3tree(4,j+eadd(n)+nft-1)=ngroup
928 ilev=sh3tree(3,j+eadd(n)+nft-1)
929 IF(ilev >= 0)iparg(8,ngroup)=0
935 midn = ixtg(1,j+eadd(n)+nft-1)
942 iparg(10,ngroup)= nsg
943 iparg(18,ngroup)= mid
944 iparg(32,ngroup)= p-1
947 IF (igtyp == 11)
THEN
952 imatly = igeo(100+ipt,ixtg(5,ie))
953 nuvarr =
max(nuvarr,ipm(221,ixtg(1,ie)))
959 nuvarr =
max(nuvarr,ipm(221,ixtg(1,ie)))
962 iparg(47,ngroup)=nuvarr
974 IF(tagprt_sms(iparttg(ii))/=0)jsms=1
979 iparg(52,ngroup)=jsms
981 iparg(71,ngroup) = isubstack
982 iparg(75,ngroup) = igmat
983 iparg(92,ngroup) = idrape
985 idamp_freq_range = damp_range_part(iparttg(ii))
986 iparg(93,ngroup) = idamp_freq_range
997 ngp(nspmd+1)=ngp(nspmd+1)+ngp(p)
998 dd_iad(p,nspgroup+n)=ngp(p)
1000 dd_iad(nspmd+1,nspgroup+n)=ngp(nspmd+1)
1004 IF (ixfem_err == 1) icrack3d = 0
1006 nspgroup = nspgroup + nd
1016 . anmode=aninfo_blind_2,
1020 . anmode=aninfo_blind_2,
1024 . anmode=aninfo_blind_2,
1027 . msgtype=msgwarning,
1028 . anmode=aninfo_blind_2,
1031 . anmode=aninfo_blind_2,
1032 . msgtype=msgwarning,
1035 . anmode=aninfo_blind_2,
1036 . msgtype=msgwarning,
1044 . msgtype=msgwarning,
1048 . msgtype=msgwarning,
1051 IF(print_flag>6)
THEN
1055 WRITE(iout,1001)n,mln,iparg(2,n),iparg(3,n)+1,
1056 + iparg(5,n),iabs(iparg(6,n)),
1057 + iparg(9,n),iparg(10,n),iparg(44,n),iparg(43,n)
1062 + /10x,
' 3D - TRIANGULAR SHELL ELEMENT GROUPS'/
1063 + 10x,
' ------------------------------------'/
1064 +
' GROUP MATERIAL ELEMENT FIRST',
1066 +
' INTEG SMALL SUB STRAIN FAILURE'/
1067 +
' LAW NUMBER ELEMENT',
1069 +
' PTS STRAIN GROUPS OUTPUT FLAG'/)
1070 1001
FORMAT(11(1x,i10))
1072 IF (
ALLOCATED(xnum_rnoise))
DEALLOCATE(xnum_rnoise)