46 . UNITAB ,RTRANS ,LSUBMODEL,SUB_ID ,IDTITL ,
47 . PROP_ID ,PROP_TAG , STACK_INFO,DEFAULTS_SHELL)
61#include "implicit_f.inc"
72#include "tablen_c.inc"
76 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
78 . igeo(npropgi),ipm(npropmi,*),sub_id,iskn(liskn,*),
81 . geo(npropg), pm(npropm,*),rtrans(ntransf,*)
83 CHARACTER(LEN=NCHARTITLE)::IDTITL
86 TYPE(shell_defaults_),
INTENT(IN) :: DEFAULTS_SHELL
91 INTEGER :: IGMAT, IHBE , ISMSTR, ISROT, ISHXFEM ,ISTRAIN, ITHK, IPLAST, IDSK,
92 . iorth, ipos , lamin , nsub , nisub , nn, nply, idsub , i, ply_id
93 . imid_pi,inter ,ipid1 , ipid2 , irep, ishear ,ihbeoutp ,ipid0,
94 . isk , j, iss, n1, imid, k, nc, kk, ii, npt_sub, m1, imat,
95 . n,ipid,ishell,ish3n,
id,id1,iun,nply_sub,igtyp,fail_shell,is,irp
97 . an, vx, vy, vz, thickt, dt, tmin, tmax,pthk,cvis,pun,zshift, thk ,
98 . ashear, ang, pos, hm, hf, hr, dn, dm,visc_int
99 INTEGER IHBE_D,IPLA_D,ISTR_D,ITHK_D,ISHEA_D,ISST_D,
100 . ISH3N_D, ISTRA_D,NPTS_D,IDRIL_D
101 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IDMAT_INTP,IDMAT_SUB
103 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
104 LOGICAL :: IS_AVAILABLE, IS_ENCRYPTED
117 is_available = .false.
118 is_encrypted = .false.
127 ihbe_d = defaults_shell%ishell
128 ish3n_d= defaults_shell%ish3n
129 isst_d = defaults_shell%ismstr
130 ipla_d = defaults_shell%iplas
131 ithk_d = defaults_shell%ithick
132 idril_d= defaults_shell%idrill
142 CALL hm_get_intv(
'Ishell',ihbe,is_available,lsubmodel)
144 CALL hm_get_intv(
'ISH3N',ish3n,is_available,lsubmodel)
145 CALL hm_get_intv(
'Idrill',isrot,is_available,lsubmodel)
146 CALL hm_get_intv(
'plyxfem',ishxfem,is_available,lsubmodel)
147 CALL hm_get_floatv(
'Z0',zshift,is_available,lsubmodel,unitab)
148 CALL hm_get_floatv(
'Vinterply',visc_int,is_available,lsubmodel,unitab)
158 CALL hm_get_floatv(
'P_Thick_Fail', pthk ,is_available, lsubmodel, unitab)
159 CALL hm_get_floatv(
'THICK' ,thk ,is_available, lsubmodel, unitab
160 CALL hm_get_floatv(
'AREA_SHEAR',ashear ,is_available, lsubmodel
161 CALL hm_get_intv (
'ITHICK' ,ithk ,is_available, lsubmodel)
162 CALL hm_get_intv (
'IPLAS' ,iplast ,is_available, lsubmodel)
165 CALL hm_get_floatv(
'V_X' ,vx ,is_available, lsubmodel, unitab)
166 CALL hm_get_floatv(
'V_Y' ,vy ,is_available, lsubmodel, unitab)
167 CALL hm_get_floatv(
'V_Z' ,vz ,is_available, lsubmodel, unitab)
168 CALL hm_get_intv(
'SKEW_CSID' ,idsk ,is_available, lsubmodel)
169 CALL hm_get_intv(
'Iorth' ,iorth ,is_available, lsubmodel)
170 CALL hm_get_intv(
'Ipos' ,ipos ,is_available, lsubmodel)
177 CALL hm_get_intv(
'laminateconfig' ,lamin, is_available, lsubmodel)
182 CALL hm_get_intv(
'sublaminateidlistmax' ,nsub, is_available, lsubmodel)
183 CALL hm_get_intv(
'interfacepairsize' ,nisub, is_available, lsubmodel)
189 stack_info%SUB(2*(is - 1) + 1) = idsub
190 stack_info%SUB(2*(is - 1) + 2) = nply_sub
197 stack_info%PID(nply + i) = ply_id
198 stack_info%ANG(nply + i) = ang
199 stack_info%POS(nply + i) = pos
200 stack_info%MID_IP(nply + i) = imid_pi
202 nply = nply + nply_sub
211 stack_info%ISUB(3*(inter - 1) + 1) = ipid1
212 stack_info%ISUB(3*(inter - 1) + 2) = ipid2
213 stack_info%ISUB(3*(inter - 1) + 3) = imid_pi
217 CALL hm_get_intv(
'plyidlistmax' ,nply ,is_available ,lsubmodel)
224 stack_info%PID(i) = ply_id
225 stack_info%ANG(i) = ang
226 stack_info%POS(i) = pos
227 stack_info%MID_IP(i) = imid_pi
237 IF (pthk == zero) pthk = one
238 pthk =
min(pthk, one)
239 pthk =
max(pthk,-one)
249 IF(ishxfem > 0) iplyxfem = 2
250 IF(ishxfem > 0 .AND. ishxfem /= 2 )
THEN
252 . msgtype=msgwarning,
253 . anmode=aninfo_blind_2,
257 ishxfem =
min(1,ishxfem)
259 IF(ihbe /= 12 .AND. ishxfem >0)
THEN
263 . msgtype=msgwarning,
264 . anmode=aninfo_blind_2,
268 IF(ihbe==0)ihbe=ihbe_d
270 IF (ihbe == 4 .AND. ish3n==0 .AND. ish3n_d == 1)
THEN
272 . msgtype=msgwarning,
273 . anmode=aninfo_blind_1,
277 IF (ihbe==22.OR.ihbe==23)
THEN
279 . msgtype=msgwarning,
280 . anmode=aninfo_blind_1,
285 IF(ish3n==0) ish3n = ish3n_d
287 IF (dm == zero) igeo(31) = 1
290 IF (cvis==zero) cvis = one
291 IF (dn == zero) dn = zep015
298 IF(ismstr==0)ismstr=isst_d
300 IF(hm == zero)hm = em01
301 IF(hf == zero)hf = em01
302 IF(hr == zero)hr = em02
304 IF(hm == zero)hm = em02
305 IF(hf == zero)hf = em02
306 IF(hr == zero)hr = em02
309 IF(ashear == zero) ashear=five_over_6
311 IF (ihbe>11.AND.ihbe<29)
THEN
322 IF(isrot==0)isrot=idril_d
323 IF(isrot==2) isrot = 0
326 IF (ismstr == 10 .AND. isrot > 0 .AND. idrot == 0 ) idrot = 1
327 IF(ismstr == 0)ismstr=2
328 IF(ismstr == 3. and.ihbe /= 0 .AND. ihbe /= 2)
THEN
331 . msgtype=msgwarning,
332 . anmode=aninfo_blind_2,
340 .
CALL subrotvect(vx,vy,vz,rtrans,sub_id,lsubmodel)
344 IF(geo(38) == zero) geo(38) = five_over_6
347 an=sqrt(vx*vx+vy*vy+vz*vz)
370 IF(idsk == iskn(4,j+1))
THEN
375 CALL fretitl2(titr,igeo(npropgi-ltitr+1),ltitr)
386 IF ((irp==22.OR.irp==25).AND.isk==0)
THEN
397 ipid0 = stack_info%PID(1)
399 IF (stack_info%PID(k) == ipid0)
THEN
400 CALL ancmsg(msgid=1584,msgtype=msgerror,anmode=aninfo_blind_2,
406 IF(ithk == 0)ithk=ithk_d
407 IF(ishear == 0)ishear=ishea_d
408 IF(iplast == 0)iplast=ipla_d
413 IF (dm == zero) igeo(31) = 1
456 ELSEIF(ihbe>=3.AND.ihbe<100.AND.ihbe/=4)
THEN
460 istrain=nint(geo(11))
463 ELSEIF(istrain==1)
THEN
465 ELSEIF(istrain==2)
THEN
472 ELSEIF(ishear==1)
THEN
474 ELSEIF(ishear==2)
THEN
479 CALL fretitl2(titr,igeo(npropgi-ltitr+1),ltitr)
482 WRITE(iout,1000)prop_id
484 & 5x,
'COMPOSITE LAYERED SHELL PROPERTY SET'/,
485 & 5x,
'------------------------------------'/,
486 & 5x,
'PROPERTY SET NUMBER . . . . . . . . . .=',i10/,
487 & 5x,
'CONFIDENTIAL DATA'//)
490 IF (ihbe > 11.AND.ihbe < 29)
THEN
491 WRITE(iout,2112)prop_id,istrain,geo(1),iss,ihbe,
494 . iplast,irep,geo(7),geo(8),geo(9),igeo(14)
496 WRITE(iout,2110)prop_id,istrain,geo(1),iss,ihbe,
498 . geo(13),geo(14),geo(15),geo(16),
499 . geo(38),pthk,fail_shell,ishear,ithk,iplast,irep,
500 . geo(7),geo(8),geo(9),igeo(14)
503 IF (ihbe > 11.AND.ihbe < 29)
THEN
504 WRITE(iout,2113)prop_id,istrain,geo(1),iss,ihbe,
506 . geo(16),geo(13),geo(38),pthk,fail_shell,ishear,ithk,
507 . iplast,irep,idsk,igeo(14)
509 WRITE(iout,2111)prop_id,istrain,geo(1),iss,ihbe,
511 . geo(13),geo(14),geo(15),geo(16),geo(38),pthk,
512 . fail_shell,ishear,ithk,iplast,irep,idsk,igeo(14)
515 IF(ishxfem > 0)
WRITE(iout, 2114)
529 ALLOCATE( idmat_intp(nply),idmat_sub(nisub))
539 imid = stack_info%MID_IP(k)
541 IF( imid == 0 .AND. ishxfem > 0)
THEN
542 CALL fretitl2(titr,igeo(npropgi-ltitr+1),ltitr)
545 . anmode=aninfo_blind_2,
551 IF(ipm(1,j) == imid)
THEN
552 stack_info%MID_IP(k) = j
557 CALL fretitl2(titr,igeo(npropgi-ltitr+1),ltitr)
560 . anmode=aninfo_blind_2,
565 stack_info%MID_IP(k) = 0
568 IF(igeo(44) > 0)
THEN
570 imid = stack_info%ISUB (3*(k-1) + 3)
572 IF( imid == 0 .AND. ishxfem > 0)
THEN
573 CALL fretitl2(titr,igeo(npropgi-ltitr+1),ltitr)
576 . anmode=aninfo_blind_2,
582 IF(ipm(1,j) == imid)
THEN
583 stack_info%ISUB (3*(k
588 CALL fretitl2(titr,igeo(npropgi-ltitr+1),ltitr)
591 . anmode=aninfo_blind_2,
596 stack_info%ISUB (3*(k-1) + 3) = 0
603 idsub = stack_info%SUB ( 2*(ii -
604 npt_sub = stack_info%SUB ( 2*(ii - 1) + 2)
606 IF(is_encrypted .EQV. .false. )
WRITE(iout,3000)idsub
609 IF(is_encrypted .EQV. .false. )
THEN
610 WRITE(iout,2121)k,stack_info%PID(m1),stack_info%ANG(m1),
612 IF(ishxfem > 0)
WRITE(iout,2122)idmat_intp(m1),geo(20)
614 stack_info%ANG(m1)=stack_info%ANG(m1)*pi/hundred80
620 ipid1 =stack_info%ISUB (3*(k - 1) + 1)
621 ipid2 =stack_info%ISUB (3*(k - 1) + 2)
622 imat =stack_info%ISUB (3*(k - 1) + 3)
623 IF( is_encrypted .EQV. .false. )
THEN
626 WRITE(iout,3200)ipid1,ipid2,imat
628 WRITE(iout,3300)ipid1,ipid2
634 IF(is_encrypted .EQV. .false. )
THEN
635 WRITE(iout,2121)n,stack_info%PID(n),stack_info%ANG(n),
637 IF(n < n1 .AND. ishxfem > 0)
WRITE(iout,2122)idmat_intp(n),geo(20)
639 stack_info%ANG(n)=stack_info%ANG(n)*pi/hundred80
643 DEALLOCATE (idmat_intp,idmat_sub)
647 & 5x,
'COMPOSITE STACK SHELL PROPERTY SET ',
648 &
'WITH VARIABLE THICKNESSES AND MATERIALS'/,
649 & 5x,
'PROPERTY SET NUMBER . . . . . . . . . .=',i10/,
651 & 5x,
'POST PROCESSING STRAIN FLAG . . . . . .=',i10/,
652 & 5x,
'SHELL THICKNESS . . . . . . . . . . . .=',1pg20.13/,
653 & 5x,
'SMALL STRAIN FLAG . . . . . . . . . . .=',i10/,
654 & 5x,
'SHELL FORMULATION FLAG. . . . . . . . .=',i10/,
655 & 5x,
'3NODE SHELL FORMULATION FLAG. . . . . .=',i10/,
656 & 5x,
'SHELL HOURGLASS MEMBRANE DAMPING. . . .=',1pg20.13/,
657 & 5x,
'SHELL HOURGLASS FLEXURAL DAMPING. . . .=',1pg20.13/,
658 & 5x,
'SHELL HOURGLASS ROTATIONAL DAMPING. . .=',1pg20.13/,
659 & 5x,
'SHELL MEMBRANE DAMPING. . . . . . . . .=',1pg20.13/,
660 & 5x,
'SHEAR AREA REDUCTION FACTOR . . . . . .=',1pg20.13/,
661 & 5x,
'ELEMENT DELETION PARAMETER. . . . . . .=',1pg20.13/,
662 & 5x,
' > 0.0 : FRACTION OF FAILED THICKNESS ',/,
663 & 5x,
' < 0.0 : FRACTION OF FAILED LAYERS/PLYS ',/,
664 & 5x,
'SHELL FAILURE FLAG. . . . . . . . . . .=',i10/,
665 & 5x,
'SHEAR FORMULATION FLAG. . . . . . . . .=',i10/,
666 & 5x,
'THICKNESS VARIATION FLAG. . . . . . . .=',i10/,
667 & 5x,
'PLASTICITY FORMULATION FLAG . . . . . .=',i10/,
668 & 5x,
'LOCAL ORTOTHROPY SYSTEM FLAG. . . . . .=',i10/,
669 & 5x,
'X COMPONENT OF DIR 1 OF ORTHOTROPY. . .=',1pg20.13/,
670 & 5x,
'Y COMPONENT OF DIR 1 OF ORTHOTROPY. . .=',1pg20.13/,
671 & 5x,
'Z COMPONENT OF DIR 1 OF ORTHOTROPY. . .=',1pg20.13/,
672 & 5x,
'REFERENCE DIRECTION FLAG IN SHELL PLANE=',i10/)
674 & 5x,
'COMPOSITE STACK SHELL PROPERTY SET ',
675 &
'WITH VARIABLE THICKNESSES AND MATERIALS'/,
676 & 5x,
'PROPERTY SET NUMBER . . . . . . . . . .=',i10/,
678 & 5x,
'POST PROCESSING STRAIN FLAG . . . . . .=',i10/,
679 & 5x,
'SHELL THICKNESS . . . . . . . . . . . .=',1pg20.13/,
680 & 5x,
'SMALL STRAIN FLAG . . . . . . . . . . .=',i10/,
681 & 5x,
'SHELL FORMULATION FLAG. . . . . . . . .=',i10/,
682 & 5x,
'3NODE SHELL FORMULATION FLAG. . . . . .=',i10/,
683 & 5x,
'SHELL HOURGLASS MEMBRANE DAMPING. . . .=',1pg20.13/,
684 & 5x,
'SHELL HOURGLASS FLEXURAL DAMPING. . . .=',1pg20.13/,
685 & 5x,
'SHELL HOURGLASS ROTATIONAL DAMPING. . .=',1pg20.13/,
686 & 5x,
'SHELL MEMBRANE DAMPING. . . . . . . . .=',1pg20.13/,
687 & 5x,
'SHEAR AREA REDUCTION FACTOR . . . . . .=',1pg20.13/,
688 & 5x,
'ELEMENT DELETION PARAMETER. . . . . . .=',1pg20.13/,
689 & 5x,
' > 0.0 : FRACTION OF FAILED THICKNESS ',/,
690 & 5x,
' < 0.0 : FRACTION OF FAILED LAYERS/PLYS ',/,
691 & 5x,
'SHELL FAILURE FLAG. . . . . . . . . . .=',i10/,
692 & 5x,
'SHEAR FORMULATION FLAG. . . . . . . . .=',i10/,
693 & 5x,
'THICKNESS VARIATION FLAG. . . . . . . .=',i10/,
694 & 5x,
'PLASTICITY FORMULATION FLAG . . . . . .=',i10/,
695 & 5x,
'LOCAL ORTOTHROPY SYSTEM FLAG. . . . . .='
696 & 5x,
'SKEW OF THE FIRST ORTHOTROPY DIRECTION.=',i10/,
697 & 5x,
'REFERENCE DIRECTION FLAG IN SHELL PLANE=',i10/)
699 & 5x,
'COMPOSITE STACK SHELL PROPERTY SET ',
700 &
'WITH VARIABLE THICKNESSES AND MATERIALS'/,
701 & 5x,
'PROPERTY SET NUMBER . . . . . . . . . .=',i10/,
703 & 5x,
'POST PROCESSING STRAIN FLAG . . . . . .=',i10/,
704 & 5x,
'SHELL THICKNESS . . . . . . . . . . . .=',1pg20.13/,
705 & 5x,
'SMALL STRAIN FLAG . . . . . . . . . . .=',i10/,
706 & 5x,
'SHELL FORMULATION FLAG. . . . . . . . .=',i10/,
707 & 5x,
'3NODE SHELL FORMULATION FLAG. . . . . .=',i10/,
708 & 5x,
'DRILLING D.O.F. FLAG . . . . . . . . .=',i10/,
709 & 5x,
'SHELL MEMBRANE DAMPING. . . . . . . . .=',1pg20.13/,
710 & 5x,
'SHELL NUMERICAL DAMPING . . . . . . . .=',1pg20.13/,
711 & 5x,
'SHEAR AREA REDUCTION FACTOR . . . . . .=',1pg20.13/,
712 & 5x,
'ELEMENT DELETION PARAMETER. . . . . . .=',1pg20.13/,
713 & 5x,
' > 0.0 : FRACTION OF FAILED THICKNESS ',/,
714 & 5x,
' < 0.0 : FRACTION OF FAILED LAYERS/PLYS ',/,
715 & 5x,
'SHELL FAILURE FLAG. . . . . . . . . . .=',i10/,
716 & 5x,
'SHEAR FORMULATION FLAG. . . . . . . . .=',i10/,
717 & 5x,
'THICKNESS VARIATION FLAG. . . . . . . .=',i10/,
718 & 5x,
'PLASTICITY FORMULATION FLAG . . . . . .=',i10/,
719 & 5x,
'LOCAL ORTOTHROPY SYSTEM FLAG. . . . . .=',i10/,
720 & 5x,
'X COMPONENT OF DIR 1 OF ORTHOTROPY. . .=',1pg20.13/,
721 & 5x,
'Y COMPONENT OF DIR 1 OF ORTHOTROPY. . .=',1pg20.13/,
722 & 5x,
'Z COMPONENT OF DIR 1 OF ORTHOTROPY. . .=',1pg20.13/,
723 & 5x,'reference direction flag in shell plane=
',I10/)
725 & 5X,'composite stack shell property set
',
726 & 'with variable thicknesses and materials
'/,
727 & 5X,'property set number . . . . . . . . . .=
',I10/,
728!! & 5X,'number of layers. . . . . . . . . . . .=
',I10/,
729 & 5X,'post processing strain flag . . . . . .=
',I10/,
730 & 5X,'shell thickness . . . . . . . . . . . .=
',1PG20.13/,
731 & 5X,'small strain flag . . . . . . . . . . .=
',I10/,
732 & 5X,'shell formulation flag. . . . . . . . .=
',I10/,
733 & 5X,'3node shell formulation flag. . . . . .=
',I10/,
734 & 5X,'drilling d.o.f. flag . . . . . . . . .=
',I10/,
735 & 5X,'shell membrane
damping. . . . . . . . .=
',1PG20.13/,
736 & 5X,'shell numerical
damping . . . . . . . .=
',1PG20.13/,
737 & 5X,'shear
area reduction factor . . . . . .=
',1PG20.13/,
738 & 5X,'element deletion
PARAMETER. . . . . . .=
',1PG20.13/,
739 & 5X,' > 0.0 : fraction of failed thickness
',/,
740 & 5X,' < 0.0 : fraction of failed layers/plys
',/,
741 & 5X,'shell failure flag. . . . . . . . . . .=
',I10/,
742 & 5X,'shear formulation flag. . . . . . . . .=
',I10/,
743 & 5X,'thickness variation flag. . . . . . . .=
',I10/,
744 & 5X,'plasticity formulation flag . . . . . .=
',I10/,
745 & 5X,'local ortothropy system flag. . . . . .=
',I10/,
746 & 5X,'skew of
the first orthotropy direction.=
',I10/,
747 & 5X,'reference direction flag in shell plane=
',I10/)
749 & 5X,'ply xfem shell composite formulation is activated
'/)
752 & 5X,' ply pid number . . . . . . . . .=
',I10/
753 & 5X,' angle(dir 1,proj(dir 1 / shell).=
',1PG20.13/,
754 & 5X,' position. . . . . . . . . . . . .=
',1PG20.13/)
756 & 5X,' inter-ply mid number . . . . . .=
',I10/
757 & 5X,' inter-ply
',1PG20.13/)
759 & 5X,' composite substack shell
id . . . . . . =
',I10/ )
761 & 5X,' INTERFACE number between-substack . . .:
',I10/ )
763 & 5X,' inter-ply_1 pid number . . . . . =
',I10/,
764 & 5X,' inter-ply_2 pid number . . . . . .=
',I10/,
765 & 5X,' inter-ply mid number . . . . . . =
',I10/)
767 & 5X,' inter-ply_1 pid number . . . . . =
',I10/,
768 & 5X,' inter-ply_2 pid number . . . . . .=
',I10/)