43 . UNITAB ,RTRANS ,LSUBMODEL,SUB_ID ,IDTITL ,
44 . PROP_TAG ,IG ,IGTYP ,DEFAULTS_SHELL )
57#include "implicit_f.inc"
67#include "tablen_c.inc"
71 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
72 INTEGER IGEO(NPROPGI),IPM(NPROPMI,*),SUB_ID,IG,IGTYP
74 . geo(npropg), pm(npropm,*),rtrans(ntransf,*)
78 CHARACTER(LEN=NCHARTITLE)::IDTITL
79 TYPE(
prop_tag_) ,
DIMENSION(0:MAXPROP) :: PROP_TAG
80 TYPE(shell_defaults_),
INTENT(IN) :: DEFAULTS_SHELL
85 INTEGER NUML(100),NLY,NLYMAX,N1,N,J,IERREL,M1,M2,M3,M4,
86 . k, n2, n3, istrain, mlawly1,ishear,iplast,ihbe,ithk,irep,
87 . idsk, isk, ipang, ipthk, ippos, ipos, ipmat, ipweight,iskn(liskn,*),
88 . iss, pid1,ismstr,isrot,ibid,igmat,ihbeoutp,ihbe_old,irp
89 my_real an, vx, vy, vz, thickt, dt, tmin, tmax,weight,pthk,cvis,pun,
90 . phi_i,thk_i,z_i,wf_i,zshift
92 INTEGER ID,ID1,,IPPLY,NLY_TMP,L,M
93 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
94 INTEGER IHBE_D,IPLA_D,ISTR_D,ITHK_D,ISHEA_D,ISST_D,
95 . ish3n_d, istra_d,npts_d,idril_d
96 LOGICAL IS_AVAILABLE, IS_ENCRYPTED
111 is_encrypted = .false.
112 is_available = .false.
114 ihbe_d = defaults_shell%ishell
115 ish3n_d= defaults_shell%ish3n
116 isst_d = defaults_shell%ismstr
117 ipla_d = defaults_shell%iplas
118 ithk_d = defaults_shell%ithick
119 idril_d= defaults_shell%idrill
168 IF(ipply == 0) ipply = 1
169 nly_tmp = nly_tmp + ipply
175 CALL hm_get_intv(
'Ishell',ihbe,is_available,lsubmodel)
176 CALL hm_get_intv(
'Ismstr',ismstr,is_available,lsubmodel)
177 CALL hm_get_intv(
'ISH3N',ish3n,is_available,lsubmodel)
178 CALL hm_get_intv(
'Idrill',isrot,is_available,lsubmodel)
181 CALL hm_get_intv(
'ITHICK',ithk,is_available,lsubmodel)
182 CALL hm_get_intv(
'IPLAS',iplast,is_available,lsubmodel)
183 CALL hm_get_intv(
'SKEW_CSID',idsk,is_available,lsubmodel)
184 CALL hm_get_intv(
'Iorth',irep,is_available,lsubmodel)
185 CALL hm_get_intv(
'Ipos',ipos,is_available,lsubmodel)
190 CALL hm_get_floatv(
'P_Thick_Fail',pthk,is_available,lsubmodel,unitab)
191 CALL hm_get_floatv(
'Hm',geo(13),is_available,lsubmodel,unitab)
192 CALL hm_get_floatv(
'Hf',geo(14),is_available,lsubmodel,unitab)
194 CALL hm_get_floatv(
'Dm',geo(16),is_available,lsubmodel,unitab)
195 CALL hm_get_floatv(
'Dn',geo(17),is_available,lsubmodel,unitab)
196 CALL hm_get_floatv(
'THICK',geo(1),is_available,lsubmodel,unitab)
197 CALL hm_get_floatv(
'AREA_SHEAR',geo(38),is_available,lsubmodel,unitab)
203 IF (pthk == zero) pthk = one-em06
204 pthk =
min(pthk, one)
205 pthk =
max(pthk,-one)
208 IF(ihbe==0)ihbe=ihbe_d
210 IF (ihbe == 4 .AND. ish3n==0 .AND. ish3n_d == 1)
THEN
212 . msgtype=msgwarning,
213 . anmode=aninfo_blind_1,
217 IF (ihbe==22.OR.ihbe==23)
THEN
219 . msgtype=msgwarning,
220 . anmode=aninfo_blind_1,
225 IF(ish3n==0) ish3n = ish3n_d
227 IF (geo(16) == zero) igeo(31) = 1
230 IF (cvis==zero) cvis=one
231 IF (geo(17)==zero) geo(17)=zep015
234 IF(ismstr==0)ismstr=isst_d
235 IF (isst_d == -2) ismstr = -1
237 IF(geo(13)==zero)geo(13)=em01
238 IF(geo(14)==zero)geo(14)=em01
239 IF(geo(15)==zero)geo(15)=em02
241 IF(geo(13)==zero)geo(13)=em02
242 IF(geo(14)==zero)geo(14)=em02
243 IF(geo(15)==zero)geo(15)=em02
245 IF(isrot==0)isrot=idril_d
246 IF(isrot==2) isrot = 0
249 IF (ismstr==10.AND.isrot>0.AND.idrot==0) idrot = 1
251 IF(ismstr==0) ismstr=2
252 IF(ismstr==3.AND.ihbe/=0.AND.ihbe/=2)
THEN
256 . anmode=aninfo_blind_2,
268 IF(geo(13)==zero)geo(13)=em01
269 IF(geo(14)==zero)geo(14)=em01
270 IF(geo(15)==zero)geo(15)=em02
272 IF(geo(13)==zero)geo(13)=em02
273 IF(geo(14)==zero)geo(14)=em02
274 IF(geo(15)==zero)geo(15)=em02
276 IF (ihbe>11.AND.ihbe<29)
THEN
282 IF(geo(38) == zero) geo(38)=five_over_6
283 IF(nly == -1)nly=npts_d
285 IF(nly == 1) geo(38)= zero
286 an=sqrt(vx*vx+vy*vy+vz*vz)
309 .
CALL subrotvect(vx,vy,vz,rtrans,sub_id,lsubmodel)
315 IF(idsk == iskn(4,j+1))
THEN
320 CALL fretitl2(titr,igeo(npropgi-ltitr+1),ltitr)
331 IF ((irp==22.OR.irp==25).AND.isk==0)
THEN
345 IF(ITHK == 0)ITHK=ITHK_D
346 IF(ITHK_D==-2)ITHK=-1
347 IF(ISHEAR == 0)ISHEAR=ISHEA_D
348 IF(IPLAST == 0)IPLAST=IPLA_D
349 IF(IPLA_D==-2) IPLAST=-1
365 & 5X,'composite layered shell property set
'/,
366 & 5X,'------------------------------------
'/,
367 & 5X,'property set number . . . . . . . . . .=
',I10/,
368 & 5X,'confidential data
'//)
371.AND.
IF (IHBE>11IHBE<29) THEN
372 WRITE(IOUT,2112)IG,NLY,ISTRAIN,GEO(1),ISS,IHBE,
374 . GEO(16),GEO(13),GEO(38),GEO(42),ISHEAR,ITHK,
375 . IPLAST,IREP,GEO(7),GEO(8),GEO(9),IGEO(14)
377 WRITE(IOUT,2110)IG,NLY,ISTRAIN,GEO(1),ISS,IHBE,
379 . GEO(13),GEO(14),GEO(15),GEO(16),
380 . GEO(38),GEO(42),ISHEAR,ITHK,IPLAST,IREP,
381 . GEO(7),GEO(8),GEO(9),IGEO(14)
384.AND.
IF (IHBE>11IHBE<29) THEN
385 WRITE(IOUT,2113)IG,NLY,ISTRAIN,GEO(1),ISS,IHBE,
387 . GEO(16),GEO(13),GEO(38),GEO(42),ISHEAR,ITHK,
388 . IPLAST,IREP,IDSK,IGEO(14)
390 WRITE(IOUT,2111)IG,NLY,ISTRAIN,GEO(1),ISS,IHBE,
392 . GEO(13),GEO(14),GEO(15),GEO(16),GEO(38),
393 . GEO(42),ISHEAR,ITHK,IPLAST,IREP,IDSK,IGEO(14)
399 CALL FRETITL2(TITR,IGEO(NPROPGI-LTITR+1),LTITR)
400 CALL ANCMSG(MSGID=27,
402 . ANMODE=ANINFO_BLIND_1,
407 CALL FRETITL2(TITR,IGEO(NPROPGI-LTITR+1),LTITR)
408 CALL ANCMSG(MSGID=28,
410 . ANMODE=ANINFO_BLIND_1,
415 IF (NLY_TMP>NLYMAX) THEN
416 CALL FRETITL2(TITR,IGEO(NPROPGI-LTITR+1),LTITR)
417 CALL ANCMSG(MSGID=28,
419 . ANMODE=ANINFO_BLIND_1,
425 N1 = MIN0(NLY,NLYMAX)
426 GEO(6)= MAX(N1,NLY_TMP)+EM01
427 IGEO(4) = MAX(N1,NLY_TMP)
436 CALL HM_GET_INT_ARRAY_INDEX('ipply
',IPPLY,K,IS_AVAILABLE,LSUBMODEL)
438 CALL HM_GET_FLOAT_ARRAY_INDEX('prop_phi
',PHI_I,K,IS_AVAILABLE,LSUBMODEL,UNITAB)
439 CALL HM_GET_FLOAT_ARRAY_INDEX('prop_thick
',THK_I,K,IS_AVAILABLE,LSUBMODEL,UNITAB)
440 CALL HM_GET_FLOAT_ARRAY_INDEX('prop_zi
',Z_I,K,IS_AVAILABLE,LSUBMODEL,UNITAB)
441 CALL HM_GET_FLOAT_ARRAY_INDEX('prop_wfi
',WEIGHT,K,IS_AVAILABLE,LSUBMODEL,UNITAB)
442 IF (IPPLY == 0) IPPLY = 1
446 CALL HM_GET_INT_ARRAY_INDEX('prop_mi
',NUML(M),K,IS_AVAILABLE,LSUBMODEL)
448 GEO(IPTHK+M) = THK_I/IPPLY
450 IF (WEIGHT == ZERO) WEIGHT = ONE
451 GEO(IPWEIGHT+M)= WEIGHT
462 DT = HALF*GEO(IPTHK+N)
463 TMIN = MIN(TMIN,GEO(IPPOS+N)-DT)
464 TMAX = MAX(TMAX,GEO(IPPOS+N)+DT)
467 ZSHIFT = HALF*(TMAX + TMIN)
469 IF (DEFAULTS_SHELL%IOFFSET==3) DT = ZSHIFT
472 GEO(IPTHK+N)=GEO(IPTHK+N) / MAX(THICKT,EM20)
473 GEO(IPPOS+N)=(GEO(IPPOS+N)-DT) / MAX(THICKT,EM20)
478 THICKT=THICKT+GEO(IPTHK+N)
481 GEO(IPTHK+N)=GEO(IPTHK+N) / MAX(THICKT,EM20)
484 GEO(IPPOS+1) = -HALF + HALF*GEO(IPTHK+1)
486 GEO(IPPOS+N) = GEO(IPPOS+N-1)
487 . + HALF*(GEO(IPTHK+N)+GEO(IPTHK+N-1))
493 IERREL=NINT(ABS((THICKT-GEO(1))/GEO(1))*EP02)
496 CALL FRETITL2(TITR,IGEO(NPROPGI-LTITR+1),LTITR)
497 CALL ANCMSG(MSGID=29,
498 . MSGTYPE=MSGWARNING,
499 . ANMODE=ANINFO_BLIND_1,
508 IF (IPM(1,J) == NUML(1)) THEN
510 MLAWLY1= NINT(PM(19,J))
511 IF(MLAWLY1 == 25) GO TO 250
512 IF(MLAWLY1 == 27) GO TO 250
513 IF(MLAWLY1 == 15) GO TO 250
514 IF(MLAWLY1>=29) GO TO 250
515 CALL FRETITL2(TITR,IGEO(NPROPGI-LTITR+1),LTITR)
516 CALL FRETITL2(TITR1,IPM(NPROPMI-LTITR+1,J),LTITR)
517 CALL ANCMSG(MSGID=30,
528 CALL FRETITL2(TITR1,IGEO(NPROPGI-LTITR+1),LTITR)
529 CALL ANCMSG(MSGID=31,
540 IF(IPM(1,J) == NUML(N)) THEN
542 IF(NINT(PM(19,J)) == MLAWLY1) GO TO 350
543 WRITE(LAW_ID,'(i2)
')MLAWLY1
544 IF (MLAWLY1==99) LAW_ID='user
'
545 CALL FRETITL2(TITR,IGEO(NPROPGI-LTITR+1),LTITR)
546 CALL FRETITL2(TITR1,IPM(NPROPMI-LTITR+1,J),LTITR)
547 CALL ANCMSG(MSGID=334,
549 . ANMODE=ANINFO_BLIND_1,
558 CALL FRETITL2(TITR,IGEO(NPROPGI-LTITR+1),LTITR)
559 CALL ANCMSG(MSGID=31,
573.NOT.
IF( IS_ENCRYPTED)THEN
574 WRITE(IOUT,2121)N,GEO(M1),GEO(M2)*GEO(1),GEO(M3)*GEO(1),
577 GEO(M1)=GEO(M1)*PI/HUNDRED80
589.AND..AND.
ELSEIF(IHBE>=3IHBE<100IHBE/=4)THEN
597 ELSEIF(ISHEAR==1)THEN
599 ELSEIF(ISHEAR==2)THEN
604 PROP_TAG(IGTYP)%G_SIG = 0
605 PROP_TAG(IGTYP)%G_FOR = 5
606 PROP_TAG(IGTYP)%G_MOM = 3
607 PROP_TAG(IGTYP)%G_THK = 1
608 PROP_TAG(IGTYP)%G_EINT= 2
609 PROP_TAG(IGTYP)%G_EINS= 0
610 PROP_TAG(IGTYP)%L_SIG = 5
611 IF (IGTYP == 17) PROP_TAG(IGTYP)%L_SIGPLY = 3
612 PROP_TAG(IGTYP)%L_THK = 0
613 PROP_TAG(IGTYP)%L_EINT= 2
614 PROP_TAG(IGTYP)%L_EINS= 0
615 PROP_TAG(IGTYP)%G_VOL = 0
616 PROP_TAG(IGTYP)%L_VOL = 0
617 PROP_TAG(IGTYP)%LY_DMG = 2
619 PROP_TAG(IGTYP)%LY_GAMA = 6
620 PROP_TAG(IGTYP)%LY_DIRA = 2
622 PROP_TAG(IGTYP)%LY_PLAPT = 1
623 PROP_TAG(IGTYP)%LY_SIGPT = 5
624 PROP_TAG(IGTYP)%G_FORPG = 5
625 PROP_TAG(IGTYP)%G_MOMPG = 3
626 PROP_TAG(IGTYP)%G_STRPG = 8
628 . PROP_TAG(IGTYP)%LY_DMG = 2
633.AND.
IF(GEO( 3)/=ZEROIGEO( 5)== 0)IGEO( 5)=NINT(GEO( 3))
634.AND.
IF(GEO(39)/=ZEROIGEO( 9)== 0)IGEO( 9)=NINT(GEO(39))
635.AND.
IF(GEO(171)/=ZEROIGEO(10)== 0)
636 . IGEO(10)=NINT(GEO(171))
641 & 5X,'composite layered shell property set
',
642 & 'with variable thicknesses and materials
'/,
643 & 5X,'property set number . . . . . . . . . .=
',I10/,
644 & 5X,'number of layers. . . . . . . . . . . .=
',I10/,
645 & 5X,'post processing strain flag . . . . . .=
',I10/,
646 & 5X,'shell thickness . . . . . . . . . . . .=
',1PG20.13/,
647 & 5X,'small strain flag . . . . . . . . . . .=
',I10/,
648 & 5X,'shell formulation flag. . . . . . . . .=
',I10/,
649 & 5X,'3node shell formulation flag. . . . . .=
',I10/,
650 & 5X,'shell hourglass membrane
damping. . . .=
',1PG20.13/,
651 & 5X,'shell hourglass flexural
damping. . . .=
',1PG20.13/,
652 & 5X,'shell hourglass rotational
damping. . .=
',1PG20.13/,
653 & 5X,'shell membrane
damping. . . . . . . . .=
',1PG20.13/,
654 & 5X,'shear
area reduction factor . . . . . .=
',1PG20.13/,
655 & 5X,'element deletion
PARAMETER. . . . . . .=
',1PG20.13/,
656 & 5X,' > 0.0 : fraction of failed thickness
',/,
657 & 5X,' < 0.0 : fraction of failed layers
',/,
658 & 5X,'shear formulation flag. . . . . . . . .=
',I10/,
659 & 5X,'thickness variation flag. . . . . . . .=
',I10/,
660 & 5X,'plasticity formulation flag . . . . . .=
',I10/,
661 & 5X,'local ortothropy system flag. . . . . .=
',I10/,
662 & 5X,'x component of dir 1 of orthotropy. . .=
',1PG20.13/,
663 & 5X,'y component of dir 1 of orthotropy. . .=
',1PG20.13/,
664 & 5X,'z component of dir 1 of orthotropy. . .=
',1PG20.13/,
665 & 5X,'reference direction flag in shell plane=
',I10/)
667 & 5X,'composite layered shell property set
',
668 & 'with variable thicknesses and materials
'/,
669 & 5X,'property set number . . . . . . . . . .=
',I10/,
670 & 5X,'number of layers. . . . . . . . . . . .=
',I10/,
671 & 5X,'post processing strain flag . . . . . .=
',I10/,
672 & 5X,'shell thickness . . . . . . . . . . . .=
',1PG20.13/,
673 & 5X,'small strain flag . . . . . . . . . . .=
',I10/,
674 & 5X,'shell formulation flag. . . . . . . . .=
',I10/,
675 & 5X,'3node shell formulation flag. . . . . .=
',I10/,
676 & 5X,'shell hourglass membrane
damping. . . .=
',1PG20.13/,
677 & 5X,'shell hourglass flexural
damping. . . .=
',1PG20.13/,
678 & 5X,'shell hourglass rotational
damping. . .=
',1PG20.13/,
679 & 5X,'shell membrane
damping. . . . . . . . .=
',1PG20.13/,
680 & 5X,'shear
area reduction factor . . . . . .=
',1PG20.13/,
681 & 5X,'element deletion
PARAMETER. . . . . . .=
',1PG20.13/,
682 & 5X,' > 0.0 : fraction of failed thickness
',/,
683 & 5X,' < 0.0 : fraction of failed layers
',/,
684 & 5X,'shear formulation flag. . . . . . . . .=
',I10/,
685 & 5X,'thickness variation flag. . . . . . . .=
',I10/,
686 & 5X,'plasticity formulation flag . . . . . .=
',I10/,
687 & 5X,'local ortothropy system flag. . . . . .=
',I10/,
688 & 5X,'skew of
the first orthotropy direction.=
',I10/,
689 & 5X,'reference direction flag in shell plane=
',I10/)
691 & 5X,'composite layered shell property set
',
692 & 'with variable thicknesses and materials
'/,
693 & 5X,'property set number . . . . . . . . . .=
',I10/,
694 & 5X,'number of layers. . . . . . . . . . . .=
',I10/,
695 & 5X,'post processing strain flag . . . . . .=
',I10/,
696 & 5X,'shell thickness . . . . . . . . . . . .=
',1PG20.13/,
697 & 5X,'small strain flag . . . . . . . . . . .=
',I10/,
698 & 5X,'shell formulation flag. . . . . . . . .=
',I10/,
699 & 5X,'3node shell formulation flag. . . . . .=
',I10/,
700 & 5X,'drilling d.o.f. flag . . . . . . . . .=
',I10/,
701 & 5X,'shell membrane
damping. . . . . . . . .=
',1PG20.13/,
702 & 5X,'shell numerical
damping . . . . . . . .=
',1PG20.13/,
703 & 5X,'shear
area reduction factor . . . . . .=
',1PG20.13/,
704 & 5X,'element deletion
PARAMETER. . . . . . .=
',1PG20.13/,
705 & 5X,' > 0.0 : fraction of failed thickness
',/,
706 & 5X,' < 0.0 : fraction of failed layers
',/,
707 & 5X,'shear formulation flag. . . . . . . . .=
',I10/,
708 & 5X,'thickness variation flag. . . . . . . .=
',I10/,
709 & 5X,'plasticity formulation flag . . . . . .=
',I10/,
710 & 5X,'local ortothropy system flag. . . . . .=
',I10/,
711 & 5X,'x component of dir 1 of orthotropy. . .=
',1PG20.13/,
712 & 5X,'y component of dir 1 of orthotropy. . .=
',1PG20.13/,
713 & 5X,'z component of dir 1 of orthotropy. . .=
',1PG20.13/,
714 & 5X,'reference direction flag in shell plane=
',I10/)
716 & 5X,'composite layered shell property set
',
717 & 'with variable thicknesses and materials
'/,
718 & 5X,'property set number . . . . . . . . . .=
',I10/,
719 & 5X,'number of layers. . . . . . . . . . . .=
',I10/,
720 & 5X,'post processing strain flag . . . . . .=
',I10/,
721 & 5X,'shell thickness . . . . . . . . . . . .=
',1PG20.13/,
722 & 5X,'small strain flag . . . . . . . . . . .=
',I10/,
723 & 5X,'shell formulation flag. . . . . . . . .=
',I10/,
724 & 5X,'3node shell formulation flag. . . . . .=
',I10/,
725 & 5X,'drilling d.o.f. flag . . . . . . . . .=
',I10/,
726 & 5X,'shell membrane
damping. . . . . . . . .=
',1PG20.13/,
727 & 5X,'shell numerical
damping . . . . . . . .=
',1PG20.13/,
728 & 5X,'shear
area reduction factor . . . . . .=
',1PG20.13/,
729 & 5X,'element deletion
PARAMETER. . . . . . .=
',1PG20.13/,
730 & 5X,' > 0.0 : fraction of failed thickness
',/,
731 & 5X,' < 0.0 : fraction of failed layers
',/,
732 & 5X,'shear formulation flag. . . . . . . . .=
',I10/,
733 & 5X,'thickness variation flag. . . . . . . .=
',I10/,
734 & 5X,'plasticity formulation flag . . . . . .=
',I10/,
735 & 5X,'local ortothropy system flag. . . . . .=
',I10/,
736 & 5X,'skew of
the first orthotropy direction.=
',I10/,
737 & 5X,'reference direction flag in shell plane=
',I10/)
740 & 5X,' angle(dir 1,proj(dir 1 / shell).=
',1PG20.13/,
741 & 5X,' thickness . . . . . . . . . . . .=
',1PG20.13/,
742 & 5X,' position. . . . . . . . . . . . .=
',1PG20.13/,
743 & 5X,' layer failure weight factor . . .=
',1PG20.13/,
744 & 5X,' material number . . . . . . . . .=
',I10/)