41 1 IXC ,PM ,IPARG ,GEO ,
42 2 EADD ,ND ,IPARTC ,DD_IAD,
44 4 INDEX ,CEP ,THK ,XNUM,
45 5 IGRSURF,IGRSH4N ,IGEO ,IPM ,
46 6 IPART ,SH4TREE ,NOD2ELC ,ISHEOFF ,
47 7 SH4TRIM ,TAGPRT_SMS,LGAUGE ,IWORKSH ,
48 8 STACK ,DRAPE ,RNOISE ,MAT_PARAM,
49 9 SH4ANG, IDDLEVEL , DRAPEG,PRINT_FLAG,PTSHEL,DAMP_RANGE_PART)
63 use element_mod ,
only : nixc
85#include "implicit_f.inc"
91#include "com_xfem1.inc"
94#include "vect01_c.inc"
96#include "remesh_c.inc"
104 INTEGER IXC(NIXC,*),IPARG(NPARG,*),EADD(*),IGEO(NPROPGI,*),
105 . DD_IAD(NSPMD+1,*),IPARTC(*),SH4TRIM(*),
106 . INUM(9,*),ITR1(*),INDEX(*),CEP(*),
107 . IPM(NPROPMI,*), IPART(LIPART1,*), SH4TREE(KSH4TREE,*),
108 . ISHEOFF(*),TAGPRT_SMS(*),LGAUGE(3,*),
109 . NOD2ELC(*),IWORKSH(3,*)
110 INTEGER,
INTENT(IN) :: IDDLEVEL
111 INTEGER,
INTENT(IN) :: PRINT_FLAG
112 INTEGER ,
DIMENSION(NUMELC) ,
INTENT(INOUT):: PTSHEL
113 INTEGER ,
INTENT(IN) :: DAMP_RANGE_PART(NPART)
115 . PM(NPROPM,*), GEO(NPROPG,*), XNUM(*),THK(*),RNOISE(NPERTURB,*),
117 TYPE(MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT),
INTENT(IN) :: MAT_PARAM
119 TYPE (STACK_PLY) :: STACK
120 TYPE (DRAPE_) ,
TARGET :: DRAPE (NUMELC_DRAPE + NUMELTG_DRAPE)
121 TYPE (DRAPEG_) :: DRAPEG
122 TYPE (DRAPE_) ,
DIMENSION(:),
ALLOCATABLE :: XNUM_DRAPE
123 TYPE (DRAPEG_) :: XNUM_DRAPEG
125 TYPE (GROUP_) ,
DIMENSION(NGRSHEL) :: IGRSH4N
126 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
130 INTEGER I,K,NGR1,MLN,ISMST, ICSEN, JLEV, MY_NVSIZ, IADM,NLEVXF,
131 . npn, n, mid, pid, ihbe,npg,ixfem_err,
132 . ii, j, midn, pidn, nsg, nel, ne1, ithk,
133 . ipla, igtyp, kfts, p, nel_prec,nb,
135 . imatly, ipt,ilev,mpt, ie, nuvarr,
136 . ngp(nspmd+1),n1,nvarv,ivisc,ifwv,ixfem,iptun,irep,
137 . isubstack,ipmat, ippid,
138 . ipartr2r,nb_law58,ipert,stat,igmat,ipinch,ism0,iseatbelt,
139 . nslice,kk,npt_drp, idrape, jj,iel,iel0,ishel,idamp_freq_range
140 INTEGER,
DIMENSION(:),
ALLOCATABLE :: INUM_R2R
141 my_real,
DIMENSION(:),
ALLOCATABLE :: ANGLE
142 INTEGER,
DIMENSION(:),
ALLOCATABLE :: INDEXS2,INUM_PTSHEL
144 INTEGER MODE,WORK(70000)
145 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: ISTOR,INUM_WORKSH
148 CHARACTER(LEN=NCHARTITLE)::TITR,TITR1,TITR2
149 my_real,
DIMENSION(:,:),
ALLOCATABLE :: xnum_rnoise
150 INTEGER :: NB_NODES, LDIM, OFFSET
152 TYPE (DRAPE_PLY_) ,
POINTER :: DRAPE_PLY
154 CALL my_alloc(inum_r2r,1+r2r_siu*numelc)
155 CALL my_alloc(angle,numelc)
158 ALLOCATE( istor(ksh4tree+1,numelc) )
160 ALLOCATE( istor(0,0) )
163 CALL my_alloc(indexs2,numelc)
166 IF (nperturb > 0)
THEN
167 ALLOCATE(xnum_rnoise(nperturb,numelc),stat=stat)
168 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
172 ALLOCATE(xnum_rnoise(0,0))
185 CALL zeroin(1,nd*(nspmd+1),dd_iad(1,nspgroup+1))
190 dd_iad(p,nspgroup+n) = 0
196 nel = eadd(n+1)-eadd(n)
198 IF (ndrape > 0 .AND. numelc_drape > 0)
THEN
199 ALLOCATE(xnum_drape(nel))
200 ALLOCATE(xnum_drapeg%INDX(nel))
203 iel0 = drapeg%INDX(i + nft)
205 npt = drape(iel0)%NPLY
206 npt_drp = drape(iel0)%NPLY_DRAPE
207 ALLOCATE(xnum_drape(i)%INDX_PLY(npt))
208 ALLOCATE(xnum_drape(i)%DRAPE_PLY(npt_drp))
209 xnum_drape(i)%INDX_PLY= 0
211 nslice = drape(iel0)%DRAPE_PLY(j)%NSLICE
212 ALLOCATE(xnum_drape(i)%DRAPE_PLY(j)%RDRAPE(nslice,2))
213 ALLOCATE(xnum_drape(i)%DRAPE_PLY(j)%IDRAPE(nslice,3))
214 xnum_drape(i)%DRAPE_PLY(j)%RDRAPE = 0
215 xnum_drape(i)%DRAPE_PLY(j)%IDRAPE = 0
219 ALLOCATE( xnum_drape(0) )
221 ALLOCATE(inum_worksh(3,nel))
223 IF(ndrape > 0 .AND. numelc_drape > 0)
THEN
226 inum(1,i)=ipartc(nft+i)
227 inum(2,i)=isheoff(nft+i)
228 inum(3,i)=ixc(1,nft+i)
229 inum(4,i)=ixc(2,nft+i)
230 inum(5,i)=ixc(3,nft+i)
231 inum(6,i)=ixc(4,nft+i)
232 inum(7,i)=ixc(5,nft+i)
233 inum(8,i)=ixc(6,nft+i)
234 inum(9,i)=ixc(7,nft+i)
236 inum_worksh(1,i) = iworksh(1, nft + i)
237 inum_worksh(2,i) = iworksh(2, nft + i)
238 inum_worksh(3,i) = iworksh(3, nft + i)
239 IF (nsubdom>0) inum_r2r(i) =
tag_elcf(nft+i)
240 IF (nperturb > 0)
THEN
241 DO ipert = 1, nperturb
242 xnum_rnoise(ipert,i) = rnoise(ipert,nft+i)
245 angle(i) = sh4ang(nft + i)
247 iel0 = drapeg%INDX(nft + i)
248 xnum_drapeg%INDX(i) = iel0
250 npt = drape(iel0)%NPLY
251 xnum_drape(i)%NPLY = npt
252 xnum_drape(i)%INDX_PLY(1:npt) = drape(iel0)%INDX_PLY(1:npt)
253 npt = drape(iel0)%NPLY_DRAPE
254 xnum_drape(i)%NPLY_DRAPE = npt
255 xnum_drape(i)%THICK = drape(iel0)%THICK
257 drape_ply => drape(iel0)%DRAPE_PLY(jj)
258 nslice = drape_ply%NSLICE
259 xnum_drape(i)%DRAPE_PLY(jj)%NSLICE = nslice
260 xnum_drape(i)%DRAPE_PLY(jj)%IPID = drape_ply%IPID
262 xnum_drape(i)%DRAPE_PLY(jj)%IDRAPE(kk,1)=drape_ply%IDRAPE(kk,1)
263 xnum_drape(i)%DRAPE_PLY(jj)%IDRAPE(kk,2)=drape_ply%IDRAPE(kk,2)
264 xnum_drape(i)%DRAPE_PLY(jj)%RDRAPE(kk,1)=drape_ply%RDRAPE(kk,1)
265 xnum_drape(i)%DRAPE_PLY(jj)%RDRAPE(kk,2)=drape_ply%RDRAPE(kk,2)
267 DEALLOCATE(drape_ply%IDRAPE, drape_ply%RDRAPE)
269 DEALLOCATE(drape(iel0)%DRAPE_PLY)
270 DEALLOCATE(drape(iel0)%INDX_PLY)
275 inum(1,i)=ipartc(nft+i)
276 inum(2,i)=isheoff(nft+i)
277 inum(3,i)=ixc(1,nft+i)
278 inum(4,i)=ixc(2,nft+i)
279 inum(5,i)=ixc(3,nft+i)
280 inum(6,i)=ixc(4,nft+i)
281 inum(7,i)=ixc(5,nft+i)
282 inum(8,i)=ixc(6,nft+i)
283 inum(9,i)=ixc(7,nft+i)
285 inum_worksh(1,i) = iworksh(1,nft + i)
286 inum_worksh(2,i) = iworksh(2,nft + i)
287 inum_worksh(3,i) = iworksh(3,nft + i)
288 IF (nsubdom>0) inum_r2r(i) =
tag_elcf(nft+i)
289 IF (nperturb > 0)
THEN
290 DO ipert = 1, nperturb
291 xnum_rnoise(ipert,i) = rnoise(ipert,nft+i)
294 angle(i) = sh4ang(nft+i)
297 IF(abs(isigi) == 3 .OR. abs(isigi) == 4 .OR. abs(isigi) == 5)
THEN
298 ALLOCATE(inum_ptshel(nel))
300 inum_ptshel(i)=ptshel(nft+i)
307 istor(k,i)=sh4tree(k,nft+i)
312 istor(ksh4tree+1,i)=sh4trim(nft+i)
317 IF(
doqa .NE. 0 .OR. nadmesh /=0 .OR. iddlevel == 0)
THEN
319 CALL my_orders( mode, work, cep(nft+1), index, nel , 1)
326 IF(ndrape > 0 .AND. numelc_drape > 0)
THEN
329 ipartc(i+nft) =inum(1,index(i))
330 isheoff(i+nft)=inum(2,index(i))
331 thk(i+nft) =xnum(index(i))
332 ixc(1,i+nft)=inum(3,index(i))
333 ixc(2,i+nft)=inum(4,index(i))
334 ixc(3,i+nft)=inum(5,index(i))
335 ixc(4,i+nft)=inum(6,index(i))
336 ixc(5,i+nft)=inum(7,index(i))
337 ixc(6,i+nft)=inum(8,index(i))
338 ixc(7,i+nft)=inum(9,index(i))
339 IF (nsubdom>0)
tag_elcf(nft+i) = inum_r2r(index(i))
340 itr1(nft+index(i)) = nft+i
341 iworksh(1, nft + i)=inum_worksh(1,index(i))
342 iworksh(2, nft + i)=inum_worksh(2,index(i))
343 iworksh(3, nft + i)=inum_worksh(3,index(i))
345 IF (nperturb > 0)
THEN
346 DO ipert = 1, nperturb
347 rnoise(ipert,i+nft) = xnum_rnoise(ipert,index(i))
350 sh4ang(nft+i) = angle(index(i))
352 iel0 = xnum_drapeg%INDX(index(i))
353 drapeg%INDX(nft + i)= 0
356 npt = xnum_drape(index(i))%NPLY
357 ALLOCATE(drape(iel)%INDX_PLY(npt))
358 drape(iel)%INDX_PLY = 0
359 drapeg%INDX(nft + i)= iel
360 drape(iel)%INDX_PLY(1:npt) = xnum_drape(index(i))%INDX_PLY(1:npt)
361 drape(iel)%NPLY = npt
362 npt = xnum_drape(index(i))%NPLY_DRAPE
363 drape(iel)%NPLY_DRAPE= npt
364 drape(iel)%THICK = xnum_drape(index(i))%THICK
365 ALLOCATE(drape(iel)%DRAPE_PLY(npt))
367 drape_ply => drape(iel)%DRAPE_PLY(jj)
368 nslice = xnum_drape(index(i))%DRAPE_PLY(jj)%NSLICE
369 drape_ply%NSLICE = nslice
370 drape_ply%IPID = xnum_drape(index(i))%DRAPE_PLY(jj)%IPID
371 ALLOCATE(drape_ply%IDRAPE(nslice,2), drape_ply%RDRAPE(nslice,2))
373 drape_ply%RDRAPE = zero
375 drape_ply%IDRAPE(kk,1) = xnum_drape
376 drape_ply%IDRAPE(kk,2) = xnum_drape(index(i)
377 drape_ply%RDRAPE(kk,1) = xnum_drape(index(i))%DRAPE_PLY(jj)%RDRAPE(kk,1)
378 drape_ply%RDRAPE(kk,2) = xnum_drape(index(i))%DRAPE_PLY(jj)%RDRAPE(kk,2)
385 ipartc(i+nft) =inum(1,index(i))
386 isheoff(i+nft)=inum(2,index(i))
387 thk(i+nft) =xnum(index(i))
388 ixc(1,i+nft)=inum(3,index(i))
389 ixc(2,i+nft)=inum(4,index(i))
390 ixc(3,i+nft)=inum(5,index(i))
391 ixc(4,i+nft)=inum(6,index(i))
392 ixc(5,i+nft)=inum(7,index(i))
393 ixc(6,i+nft)=inum(8,index(i))
394 ixc(7,i+nft)=inum(9,index(i))
395 IF (nsubdom>0)
tag_elcf(nft+i) = inum_r2r(index(i))
396 itr1(nft+index(i)) = nft+i
397 iworksh(1, nft + i)=inum_worksh(1,index(i))
398 iworksh(2, nft + i)=inum_worksh(2,index(i))
399 iworksh(3, nft + i)=inum_worksh(3,index(i))
400 IF (nperturb > 0)
THEN
401 DO ipert = 1, nperturb
402 rnoise(ipert,i+nft) = xnum_rnoise(ipert,index(i))
405 sh4ang(nft+i) = angle(index(i))
409 IF(abs(isigi)==3.OR.abs(isigi)== 4.OR.abs(isigi)==5)
THEN
411 ptshel(nft+i) = inum_ptshel(index(i))
413 DEALLOCATE(inum_ptshel)
418 sh4tree(k,i+nft)=istor(k,index(i))
423 sh4trim(i+nft)=istor(ksh4tree+1,index(i))
429 p = cep(nft+index(1))
432 IF (cep(nft+index(i))/=p)
THEN
433 dd_iad(p+1,nspgroup+n) = nb
435 p = cep(nft+index(i))
440 dd_iad(p+1,nspgroup+n) = nb
442 dd_iad(p,nspgroup+n) = dd_iad(p,nspgroup+n)
443 . + dd_iad(p-1,nspgroup+n)
446 dd_iad(p,nspgroup+n) = dd_iad(p-1,nspgroup+n)+1
448 dd_iad(1,nspgroup+n) = 1
453 index(i) = cep(nft+index(i))
456 cep(nft+i) = index(i)
460 IF(ndrape > 0 .AND. numelc_drape > 0)
THEN
462 iel0 = xnum_drapeg%INDX(i)
464 npt_drp = xnum_drape(i)%NPLY_DRAPE
466 DEALLOCATE(xnum_drape(i)%DRAPE_PLY(j)%RDRAPE)
467 DEALLOCATE(xnum_drape(i)%DRAPE_PLY(j)%IDRAPE)
469 DEALLOCATE(xnum_drape(i)%DRAPE_PLY,xnum_drape(i)%INDX_PLY)
471 DEALLOCATE(xnum_drape,xnum_drapeg%INDX )
473 DEALLOCATE(xnum_drape )
476 DEALLOCATE(inum_worksh)
484 . sh4tree(1,i)=itr1(sh4tree(1,i))
486 . sh4tree(2,i)=itr1(sh4tree(2,i))
495 IF (igrsurf(i)%ELTYP(j) == 3)
496 . igrsurf(i)%ELEM(j) = itr1(igrsurf(i)%ELEM(j))
506 IF(n1 > 0) lgauge(3,i)=-itr1(n1)
513 nn=igrsh4n(i)%NENTITY
515 igrsh4n(i)%ENTITY(j) = itr1(igrsh4n(i)%ENTITY(j))
522 IF(nod2elc(i) /= 0)nod2elc(i)=itr1(nod2elc(i))
533 nel = dd_iad(p+1,nspgroup+n)-dd_iad(p,nspgroup+n)
535 nel_prec = dd_iad(p,nspgroup+n)-dd_iad(1,nspgroup+n)
537 DO WHILE (nft < nel_prec+nel)
542 mln = nint(pm(19,mid))
545 IF (nsubdom>0) ipartr2r =
tag_mat(mid)
551 ishxfem_ply = igeo(19,pid)
553 ihbe = nint(geo(171,pid))
554 ithk = nint(geo(35,pid))
555 ipla = nint(geo(39,pid))
556 istrain = nint(geo(11,pid))
558 igmat = igeo(98 ,pid)
563 IF (igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52)
THEN
565 isubstack =iworksh(3,ii)
568 CALL fretitl2(titr,igeo(npropgi-ltitr+1,pid),ltitr)
578 IF(ndrape > 0 .AND. (igtyp == 17 .OR. igtyp == 51 .OR. igtyp ==52) )
THEN
579 IF(drapeg%INDX(ii) /= 0 ) idrape = 1
582 IF ((ishel /=12 .AND. ishel /=24).AND.ishel > 5 )
THEN
583 CALL fretitl2(titr,igeo(npropgi-ltitr+1,pid),ltitr)
594 IF (igtyp == 11 .or. igtyp == 16)
THEN
596 imatly = igeo(100+ipt,pid)
597 IF (mat_param(imatly)%NFAIL > 0)
THEN
598 ixfem = mat_param(imatly)%IXFEM
601 IF (ixfem > 0) ixfem = 1
602 IF (ixfem == 1) nlevxf = nxel*npn
603 ELSEIF (igtyp == 51 .OR. igtyp == 52)
THEN
607 imatly = stack%IGEO(ipmat + ipt ,isubstack)
608 IF (mat_param(imatly)%NFAIL > 0) ixfem = mat_param(imatly)%IXFEM
609 IF (ixfem > 0) ixfem = 1
610 IF (ixfem == 1) nlevxf = nxel*npn
612 ELSEIF (igtyp == 1 .or. igtyp == 9 .or. igtyp == 10 .or. igtyp == 17)
THEN
613 ixfem = mat_param(mid)%IXFEM
619 nlevmax =
max(nlevmax, nlevxf)
622 IF (ihbe == 11 .and. ixfem > 0)
THEN
639 CALL fretitl2(titr,igeo(npropgi-ltitr+1,pid),ltitr)
647 IF (mat_param(mid)%SMSTR==1 .OR. mln == 1) ithk = 0
650 IF (ithk == 0) ism0=2
653 . anmode=aninfo_blind_2,
665 . anmode=aninfo_blind_2,
675 IF (mat_param(mid)%SMSTR==1)
THEN
680 IF (mat_param(mid)%STRAIN_FORMULATION==2) ismst =4
681 IF (mln == 58 ) ismst =4
682 IF (mln == 19 .AND. npn
688 . anmode=aninfo_blind_2,
696 IF (igtyp == 16 .and. mln == 58 .and. ismst /= 4)
THEN
699 . msgtype=msgwarning,
700 . anmode=aninfo_blind_2,
705 IF (igtyp == 1 .AND. (mln == 25 .OR.
713 ELSEIF (igtyp == 1 .AND. (mln ==57.OR. mln ==78 .OR.
714 . mln == 32 .OR. mln == 43 .OR. mln == 73.OR.mln == 87
715 . .OR.mln == 107.OR.mln == 112) )
THEN
717 . msgtype=msgwarning,
718 . anmode=aninfo_blind_1,
722 ELSEIF (igtyp == 1 .AND. mln ==200)
THEN
725 . anmode=aninfo_blind_1,
730 IF (igtyp == 1 .and. ismst == 11 )
THEN
734 . msgtype=msgwarning,
735 . anmode=aninfo_blind_2,
741 ELSEIF (ismst == 10 )
THEN
742 IF (ishel /=12 .AND. ishel /=24 )
THEN
745 . msgtype=msgwarning,
752 IF (mln /=42 .AND. mln /=69 .AND. mln /=88 .and. mln /= 99)
THEN
753 CALL ancmsg(msgid=3020, anmode=aninfo, msgtype=msgwarning,
774 IF(ilev<0)ilev=-ilev-1
775 my_nvsiz=
max(4,
min(4**ilev,nvsiz))
780 IF (npn > 1 .and. mln == 1)
THEN
782 CALL fretitl2(titr2,ipm(npropmi-ltitr+1,mid),ltitr)
784 . anmode=aninfo_blind_2,
785 . msgtype=msgwarning,
792 IF (npn > 1 .and. mln == 91)
THEN
796 IF (npn == 0 .and. mln /= 0 .and. mln /= 1 .and. mln /= 91)
THEN
799 . msgtype=msgwarning,
806 IF (npn == 0 .and. mln > 2 .and. mln /= 22 .and.
807 . mln /= 36 .and. mln /= 43 .and. mln /= 60 .and.
808 . mln /= 86 .and. mln /= 13 .and. mln /= 91)
THEN
810 . ipm(npropmi-ltitr+1,mid),
822 IF (npn == 0.AND.(mln == 36.OR.mln == 86))
THEN
825 ELSEIF(npn == 0.AND.mln == 2)
THEN
834 ELSEIF(mln == 32)
THEN
838 IF (isrot>0.AND.ihbe<11)
THEN
840 . msgtype=msgwarning,
841 . anmode=aninfo_blind_2,
847 CALL zeroin(1,nparg,iparg(1,ngroup))
848 iparg(1,ngroup) = mln
849 ne1 =
min( my_nvsiz, nel + nel_prec - nft)
850 iparg(2,ngroup) = ne1
851 iparg(3,ngroup)= eadd(n)-1 + nft
852 iparg(4,ngroup) = lbufel+1
861 IF (igtyp == 11)
THEN
863 imatly = igeo(100+ipt,pid)
864 IF(mat_param(imatly)%NFAIL > 0)
THEN
867 IF (mat_param(imatly)%IVISC > 0 ) ivisc = 1
868 IF (mat_param(imatly)%IFAILWAVE > 0) ifwv = 1
871 ELSEIF(igtyp == 17)
THEN
880 imatly = stack%IGEO(ipmat + ipt ,isubstack)
881 IF(mat_param(imatly)%NFAIL > 0)
THEN
884 IF( mat_param(imatly)%IVISC > 0 ) ivisc = 1
889 ELSEIF (igtyp == 51 .OR. igtyp == 52)
THEN
894 imatly = stack%IGEO(ipmat + ipt ,isubstack)
895 IF (mat_param(imatly)%NFAIL > 0)
THEN
898 IF (mat_param(imatly)%IVISC > 0) ivisc = 1
899 IF (mat_param(imatly)%IFAILWAVE > 0) ifwv = 1
901 IF (nint(pm(19,imatly)) == 58) nb_law58 = nb_law58
904 IF (nb_law58 == npn)
THEN
906 ELSEIF (nb_law58 > 0)
THEN
911 IF(mat_param(mid)%NFAIL > 0.AND.mln /= 0 .AND. mln /=13)
THEN
914 IF (mat_param(mid)%IVISC > 0 ) ivisc = 1
915 IF (mat_param(mid)%IFAILWAVE > 0) ifwv = 1
919 IF (mln == 13) irigid_mat = 1
920 jthe = nint(pm(71,mid))
923 IF(ipm(218,mid) > 0 .AND. mln /= 0 .AND. mln /=13)
THEN
927 IF (ivisc > 0 .AND. mln /= 0 .AND. mln /=13)
THEN
934 IF(tagprt_sms(ipartc(ii))/=0)jsms=1
939 iparg(52,ngroup)=jsms
941 iparg(54,ngroup) = ixfem
942 iparg(65,ngroup) = nlevxf
944 IF (nsubdom>0) iparg(77,ngroup)= ipartr2r
946 iparg(6,ngroup) = npn
947 iparg(9,ngroup) = ismst
948 iparg(13,ngroup) = jthe
949 iparg(23,ngroup) = ihbe
950 iparg(28,ngroup) = ithk
951 iparg(29,ngroup) = ipla
952 iparg(41,ngroup) = isrot
953 iparg(44,ngroup) = istrain
954 iparg(62,ngroup) = pid
955 iparg(90,ngroup) = ipinch
958 IF(mln == 119) iseatbelt = 1
959 iparg(91,ngroup) = iseatbelt
961 idamp_freq_range = damp_range_part(ipartc(ii))
962 iparg(93,ngroup) = idamp_freq_range
967 midn = ixc(1,j+eadd(n)+nft-1)
968 pidn = ixc(6,j+eadd(n)+nft-1)
969 IF(mid/=midn.OR.pid/=pidn)
THEN
977 iparg(10,ngroup)= nsg
978 iparg(18,ngroup)= mid
979 iparg(30,ngroup)= kfts
980 iparg(35,ngroup)= irep
981 iparg(38,ngroup)= igtyp
982 iparg(39,ngroup)= icsen
983 iparg(45,ngroup)= ilev
987 sh4tree(4,j+eadd(n)+nft-1)=ngroup
988 jlev=sh4tree(3,j+eadd(n)+nft-1)
989 IF(jlev >= 0)iparg(8,ngroup)=0
994 IF (igtyp == 11)
THEN
999 imatly = igeo(100+ipt,ixc
1000 nuvarr =
max(nuvarr,ipm(221,ixc(1,ie)))
1006 nuvarr =
max(nuvarr,ipm(221,ixc(1,ie)))
1009 iparg(47,ngroup)=nuvarr
1017 iparg(48,ngroup)=npg
1019 iparg(32,ngroup) = p-1
1020 iparg(50,ngroup) = ishxfem_ply
1022 iparg(71,ngroup) = isubstack
1023 iparg(75,ngroup) = igmat
1025 iparg(78,ngroup) = mat_param(mid)%NLOC
1026 iparg(79,ngroup) = ifwv
1028 iparg(92,ngroup) = idrape
1032 ngp(p)=ngroup-ngp(p)
1038 ngp(nspmd+1)=ngp(nspmd+1)+ngp(p)
1039 dd_iad(p,nspgroup+n)=ngp(p)
1041 dd_iad(nspmd+1,nspgroup+n)=ngp(nspmd+1)
1046 IF (ixfem_err == 1) icrack3d = 0
1048 nspgroup = nspgroup + nd
1051 . anmode=aninfo_blind_2,
1052 . msgtype=msgwarning,
1063 . anmode=aninfo_blind_2,
1067 . anmode=aninfo_blind_2,
1071 . anmode=aninfo_blind_2,
1074 . msgtype=msgwarning,
1075 . anmode=aninfo_blind_2,
1078 . anmode=aninfo_blind_2,
1079 . msgtype=msgwarning,
1082 . msgtype=msgwarning,
1083 . anmode=aninfo_blind_2,
1091 . msgtype=msgwarning,
1095 . msgtype=msgwarning,
1098 IF(print_flag>6)
THEN
1103 WRITE(iout,1001)n,mln,iparg(2,n),iparg(3,n)+1,
1104 + iparg(5,n),iabs(iparg(6,n)),
1105 + iparg(9,n),iparg(10,n),iparg(44,n),
1106 + iparg(23,n),iparg(43,n),iparg(90,n)
1111 + /6x,
'3D - SHELL ELEMENT GROUPS'/
1112 + 6x,
'-------------------------'/
1113 +
' GROUP MATERIAL ELEMENT FIRST',
1115 +
' SMALL SUB STRAIN HOURGLASS FAILURE PINCHING'/
1116 +
' LAW NUMBER ELEMENT',
1118 +
' STRAIN GROUPS OUTPUT FLAG FLAG FLAG'/)
1119 1001
FORMAT(12(1x,i10))
1122 IF (
ALLOCATED(xnum_rnoise))
DEALLOCATE(xnum_rnoise)
1127 DEALLOCATE(inum_r2r)