108 . IXC ,IXTG ,IGEO ,IGEO_STACK ,LSUBMODEL ,
124#include "implicit_f.inc"
128#include "units_c.inc"
129#include "drape_c.inc"
131#include "com04_c.inc"
132#include "param_c.inc"
133#include "scr03_c.inc"
137 INTEGER :: IWORKSH(3,*),IXC(NIXC,*),
138 . IXTG(NIXTG,*),IGEO(NPROPGI,*),
139 . igeo_stack(npropgi,*),indxsh(numelc+numeltg)
141 TYPE (GROUP_) ,
DIMENSION(NGRSH3N) :: IGRSH3N
142 TYPE (GROUP_) ,
DIMENSION(NGRSHEL) :: IGRSH4N
143 TYPE () ,
DIMENSION(NUMELC + NUMELTG) ,
TARGET :: DRAPE_WRK
145 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
146 TYPE(
drape_work_) ,
DIMENSION(NUMELC+NUMELTG),
TARGET :: IWORK_T
150 INTEGER ::I, II,J,JJ,IX,ID,SHELL_ID,SH3N_ID,GRSHEL_ID,GRSH3N_ID,OFFC,
153 . nis,no_ish,no_isheused_drape,nums,npt,ippid,isl,npt_drp,nslice
154 . slicelist,npt_slice,mat_id,no_used_drape
155 INTEGER ,
DIMENSION(NDRAPE) :: DRP_SHEL, DRP_SH3N,DRAPE_ID
157 . thinning,theta_drape,bid
158 CHARACTER(LEN=NCHARTITLE) :: TITR,DRAPE_ENTITY
159 CHARACTER MESS*40,MESS1*40,MESS2*40, MESS3*40,MESS4*40,MESS5*40
160 DATA mess/
'DRAPE DEFINITION '/
162 DATA mess2/
'GRSHEL '/
164 DATA mess4/
'GRSH3N '/
166 INTEGER,
DIMENSION (:) ,
ALLOCATABLE :: TAGSH,INDX_TMP
167 INTEGER,
DIMENSION (:,:),
ALLOCATABLE :: ISH3N_DRP,IGRSH4N_DRP,ISH4N_DRP,IGRSH3N_DRP,
168 . itmp_sh4n,itmp_grsh4n,itmp_sh3n,itmp_grsh3n
169 INTEGER,
DIMENSION(:,:,:),
ALLOCATABLE :: ISH4N,ISH3N,ISH4N_GR,ISH3N_GR
170 my_real,
DIMENSION(:,:,:),
ALLOCATABLE :: RSH4N,RSH3N,RSH4N_GR,RSH3N_GR
171 LOGICAL :: IS_AVAILABLE
173 is_available = .false.
180 ALLOCATE(tagsh(numelc+numeltg), indx_tmp(numelc + numeltg))
193 tagsh(1:numelc+numeltg) = 0
196 !---------------------------------
200 . option_titr = titr)
208 CALL hm_get_intv(
'drapelistmax',listmax,is_available,lsubmodel)
213 slicelistmax=
max(slicelistmax,slicelist)
216 ALLOCATE(ish4n(listmax,slicelistmax,2) ,ish4n_gr(listmax,slicelistmax,2),
217 . ish3n(listmax,slicelistmax,2) ,ish3n_gr(listmax,slicelistmax,2),
218 . ish4n_drp(listmax,3),igrsh4n_drp(listmax,3),ish3n_drp(listmax,3),igrsh3n_drp(listmax,3),
219 . itmp_sh4n(2,listmax),itmp_sh3n(2,listmax),itmp_grsh4n(2,listmax),itmp_grsh3n(2,listmax))
232 ALLOCATE(rsh4n(listmax,slicelistmax,2),rsh3n(listmax,slicelistmax,2),rsh4n_gr(listmax,slicelistmax,2),
233 . rsh3n_gr(listmax, slicelistmax,2))
249 drape_entity(len_trim(drape_entity)+1:10)=
' '
253 IF (drape_entity(1:5) ==
'SHELL')
THEN
257 ish4n_drp(it1,1) = shell_id
258 ish4n_drp(it1,2) = id
259 ish4n_drp(it1,3) = slicelist
260 itmp_sh4n(1,it1) = shell_id
261 itmp_sh4n(2,it1) = id
272 IF (shell_id == 0)
THEN
282 .
WRITE(iout,
'(10X,I10,14X,A6,7X,I10,7X,I10,2(15X,1PG20.13))')
283 . id,drape_entity(1:5),shell_id,jj,thinning,theta_drape
285 theta_drape=theta_drape*pi/hundred80
287 IF (thinning == zero) thinning = one
289 ish4n(it1,jj,1) = mat_id
290 ish4n(it1,jj,2) = npt_slice
291 rsh4n(it1,jj,1) = thinning
292 rsh4n(it1,jj,2) = theta_drape
297 ELSEIF (drape_entity(1:4) ==
'SH3N')
THEN
302 ish3n_drp(it2,1) = sh3n_id
303 ish3n_drp(it2,2) = id
304 ish3n_drp(it2,3) = slicelist
305 itmp_sh3n(1,it2) = sh3n_id
306 itmp_sh3n(2,it2) = id
317 IF (sh3n_id == 0)
THEN
327 .
WRITE(iout,
'(10X,I10,14X,A6,7X,I10,7X,I10,2(15X,1PG20.13))'
328 . id,drape_entity(1:4),sh3n_id,jj,thinning,theta_drape
330 theta_drape=theta_drape*pi/hundred80
332 IF (thinning == zero) thinning = one
334 ish3n(it2,jj,1) = mat_id
335 ish3n(it2,jj,2) = npt_slice
336 rsh3n(it2,jj,1) = thinning
337 rsh3n(it2,jj,2) = theta_drape
342 ELSEIF (drape_entity(1:6) ==
'GRSHEL')
THEN
348 igrsh4n_drp(it3,1) = grshel_id
349 igrsh4n_drp(it3,2) = id
350 igrsh4n_drp(it3,3) = slicelist
351 itmp_grsh4n(1,it3) = grshel_id
352 itmp_grsh4n(2,it3) = id
362 IF (grshel_id == 0)
THEN
372 .
WRITE(iout,
'(10X,I10,14X,A6,7X,I10,7X,I10,2(15X,1PG20.13))')
373 . id,drape_entity(1:6),grshel_id,jj,thinning,theta_drape
375 theta_drape=theta_drape*pi/hundred80
377 IF (thinning == zero) thinning = one
379 ish4n_gr(it3,jj,1) = mat_id
380 ish4n_gr(it3,jj,2) = npt_slice
381 rsh4n_gr(it3,jj,1) = thinning
382 rsh4n_gr(it3,jj,2) = theta_drape
387 ELSEIF (drape_entity(1:6) ==
'GRSH3N')
THEN
392 igrsh3n_drp(it4,1) = grsh3n_id
393 igrsh3n_drp(it4,2) = id
394 igrsh3n_drp(it4,3) = slicelist
395 itmp_grsh4n(1,it4) = grsh3n_id
396 itmp_grsh4n(2,it4) = id
407 IF (grsh3n_id == 0)
THEN
417 .
WRITE(iout,
'(10X,I10,14X,A6,7X,I10,7X,I10,2(15X,1PG20.13))')
418 . id,drape_entity(1:6),grsh3n_id,jj,thinning,theta_drape
420 theta_drape = theta_drape*pi/hundred80
422 IF (thinning == zero) thinning = one
425 ish3n_gr(it4,jj,1) = mat_id
426 ish3n_gr(it4,jj,2) = npt_slice
427 rsh3n_gr(it4,jj,1) = thinning
428 rsh3n_gr(it4,jj,2) = theta_drape
442 IF (igtyp == 17 .OR. igtyp == 51)
THEN
444 jpid = iwork_t(ie)%PLYID(ip)
449 no_used_drape = no_used_drape + 1
453 ELSEIF (igtyp == 52)
THEN
455 jpid = iwork_t(ie)%PLYID(ip)
458 jdrp = igeo_stack(48,jpid)
460 no_used_drape = no_used_drape + 1
471 npt = iworksh(1,numelc + ie)
472 IF (igtyp == 17 .OR. igtyp == 51)
THEN
474 jpid = iwork_t(numelc + ie)%PLYID(ip)
479 no_used_drape = no_used_drape + 1
483 ELSEIF (igtyp == 52)
THEN
485 jpid = iwork_t(numelc + ie)%PLYID(ip)
488 jdrp = igeo_stack(48,jpid)
490 no_used_drape = no_used_drape + 1
497 IF (no_used_drape == 0)
THEN
499 . msgtype=msgwarning,
508 CALL udouble3(itmp_sh4n,2,it1,mess5,mess1,0,bid)
510 CALL udouble3(itmp_grsh4n,2,it3,mess5,mess2
513 CALL udouble3(itmp_sh3n,2,it2,mess5,mess3,0,bid)
515 CALL udouble3(itmp_grsh3n,2,it4,mess5,mess4,0,bid)
523 idrp = ish4n_drp(j,2)
524 nslice = ish4n_drp(j,3)
535 IF (tagsh(ie) == 0)
THEN
538 IF (.NOT.
ALLOCATED(drape_wrk(ie)%DRAPE_PLY))
THEN
539 ALLOCATE(drape_wrk(ie)%DRAPE_PLY(npt))
542 drape_wrk(ie)%NPLY_DRAPE = 0
546 drp_shel(i) = drp_shel(i) + 1
548 IF (igtyp == 17 .OR. igtyp == 51)
THEN
550 IF (.NOT.
ALLOCATED(drape_wrk(ie)%INDX_PLY))
THEN
551 ALLOCATE(drape_wrk(ie)%INDX_PLY(npt) )
552 drape_wrk(ie)%INDX_PLY = 0
554 npt_drp = drape_wrk(ie)%NPLY_DRAPE
560 IF (idrp == jdrp)
THEN
561 ALLOCATE(drape_wrk(ie)%DRAPE_PLY(ip)%RDRAPE(nslice,2))
562 ALLOCATE(drape_wrk(ie)%DRAPE_PLY(ip)%IDRAPE(nslice,2))
563 drape_wrk(ie)%DRAPE_PLY(ip)%RDRAPE = zero
564 drape_wrk(ie)%DRAPE_PLY(ip)%IDRAPE = 0
565 drape_wrk(ie)%DRAPE_PLY(ip)%NSLICE = nslice
566 npt_drp = npt_drp + 1
567 drape_wrk(ie)%NPLY_DRAPE = npt_drp
568 drape_wrk(ie)%INDX_PLY(npt_drp) = ip
569 drape_wrk(ie)%DRAPE_PLY(ip)%IPID = idrp
571 drape_wrk(ie)%DRAPE_PLY(ip
572 drape_wrk(ie)%DRAPE_PLY(ip)%RDRAPE(isl,2)
573 drape_wrk(ie)%DRAPE_PLY(ip)%IDRAPE(isl,1) = ish4n(j,isl,1)
574 drape_wrk(ie)%DRAPE_PLY
581 ELSEIF (igtyp == 52)
THEN
583 IF (.NOT.
ALLOCATED(drape_wrk(ie)%INDX_PLY))
THEN
584 ALLOCATE(drape_wrk(ie)%INDX_PLY(npt
585 drape_wrk(ie)%INDX_PLY = 0
587 npt_drp = drape_wrk(ie)%NPLY_DRAPE
589 jpid = iwork_t(ie)%PLYID
592 jdrp = igeo_stack(48,jpid)
594 ALLOCATE(drape_wrk(ie)%DRAPE_PLY(ip)%RDRAPE(nslice,2) )
595 ALLOCATE(drape_wrk(ie)%DRAPE_PLY(ip)%IDRAPE(nslice,2) )
596 drape_wrk(ie)%DRAPE_PLY(ip)%RDRAPE = zero
597 drape_wrk(ie)%DRAPE_PLY(ip)%IDRAPE = 0
598 drape_wrk(ie)%DRAPE_PLY(ip)%NSLICE = nslice
599 npt_drp = npt_drp + 1
600 drape_wrk(ie)%NPLY_DRAPE = npt_drp
601 drape_wrk(ie)%INDX_PLY(npt_drp) = ip
602 drape_wrk(ie)%DRAPE_PLY(ip)%IPID = idrp
604 drape_wrk(ie)%DRAPE_PLY(ip)%RDRAPE(isl,1) = rsh4n(j,isl,1)
605 drape_wrk(ie)%DRAPE_PLY(ip)%RDRAPE(isl,2) = rsh4n(j,isl,2)
606 drape_wrk(ie)%DRAPE_PLY(ip)%IDRAPE(isl,1) = ish4n(j,isl,1)
607 drape_wrk(ie)%DRAPE_PLY(ip)%IDRAPE(isl,2) = ish4n(j,isl,2)
619 . (igtyp == 17. or. igtyp == 51 .OR.
THEN
632 ELSEIF (nis == 0 .AND.
633 . igtyp /= 17. and. igtyp /= 51 .AND. igtyp /= 52)
THEN
647 IF (no_ish == 0)
THEN
663 igr = igrsh4n_drp(j,1)
664 idrp = igrsh4n_drp(j,2)
665 nslice = igrsh4n_drp(j,3)
667 offc = ngrnod + ngrbric + ngrquad + jj
669 nel = igrsh4n(jj)%NENTITY
671 ity = igrsh4n(jj)%GRTYPE
675 idshel = igrsh4n(jj)%ENTITY(ii)
678 npt =iworksh(1,idshel)
679 IF (tagsh(idshel) == 0)
THEN
680 tagsh(idshel) = idshel
682 IF (.NOT.
ALLOCATED(drape_wrk(idshel)%DRAPE_PLY))
THEN
683 ALLOCATE(drape_wrk(idshel)%DRAPE_PLY(npt))
686 drape_wrk(idshel)%NPLY_DRAPE = 0
690 drp_shel(i) = drp_shel(i) + 1
692 IF (igtyp == 17 .OR. igtyp == 51)
THEN
693 IF (.NOT.
ALLOCATED(drape_wrk(idshel)%INDX_PLY))
THEN
694 ALLOCATE(drape_wrk(idshel)%INDX_PLY(npt) )
695 drape_wrk(idshel)%INDX_PLY = 0
697 npt_drp = drape_wrk(idshel)%NPLY_DRAPE
699 jpid = iwork_t(idshel)%PLYID(ip)
704 ALLOCATE(drape_wrk(idshel)%DRAPE_PLY
705 ALLOCATE(drape_wrk(idshel)%DRAPE_PLY(ip
706 drape_wrk(idshel)%DRAPE_PLY(ip)%IDRAPE = 0
707 drape_wrk(idshel)%DRAPE_PLY(ip)%RDRAPE = zero
708 drape_wrk(idshel)%DRAPE_PLY(ip)%NSLICE = nslice
709 npt_drp = npt_drp + 1
710 drape_wrk(idshel)%NPLY_DRAPE = npt_drp
711 drape_wrk(idshel)%INDX_PLY(npt_drp) = ip
712 drape_wrk(idshel)%DRAPE_PLY(ip)%IPID = idrp
714 drape_wrk(idshel)%DRAPE_PLY(ip)%RDRAPE(isl,1) = rsh4n_gr(j,isl,1)
715 drape_wrk(idshel)%DRAPE_PLY(ip)%RDRAPE(isl,2) = rsh4n_gr(j,isl,2)
716 drape_wrk(idshel)%DRAPE_PLY(ip)%IDRAPE(isl,1) = ish4n_gr(j,isl,1)
717 drape_wrk(idshel)%DRAPE_PLY(ip)%IDRAPE(isl,2) = ish4n_gr(j,isl,2)
728 ELSEIF (igtyp == 52)
THEN
729 IF (.NOT.
ALLOCATED(drape_wrk(idshel)%INDX_PLY))
THEN
730 ALLOCATE(drape_wrk(idshel)%INDX_PLY(npt) )
731 drape_wrk(idshel)%INDX_PLY = 0
732 drape_wrk(idshel)%NPLY_DRAPE = 0
734 npt_drp = drape_wrk(idshel)%NPLY_DRAPE
736 jpid = iwork_t(idshel)%PLYID(ip)
738 jdrp = igeo_stack(48,jpid)
740 ALLOCATE(drape_wrk(idshel)%DRAPE_PLY(ip)%RDRAPE(nslice,2) )
741 ALLOCATE(drape_wrk(idshel)%DRAPE_PLY(ip)%IDRAPE(nslice,2) )
742 drape_wrk(idshel)%DRAPE_PLY(ip)%RDRAPE = zero
743 drape_wrk(idshel)%DRAPE_PLY(ip)%IDRAPE = 0
744 drape_wrk(idshel)%DRAPE_PLY(ip)%NSLICE = nslice
745 npt_drp = npt_drp + 1
746 drape_wrk(idshel)%NPLY_DRAPE = npt_drp
747 drape_wrk(idshel)%INDX_PLY(npt_drp) = ip
748 drape_wrk(idshel)%DRAPE_PLY(ip)%IPID = idrp
750 drape_wrk(idshel)%DRAPE_PLY(ip)%RDRAPE(isl,1) = rsh4n_gr(j,isl,1)
751 drape_wrk(idshel)%DRAPE_PLY(ip)%RDRAPE(isl,2) = rsh4n_gr(j,isl,2)
752 drape_wrk(idshel)%DRAPE_PLY(ip)%IDRAPE(isl,1) = ish4n_gr(j,isl,1)
753 drape_wrk(idshel)%DRAPE_PLY(ip)%IDRAPE(isl,2) = ish4n_gr(j,isl,2)
766 . (igtyp == 17. or. igtyp == 51 .OR. igtyp == 52))
THEN
776 . i3=ixc(nixc,idshel))
777 ELSEIF (nis == 0 .AND.
778 . igtyp /= 17. and. igtyp /= 51 .AND. igtyp /= 52)
THEN
788 . i3=ixc(nixc,idshel))
790 ELSEIF (tagsh(idshel) == ixc(nixc,idshel))
THEN
799 . i3=ixc(nixc,idshel))
810 idrp = ish3n_drp(j,2)
811 nslice = ish3n_drp(j,3)
821 npt = iworksh(1,numelc +ie)
822 IF (tagsh(ie+numelc) == 0)
THEN
823 tagsh(ie+numelc) = ish
825 IF (.NOT.
ALLOCATED(drape_wrk(numelc + ie)%DRAPE_PLY))
THEN
826 ALLOCATE(drape_wrk(numelc + ie)%DRAPE_PLY(npt))
829 drape_wrk(ie + numelc)%NPLY_DRAPE = 0
832 drp_sh3n(i) = drp_sh3n(i) + 1
834 IF (igtyp == 17 .OR. igtyp == 51)
THEN
835 IF (.NOT.
ALLOCATED(drape_wrk(numelc + ie)%INDX_PLY))
THEN
836 ALLOCATE(drape_wrk(numelc + ie)%INDX_PLY(npt) )
837 drape_wrk(numelc + ie)%INDX_PLY = 0
839 npt_drp = drape_wrk(numelc + ie)%NPLY_DRAPE
841 jpid = iwork_t(numelc + ie)%PLYID(ip)
846 ALLOCATE(drape_wrk(ie+numelc)%DRAPE_PLY(ip)%RDRAPE(nslice,2) )
847 ALLOCATE(drape_wrk(ie+numelc)%DRAPE_PLY(ip)%IDRAPE(nslice,2) )
848 drape_wrk(ie+numelc)%DRAPE_PLY(ip)%RDRAPE = zero
849 drape_wrk(ie+numelc)%DRAPE_PLY(ip)%IDRAPE = 0
850 drape_wrk(ie+numelc)%DRAPE_PLY(ip)%NSLICE = nslice
851 npt_drp = npt_drp + 1
852 drape_wrk(ie+numelc)%NPLY_DRAPE = npt_drp
853 drape_wrk(ie+numelc)%INDX_PLY(npt_drp) = ip
854 drape_wrk(ie+numelc)%DRAPE_PLY(ip)%IPID = idrp
856 drape_wrk(ie+numelc)%DRAPE_PLY(ip)%RDRAPE(isl,1) = rsh3n(j,isl,1)
857 drape_wrk(ie+numelc)%DRAPE_PLY(ip)%RDRAPE(isl,2) = rsh3n(j,isl,2)
858 drape_wrk(ie+numelc)%DRAPE_PLY(ip)%IDRAPE(isl,1) = ish3n(j,isl,1)
859 drape_wrk(ie+numelc)%DRAPE_PLY(ip)%IDRAPE(isl,2) = ish3n(j,isl,2)
870 ELSEIF (igtyp == 52)
THEN
871 IF (.NOT.
ALLOCATED(drape_wrk(numelc + ie)%INDX_PLY))
THEN
872 ALLOCATE(drape_wrk(numelc + ie)%INDX_PLY(npt) )
873 drape_wrk(numelc + ie)%INDX_PLY = 0
875 npt_drp = drape_wrk(numelc + ie)%NPLY_DRAPE
877 jpid = iwork_t(numelc + ie)%PLYID(ip)
880 jdrp = igeo_stack(48,jpid)
882 ALLOCATE(drape_wrk(numelc + ie)%DRAPE_PLY(ip)%RDRAPE(nslice,2) )
883 ALLOCATE(drape_wrk(numelc + ie)%DRAPE_PLY(ip)%IDRAPE(nslice,2) )
884 drape_wrk(numelc + ie)%DRAPE_PLY(ip)%NSLICE = nslice
885 npt_drp = npt_drp + 1
886 drape_wrk(numelc + ie)%NPLY_DRAPE = npt_drp
887 drape_wrk(numelc + ie)%INDX_PLY(npt_drp) = ip
888 drape_wrk(numelc + ie)%DRAPE_PLY(ip)%IPID = idrp
890 drape_wrk(numelc + ie)%DRAPE_PLY(ip)%RDRAPE(isl,1) = rsh3n(j,isl,1)
891 drape_wrk(numelc + ie)%DRAPE_PLY(ip)%RDRAPE(isl,2) = rsh3n(j,isl,2)
892 drape_wrk(numelc + ie)%DRAPE_PLY(ip)%IDRAPE(isl,1) = ish3n(j,isl,1)
893 drape_wrk(numelc + ie)%DRAPE_PLY(ip)%IDRAPE(isl,2) = ish3n(j,isl,2)
907 . (igtyp == 17. or. igtyp == 51 .OR. igtyp == 52))
THEN
916 ELSEIF (nis == 0 .AND.
917 . igtyp /= 17. and. igtyp /= 51 .AND. igtyp /= 52)
THEN
931 IF (no_ish == 0)
THEN
946 igr = igrsh3n_drp(j,1)
948 nslice = igrsh3n_drp(j,3)
950 offc = ngrnod + ngrbric + ngrquad + ngrshel + ngrtrus +
951 . ngrbeam + ngrspri + jj
953 nel = igrsh3n(jj)%NENTITY
955 ity = igrsh3n(jj)%GRTYPE
959 idsh3n = igrsh3n(jj)%ENTITY(ii)
960 idshel = idsh3n + numelc
963 npt = iworksh(1,idshel)
965 IF (tagsh(idshel) == 0)
THEN
966 tagsh(idshel) = ixtg(nixtg,idsh3n)
968 IF (.NOT.
ALLOCATED(drape_wrk(idshel)%DRAPE_PLY))
THEN
969 ALLOCATE(drape_wrk(idshel)%DRAPE_PLY(npt))
972 drape_wrk(idshel)%NPLY_DRAPE = 0
976 drp_sh3n(i) = drp_sh3n(i) + 1
978 IF (igtyp == 17 .OR. igtyp == 51)
THEN
979 IF (.NOT.
ALLOCATED(drape_wrk(idshel)%INDX_PLY))
THEN
980 ALLOCATE(drape_wrk(idshel)%INDX_PLY(npt) )
981 drape_wrk(idshel)%INDX_PLY = 0
983 npt_drp = drape_wrk(idshel)%NPLY_DRAPE
985 jpid = iwork_t(idshel)%PLYID(ip)
990 ALLOCATE(drape_wrk(idshel)%DRAPE_PLY(ip)%RDRAPE(nslice,2))
991 ALLOCATE(drape_wrk(idshel)%DRAPE_PLY(ip)%IDRAPE(nslice,2))
992 drape_wrk(idshel)%DRAPE_PLY(ip)%RDRAPE = zero
993 drape_wrk(idshel)%DRAPE_PLY(ip)%IDRAPE = 0
994 drape_wrk(idshel)%DRAPE_PLY(ip)%NSLICE = nslice
995 npt_drp = npt_drp + 1
996 drape_wrk(idshel)%NPLY_DRAPE = npt_drp
997 drape_wrk(idshel)%INDX_PLY(npt_drp)= ip
998 drape_wrk(idshel)%DRAPE_PLY(ip)%IPID = idrp
1000 drape_wrk(idshel)%DRAPE_PLY(ip)%RDRAPE(isl,1) = rsh3n_gr(j,isl,1)
1001 drape_wrk(idshel)%DRAPE_PLY(ip)%RDRAPE(isl,2) = rsh3n_gr(j,isl,2)
1003 drape_wrk(idshel)%DRAPE_PLY(ip)%IDRAPE(isl,2) = ish3n_gr(j,isl,2)
1012 ELSEIF (igtyp == 52)
THEN
1013 IF (.NOT.
ALLOCATED(drape_wrk(idshel)%INDX_PLY))
THEN
1014 ALLOCATE(drape_wrk(idshel)%INDX_PLY(npt) )
1015 drape_wrk(idshel)%INDX_PLY = 0
1017 npt_drp = drape_wrk(idshel)%NPLY_DRAPE
1019 jpid = iwork_t(idshel)%PLYID(ip)
1022 jdrp = igeo_stack(48,jpid)
1024 ALLOCATE(drape_wrk(idshel)%DRAPE_PLY(ip)%RDRAPE(nslice,2) )
1025 ALLOCATE(drape_wrk(idshel)%DRAPE_PLY(ip)%IDRAPE(nslice,2) )
1026 drape_wrk(idshel)%DRAPE_PLY(ip)%RDRAPE = zero
1027 drape_wrk(idshel)%DRAPE_PLY(ip)%IDRAPE = 0
1028 drape_wrk(idshel)%DRAPE_PLY(ip)%NSLICE = nslice
1029 npt_drp = npt_drp + 1
1030 drape_wrk(idshel)%NPLY_DRAPE = npt_drp
1031 drape_wrk(idshel)%INDX_PLY(npt_drp)= ip
1032 drape_wrk(idshel)%DRAPE_PLY(ip)%IPID = idrp
1034 drape_wrk(idshel)%DRAPE_PLY(ip)%RDRAPE(isl,1) = rsh3n_gr(j,isl,1)
1035 drape_wrk(idshel)%DRAPE_PLY(ip)%RDRAPE(isl,2) = rsh3n_gr(j,isl,2)
1036 drape_wrk(idshel)%DRAPE_PLY(ip)%IDRAPE(isl,1) = ish3n_gr(j,isl,1)
1037 drape_wrk(idshel)%DRAPE_PLY(ip)%IDRAPE(isl,2) = ish3n_gr(j,isl,2)
1050 . (igtyp == 17. or. igtyp == 51 .OR. igtyp == 52))
THEN
1060 . i3=ixtg(nixtg,idsh3n))
1061 ELSEIF (nis == 0 .AND.
1062 . igtyp /= 17. and. igtyp /= 51 .AND. igtyp /= 52)
THEN
1072 . i3=ixtg(nixtg,idsh3n))
1074 ELSEIF (tagsh(idshel) == ixtg(nixtg,idsh3n))
THEN
1083 . i3=ixtg(nixtg,idsh3n))
1092 IF (ipri < 5)
WRITE(iout,
'(10X,I10,2(15X,I10))')
1093 . id,drp_shel(i),drp_sh3n(i)
1095 DEALLOCATE(ish4n,ish4n_gr,ish3n ,ish3n_gr,
1096 . ish4n_drp,igrsh4n_drp,ish3n_drp,igrsh3n_drp,
1097 . itmp_sh4n,itmp_sh3n, itmp_grsh4n, itmp_grsh3n)
1098 DEALLOCATE(rsh4n,rsh3n,rsh4n_gr, rsh3n_gr)
1104 IF(ii > 0)indxsh(ii) = i
1110 ii = indx_tmp(i + numelc)
1114 DEALLOCATE(indx_tmp)
1121 CALL udouble(drape_id,1,ndrape,mess,0,bid)
1127 .
' DRAPE NUMBER ENTITY TYPE ENTITY ID SLICE NUMBER',
1128 .
' PLY THINNING FACTOR PLY ORIENTATION ANGLE CHANGE')
1132 .
' DRAPE NUMBER NB. OF SHELL ELEMENTS NB. OF SH3N ELEMENTS')