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)
80#include "implicit_f.inc"
86#include
"com_xfem1.inc"
89#include "vect01_c.inc"
91#include "remesh_c.inc"
99 . IXTG(NIXTG,*), IPARG(NPARG,*), EADD(*), IXTG1(4,*),
100 . DD_IAD(NSPMD+1,*),IPARTTG(*),
101 . INUM(10,*),ITR1(*),INDEX(*),(*),ICNOD(*),IPM(NPROPMI,NUMMAT),
102 . ITRIOFF(*), SH3TRIM(*),IGEO(NPROPGI,NUMGEO),
103 . IPART(LIPART1,*), SH3TREE(KSH3TREE,*), NOD2ELTG(*) ,
104 . TAGPRT_SMS(*),IWORKSH(3,*)
105 INTEGER,
INTENT(IN) :: PRINT_FLAG
106 INTEGER ,
DIMENSION(NUMELTG) ,
INTENT(INOUT):: PTSH3N
107 INTEGER ,
INTENT(IN) :: DAMP_RANGE_PART(NPART)
108 MY_REAL PM(NPROPM,NUMMAT), GEO(NPROPG,NUMGEO),THK(*),XNUM(*),RNOISE(NPERTURB
110 TYPE (STACK_PLY) :: STACK
111 TYPE (DRAPE_) ,
TARGET :: DRAPE(NUMELC_DRAPE + NUMELTG_DRAPE)
112 TYPE (DRAPEG_) :: DRAPEG,XNUM_DRAPEG
113 TYPE (DRAPE_) ,
DIMENSION(:),
ALLOCATABLE :: XNUM_DRAPE
114 TYPE (DRAPE_PLY_) ,
POINTER :: DRAPE_PLY
116 TYPE (GROUP_) ,
DIMENSION(NGRSH3N) :: IGRSH3N
117 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
118 TYPE(MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT),
INTENT(IN) :: MAT_PARAM
122 INTEGER I, K, NGR1, MLN,ISMST,NN,ICSEN,NLEVXF,
123 . npn, n, mid, pid,ii, j, midn, nsg, nel, ne1, ithk,
124 . ipla, igtyp, p, nel_prec, nb,mode,kcnod,prt,neltg3,ipt,
125 . ilev, ie, mpt, nuvarr,iadm, my_nvsiz,ixfem_err,
126 . imatly,ixfem,iptun,irep,ifwv,
127 . isubstack,ippid,ipmat,ish3n, npg,idrot1,nb_law58,ipert,
128 . stat, igmat,ism0,jale_from_mat, jale_from_prop,nslice,kk,npt_drp,
129 . idrape, jj,iel,iel0,idamp_freq_range
130 INTEGER WORK(70000),NGP(NSPMD+1)
131 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: ISTOR
133 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
134 my_real,
DIMENSION(:,:),
ALLOCATABLE :: XNUM_RNOISE
135 INTEGER,
DIMENSION(:),
ALLOCATABLE :: INDEX2,
136 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: INUM_WORKSH
137 my_real :: ANGLE(NUMELTG)
142 CALL my_alloc(index2,numeltg)
146 ALLOCATE( istor(ksh3tree+1,numeltg) )
148 ALLOCATE( istor(0,0) )
151 IF (nperturb > 0)
THEN
152 ALLOCATE(xnum_rnoise(nperturb,numeltg),stat=stat)
153 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
157 ALLOCATE(xnum_rnoise(0,0))
170 CALL zeroin(1,nd*(nspmd+1),dd_iad(1,nspgroup+1))
176 dd_iad(p,nspgroup+n) = 0
181 neltg3 = numeltg-numeltg6
182 IF(ndrape > 0) iel = drapeg%NUMSH4
184 nel = eadd(n+1)-eadd(n)
186 IF (ndrape > 0 .AND. numeltg_drape > 0)
THEN
187 ALLOCATE(xnum_drape(nel))
188 ALLOCATE(xnum_drapeg%INDX(nel))
191 iel0 = drapeg%INDX(numelc + i + nft)
193 npt = drape(iel0)%NPLY
194 npt_drp = drape(iel0)%NPLY_DRAPE
195 ALLOCATE(xnum_drape(i)%INDX_PLY(npt))
196 ALLOCATE(xnum_drape(i)%DRAPE_PLY(npt_drp))
197 xnum_drape(i)%INDX_PLY= 0
199 nslice = drape(iel0)%DRAPE_PLY(j)%NSLICE
200 ALLOCATE(xnum_drape(i)%DRAPE_PLY(j)%RDRAPE(nslice,2))
201 ALLOCATE(xnum_drape(i)%DRAPE_PLY(j)%IDRAPE(nslice,2))
202 xnum_drape(i)%DRAPE_PLY(j)%RDRAPE = 0
203 xnum_drape(i)%DRAPE_PLY(j)%IDRAPE = 0
207 ALLOCATE( xnum_drape(0) )
209 ALLOCATE(inum_worksh(3,nel
211 IF(ndrape > 0 .AND. numeltg_drape > 0)
THEN
214 inum(1,i)=iparttg(nft+i)
215 inum(2,i)=itrioff(nft+i)
216 inum(3,i)=ixtg(1,nft+i)
217 inum(4,i)=ixtg(2,nft+i)
218 inum(5,i)=ixtg(3,nft+i)
219 inum(6,i)=ixtg(4,nft+i)
220 inum(7,i)=ixtg(5,nft+i)
221 inum(8,i)=ixtg(6,nft+i)
222 inum(10,i)=ixtg(1,nft+i)
224 inum_worksh(1,i) = iworksh(1,numelc + nft + i)
225 inum_worksh(2,i) = iworksh(2,numelc + nft + i)
226 inum_worksh(3,i) = iworksh(3,numelc + nft + i)
227 IF (nperturb > 0)
THEN
228 DO ipert = 1, nperturb
229 xnum_rnoise(ipert,i) = rnoise(ipert,nft+i)
232 angle(i) = sh3ang(nft + i)
234 iel0 = drapeg%INDX(numelc + nft + i)
235 xnum_drapeg%INDX(i) = iel0
237 npt = drape(iel0)%NPLY
238 xnum_drape(i)%NPLY = npt
239 xnum_drape(i)%INDX_PLY(1:npt) = drape(iel0)%INDX_PLY(1:npt)
240 npt = drape(iel0)%NPLY_DRAPE
241 xnum_drape(i)%NPLY_DRAPE = npt
242 xnum_drape(i)%THICK = drape(iel0)%THICK
244 drape_ply => drape(iel0)%DRAPE_PLY(jj)
245 nslice = drape_ply%NSLICE
246 xnum_drape(i)%DRAPE_PLY(jj)%NSLICE = nslice
247 xnum_drape(i)%DRAPE_PLY(jj)%IPID = drape_ply%IPID
249 xnum_drape(i)%DRAPE_PLY(jj)%IDRAPE(kk,1)=drape_ply%IDRAPE(kk,1)
250 xnum_drape(i)%DRAPE_PLY(jj)%IDRAPE(kk,2)=drape_ply%IDRAPE(kk,2)
251 xnum_drape(i)%DRAPE_PLY(jj)%RDRAPE(kk,1)=drape_ply%RDRAPE(kk,1)
252 xnum_drape(i)%DRAPE_PLY(jj)%RDRAPE(kk,2)=drape_ply%RDRAPE(kk,2)
254 DEALLOCATE(drape_ply%IDRAPE, drape_ply%RDRAPE)
256 DEALLOCATE(drape(iel0)%DRAPE_PLY)
257 DEALLOCATE(drape(iel0)%INDX_PLY)
262 inum(1,i)=iparttg(nft+i)
263 inum(2,i)=itrioff(nft+i)
264 inum(3,i)=ixtg(1,nft+i)
265 inum(4,i)=ixtg(2,nft+i)
266 inum(5,i)=ixtg(3,nft+i)
267 inum(6,i)=ixtg(4,nft+i)
268 inum(7,i)=ixtg(5,nft+i)
269 inum(8,i)=ixtg(6,nft+i)
270 inum(10,i)=ixtg(1,nft+i)
271 inum_worksh(1,i) = iworksh(1,numelc + nft + i)
272 inum_worksh(2,i) = iworksh(2,numelc + nft + i)
273 inum_worksh(3,i) = iworksh(3,numelc + nft + i)
275 IF (nperturb > 0)
THEN
276 DO ipert = 1, nperturb
277 xnum_rnoise(ipert,i) = rnoise(ipert,nft+i)
280 angle(i)=sh3ang(nft+i)
285 ALLOCATE(inum_ptsh3n(nel))
287 inum_ptsh3n(i)=ptsh3n(nft+i)
293 istor(k,i)=sh3tree(k,nft+i)
298 istor(ksh3tree+1,i)=sh3trim(nft+i)
304 CALL my_orders( mode, work, cep(nft+1), index, nel , 1)
305 IF(ndrape > 0 .AND. numeltg_drape > 0)
THEN
308 iparttg(i+nft)=inum(1,index(i))
309 itrioff(i+nft)=inum(2,index(i))
310 thk(i+nft) =xnum(index(i))
311 ixtg(1,i+nft)=inum(3,index(i))
312 ixtg(2,i+nft)=inum(4,index(i))
313 ixtg(3,i+nft)=inum(5,index(i))
314 ixtg(4,i+nft)=inum(6,index(i))
315 ixtg(5,i+nft)=inum(7,index(i))
316 ixtg(6,i+nft)=inum(8,index(i))
317 itr1(nft+index(i)) = nft+i
318 iworksh(1,numelc + nft + i)=inum_worksh(1,index(i))
319 iworksh(2,numelc + nft + i)=inum_worksh(2,index(i))
320 iworksh(3,numelc + nft + i)=inum_worksh(3,index(i))
321 IF (nperturb > 0)
THEN
322 DO ipert = 1, nperturb
323 rnoise(ipert,i+nft) = xnum_rnoise(ipert,index(i))
326 sh3ang(nft+i) = angle(index(i))
328 iel0 = xnum_drapeg%INDX(index(i))
329 drapeg%INDX(numelc + nft + i)= 0
332 npt = xnum_drape(index(i))%NPLY
333 drape(iel)%NPLY = npt
334 drapeg%INDX(numelc + nft + i)= iel
335 ALLOCATE(drape(iel)%INDX_PLY(npt))
336 drape(iel)%INDX_PLY = 0
337 drape(iel)%INDX_PLY(1:npt) = xnum_drape(index(i))%INDX_PLY(1:npt)
338 npt = xnum_drape(index(i))%NPLY_DRAPE
339 drape(iel)%NPLY_DRAPE = npt
340 drape(iel)%THICK = xnum_drape(index(i))%THICK
341 ALLOCATE(drape(iel)%DRAPE_PLY(npt))
343 drape_ply => drape(iel)%DRAPE_PLY(jj)
344 nslice = xnum_drape(index(i))%DRAPE_PLY(jj)%NSLICE
345 drape_ply%NSLICE = nslice
346 drape_ply%IPID = xnum_drape(index(i))%DRAPE_PLY(jj)%IPID
347 ALLOCATE(drape_ply%IDRAPE(nslice,2), drape_ply%RDRAPE(nslice,2))
349 drape_ply%RDRAPE = zero
351 drape_ply%IDRAPE(kk,1) = xnum_drape(index(i))%DRAPE_PLY(jj)%IDRAPE(kk,1)
352 drape_ply%IDRAPE(kk,2) = xnum_drape(index(i))%DRAPE_PLY(jj)%IDRAPE(kk,2)
353 drape_ply%RDRAPE(kk,1) = xnum_drape(index(i))%DRAPE_PLY(jj)%RDRAPE(kk,1)
354 drape_ply%RDRAPE(kk,2) = xnum_drape(index
361 iparttg(i+nft)=inum(1,index(i))
362 itrioff(i+nft)=inum(2,index(i))
363 thk(i+nft) =xnum(index(i))
364 ixtg(1,i+nft)=inum(3,index(i))
365 ixtg(2,i+nft)=inum(4,index(i))
366 ixtg(3,i+nft)=inum(5,index(i))
367 ixtg(4,i+nft)=inum(6,index(i))
368 ixtg(5,i+nft)=inum(7,index(i))
369 ixtg(6,i+nft)=inum(8,index(i))
370 itr1(nft+index(i)) = nft+i
371 iworksh(1,numelc + nft + i)=inum_worksh(1,index(i))
372 iworksh(2,numelc + nft + i)=inum_worksh(2,index(i))
373 iworksh(3,numelc + nft + i)=inum_worksh(3,index(i))
374 IF (nperturb > 0)
THEN
375 DO ipert = 1, nperturb
376 rnoise(ipert,i+nft) = xnum_rnoise(ipert,index(i))
379 sh3ang(nft+i) = angle(index(i))
382 IF(abs(isigi)==3.OR.abs(isigi)== 4.OR.abs(isigi)==5)
THEN
384 ptsh3n(nft+i) = inum_ptsh3n(index(i))
386 DEALLOCATE(inum_ptsh3n)
391 sh3tree(k,i+nft)=istor(k,index(i))
396 sh3trim(i+nft)=istor(ksh3tree+1,index(i))
404 inum(1,i)=ixtg1(1,ii)
405 inum(2,i)=ixtg1(2,ii)
406 inum(3,i)=ixtg1(3,ii)
411 ixtg1(1,ii)=inum(1,index(i))
412 ixtg1(2,ii)=inum(2,index(i))
413 ixtg1(3,ii)=inum(3,index(i))
419 p = cep(nft+index(1))
422 IF (cep(nft+index(i))/=p)
THEN
423 dd_iad(p+1,nspgroup+n) = nb
425 p = cep(nft+index(i))
430 dd_iad(p+1,nspgroup+n) = nb
432 dd_iad(p,nspgroup+n) = dd_iad(p,nspgroup+n)
433 . + dd_iad(p-1,nspgroup+n)
436 dd_iad(p,nspgroup+n) = dd_iad(p-1,nspgroup+n)+1
438 dd_iad(1,nspgroup+n) = 1
443 index(i) = cep(nft+index(i))
446 cep(nft+i) = index(i)
450 IF(ndrape > 0 .AND. numeltg_drape > 0)
THEN
452 iel0 = xnum_drapeg%INDX(i)
454 npt_drp = xnum_drape(i)%NPLY_DRAPE
456 DEALLOCATE(xnum_drape(i
457 DEALLOCATE(xnum_drape(i)%DRAPE_PLY(j)%IDRAPE)
459 DEALLOCATE(xnum_drape(i)%DRAPE_PLY,xnum_drape(i)%INDX_PLY)
461 DEALLOCATE(xnum_drape, xnum_drapeg%INDX )
463 DEALLOCATE( xnum_drape )
465 DEALLOCATE(inum_worksh)
473 . sh3tree(1,i)=itr1(sh3tree(1,i))
475 . sh3tree(2,i)=itr1(sh3tree(2,i))
484 IF(igrsurf(i)%ELTYP(j) == 7)
485 . igrsurf(i)%ELEM(j) = itr1(igrsurf(i)%ELEM(j))
492 nn=igrsh3n(i)%NENTITY
494 igrsh3n(i)%ENTITY(j) = itr1(igrsh3n(i)%ENTITY(j))
500 DO i=1,3*numeltg+3*numeltg6
501 IF(nod2eltg(i) /= 0)nod2eltg(i)=itr1(nod2eltg(i))
511 nel = dd_iad(p+1,nspgroup+n)-dd_iad(p,nspgroup+n)
513 nel_prec = dd_iad(p,nspgroup+n)-dd_iad(1,nspgroup+n)
515 DO WHILE (nft < nel_prec+nel)
520 mln = nint(pm(19,mid))
523 IF (nsubdom>0) ipartr2r =
tag_mat(mid)
531 igmat = igeo(98 ,pid)
532 ithk = nint(geo(35,pid))
535 istrain = nint(geo(11,pid))
536 IF (ish3n > 3 .AND. ish3n < 30) ish3n=2
538 CALL fretitl2(titr,igeo(npropgi-ltitr+1,pid),ltitr)
551 IF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52)
THEN
552 npn = iworksh(1,numelc + ii)
553 isubstack =iworksh(3,numelc + ii)
556 CALL fretitl2(titr,igeo(npropgi-ltitr+1,pid),ltitr)
567 IF(ndrape > 0 .AND. (igtyp == 17 .OR. igtyp == 51 .OR. igtyp ==52 ))
THEN
568 IF(drapeg%INDX(ii) /= 0 ) idrape = 1
572 IF (igtyp == 11 .or. igtyp == 16)
THEN
574 imatly = igeo(100+ipt,pid)
575 IF (mat_param(imatly)%NFAIL > 0) ixfem = mat_param(imatly)%IXFEM
577 IF (ixfem > 0) ixfem = 1
578 IF (ixfem == 1) nlevxf = nxel*npn
579 ELSEIF (igtyp == 51 .OR. igtyp == 52)
THEN
583 imatly = stack%IGEO(ipmat + ipt ,isubstack)
584 IF (mat_param(imatly)%NFAIL > 0) ixfem = mat_param(imatly)%IXFEM
585 IF (ixfem > 0) ixfem = 1
586 IF (ixfem == 1) nlevxf = nxel*npn
588 ELSEIF (igtyp == 1 .or. igtyp == 9 .or. igtyp == 10 .or. igtyp == 17)
THEN
589 ixfem = mat_param(mid)%IXFEM
595 nlevmax =
max(nlevmax, nlevxf)
597 IF (ish3n >= 30 .and. ixfem > 0)
THEN
614 CALL fretitl2(titr,igeo(npropgi-ltitr+1,pid),ltitr)
626 IF(ilev<0)ilev=-ilev-1
627 my_nvsiz=
max(4,
min(4**ilev,nvsiz))
639 IF (mat_param(mid)%SMSTR==1 .OR. mln == 1) ithk = 0
642 IF (ithk == 0) ism0=2
657 . anmode=aninfo_blind_2,
667 IF (mat_param(mid)%SMSTR==1)
THEN
673 IF (mat_param(mid)%STRAIN_FORMULATION==2) ismst =4
674 IF (mln == 58 ) ismst =4
675 IF (mln == 19 .AND. npn==1) ismst
681 . anmode=aninfo_blind_2,
689 IF (igtyp == 16 .and. mln == 58 .and. ismst /= 4)
THEN
692 . msgtype=msgwarning,
693 . anmode=aninfo_blind_2,
699 IF (igtyp == 1 .AND. mln ==200)
THEN
702 . anmode=aninfo_blind_1,
709 IF (npn /= 1 .and. mln == 1) npn = 0
711 IF (npn == 0 .and. mln /= 0 .and. mln /= 1 .and. mln /= 91)
THEN
714 . msgtype=msgwarning,
721 IF (npn == 0 .and. mln > 2 .and. mln /= 22 .and.
722 . mln /= 36 .and. mln /= 43 .and. mln /= 60 .and.
723 . mln /= 86 .and. mln /= 13 .and. mln /= 151)
THEN
725 . ipm(npropmi-ltitr+1,mid),
737 IF (igtyp == 1 .and. ismst == 11 )
THEN
741 . msgtype=msgwarning,
742 . anmode=aninfo_blind_2,
748 ELSEIF (ismst == 10 )
THEN
749 IF (ish3n >= 30 )
THEN
752 . msgtype=msgwarning,
759 IF (mln /=42 .AND. mln /=69 .AND.
THEN
760 CALL ancmsg(msgid=3020, anmode=aninfo, msgtype=msgwarning,
769 IF (idrot1>0.AND.ish3n>29)
THEN
771 . msgtype=msgwarning,
772 . anmode=aninfo_blind_2,
777 IF(npn == 0.AND.(mln == 36.OR.mln == 86))
THEN
780 ELSEIF(npn == 0.AND.mln == 3)
THEN
788 ELSEIF(mln == 32)
THEN
792 CALL zeroin(1,nparg,iparg(1,ngroup))
793 iparg(1,ngroup) = mln
794 ne1 =
min( my_nvsiz, nel + nel_prec - nft)
795 iparg(2,ngroup) = ne1
796 iparg(3,ngroup)= eadd(n)-1 + nft
797 iparg(4,ngroup) = lbufel+1
805 imatly = igeo(100+ipt,pid)
806 IF (mat_param(imatly)%NFAIL > 0) iparg(43,ngroup) = 1
807 IF (mat_param(imatly)%IFAILWAVE > 0) ifwv
810 ELSEIF(igtyp == 17)
THEN
814 imatly = stack%IGEO(ipmat + ipt ,isubstack)
815 IF (mat_param(imatly)%NFAIL > 0)
THEN
820 ELSEIF (igtyp == 51 .OR. igtyp == 52 )
THEN
828 imatly = stack%IGEO(ipmat + ipt ,isubstack)
829 IF (mat_param(imatly)%NFAIL > 0)
THEN
832 IF (mat_param(imatly)%IFAILWAVE > 0) ifwv = 1
834 IF (nint(pm(19,imatly)) == 58) nb_law58 = nb_law58 + 1
837 IF (nb_law58 == npn)
THEN
839 ELSEIF (nb_law58 > 0)
THEN
844 IF(mat_param(mid)%NFAIL > 0.AND.mln /= 0 .AND. mln /= 13)
THEN
847 IF (mat_param(mid)%IFAILWAVE > 0) ifwv = 1
850 IF(mln == 13) irigid_mat = 1
851 jthe = nint(pm(71,mid))
854 IF(ipm(218,mid) > 0 .AND. mln /=0 .AND. mln /
THEN
858 iparg(54,ngroup) = ixfem
859 iparg(65,ngroup) = nlevxf
861 IF (nsubdom>0) iparg(77,ngroup)= ipartr2r
863 iparg(6,ngroup) = npn
864 iparg(9,ngroup) = ismst
865 iparg(11,ngroup)= kcnod
866 iparg(13,ngroup)= jthe
867 iparg(44,ngroup)= istrain
868 iparg(23,ngroup)= ish3n
869 iparg(28,ngroup)= ithk
870 iparg(29,ngroup)= ipla
871 iparg(35,ngroup)= irep
872 iparg(38,ngroup)= igtyp
873 iparg(39,ngroup)= icsen
874 iparg(41,ngroup)= idrot1
875 iparg(62,ngroup)= pid
877 iparg(78,ngroup)= mat_param(mid)%NLOC
878 iparg(79,ngroup)= ifwv
882 iparg(20, ngroup) = ipm(20, mid)
883 jale_from_mat = nint(pm(72,mid))
884 jale_from_prop = igeo(62,pid)
885 jale =
max(jale_from_mat, jale_from_prop)
892 iparg(7, ngroup) = jale
893 iparg(11, ngroup) = jeul
894 iparg(13,ngroup)=+abs(jthe)
901 ale%REZON%NUM_NUVAR_MAT =
ale%REZON%NUM_NUVAR_MAT + mat_param(mid)%REZON%NUM_NUVAR_MAT
902 ale%REZON%NUM_NUVAR_EOS =
ale%REZON%NUM_NUVAR_EOS + mat_param(mid)%REZON%NUM_NUVAR_EOS
907 iparg(81,ngroup) = mat_param(mid)%REZON%NUM_NUVAR_MAT
908 iparg(82,ngroup) = mat_param(mid)%REZON%NUM_NUVAR_EOS
911 iparg(45,ngroup)= ilev
912 IF(ilev/=0 .AND. ish3n > 2)
THEN
914 CALL fretitl2(titr,igeo(npropgi-ltitr+1,pid),ltitr)
917 . anmode=aninfo_blind_1,
926 sh3tree(4,j+eadd(n)+nft-1)=ngroup
927 ilev=sh3tree(3,j+eadd(n)+nft-1)
928 IF(ilev >= 0)iparg(8,ngroup)=0
934 midn = ixtg(1,j+eadd(n)+nft-1)
941 iparg(10,ngroup)= nsg
942 iparg(18,ngroup)= mid
943 iparg(32,ngroup)= p-1
946 IF (igtyp == 11)
THEN
951 imatly = igeo(100+ipt,ixtg(5,ie))
952 nuvarr =
max(nuvarr,ipm(221,ixtg(1,ie)))
958 nuvarr =
max(nuvarr,ipm(221,ixtg(1,ie)))
961 iparg(47,ngroup)=nuvarr
973 IF(tagprt_sms(iparttg(ii))/=0)jsms=1
978 iparg(52,ngroup)=jsms
980 iparg(71,ngroup) = isubstack
981 iparg(75,ngroup) = igmat
982 iparg(92,ngroup) = idrape
984 idamp_freq_range = damp_range_part(iparttg(ii))
985 iparg(93,ngroup) = idamp_freq_range
996 ngp(nspmd+1)=ngp(nspmd+1)+ngp(p)
999 dd_iad(nspmd+1,nspgroup+n)=ngp(nspmd+1)
1003 IF (ixfem_err == 1) icrack3d = 0
1005 nspgroup = nspgroup + nd
1015 . anmode=aninfo_blind_2,
1019 . anmode=aninfo_blind_2,
1023 . anmode=aninfo_blind_2,
1026 . msgtype=msgwarning,
1027 . anmode=aninfo_blind_2,
1030 . anmode=aninfo_blind_2,
1031 . msgtype=msgwarning,
1034 . anmode=aninfo_blind_2,
1035 . msgtype=msgwarning,
1043 . msgtype=msgwarning,
1047 . msgtype=msgwarning,
1050 IF(print_flag>6)
THEN
1054 WRITE(iout,1001)n,mln,iparg(2,n),iparg(3,n)+1,
1055 + iparg(5,n),iabs(iparg(6,n)),
1056 + iparg(9,n),iparg(10,n),iparg(44,n),iparg(43,n)
1061 + /10x,
' 3D - TRIANGULAR SHELL ELEMENT GROUPS'/
1062 + 10x,
' ------------------------------------'/
1063 +
' GROUP MATERIAL ELEMENT FIRST',
1065 +
' INTEG SMALL SUB STRAIN FAILURE'/
1066 +
' LAW NUMBER ELEMENT',
1068 +
' PTS STRAIN GROUPS OUTPUT FLAG'/)
1069 1001
FORMAT(11(1x,i10))
1071 IF (
ALLOCATED(xnum_rnoise))
DEALLOCATE(xnum_rnoise)