43 . UNITAB ,RTRANS ,LSUBMODEL,SUB_ID ,PROP_TAG ,
44 . IGTYP ,IG ,IDTITL ,DEFAULTS_SHELL )
57#include "implicit_f.inc"
66#include "tablen_c.inc"
70 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
71 INTEGER IGEO(NPROPGI),IPM(NPROPMI,*),SUB_ID,IGTYP,IG
74 . geo(npropg), pm(npropm,*)
78 CHARACTER(LEN=NCHARTITLE)::IDTITL
79 TYPE(
prop_tag_) ,
DIMENSION(0:MAXPROP) :: PROP_TAG
80 TYPE(shell_defaults_),
INTENT(IN) :: DEFAULTS_SHELL
86 INTEGER NUML(100), NLY, NLYMAX, N, J, IERREL, M1, M2, M3,
87 . m4, k, n2, n3, istrain, mlawly1,ishear,ihbe,ithk,irep,
88 . idsk, isk, ipang, ipphi, ipthk, ippos, ipos, ipmat, pid1,
89 . iskn(liskn,*),ismstr,isrot,ihbeoutp,isorth,ihbe_old,ipweight
92 . an, vx, vy, vz, thickt, dt, tmin, tmax, ashear,pthk,cvis,pun,
96 CHARACTER(LEN=NCHARTITLE) :: TITR,
97 INTEGER IHBE_D,IPLA_D,ISTR_D,ITHK_D,ISHEA_D,ISST_D,
98 . ish3n_d, istra_d,npts_d,idril_d
99 LOGICAL IS_AVAILABLE, IS_ENCRYPTED
106 is_encrypted = .false.
107 is_available = .false.
121 ihbe_d = defaults_shell%ishell
122 ish3n_d= defaults_shell%ish3n
123 isst_d = defaults_shell%ismstr
124 ipla_d = defaults_shell%iplas
125 ithk_d = defaults_shell%ithick
126 idril_d= defaults_shell%idrill
151 CALL hm_get_intv(
'ISHELL',ihbe,is_available,lsubmodel)
152 CALL hm_get_intv(
'Ismstr',ismstr,is_available,lsubmodel)
153 CALL hm_get_intv(
'ISH3N',ish3n,is_available,lsubmodel)
157 CALL hm_get_intv(
'ITHICK',ithk,is_available,lsubmodel)
159 CALL hm_get_intv(
'SKEW_CSID',idsk,is_available,lsubmodel)
160 CALL hm_get_intv(
'Ipos',ipos,is_available,lsubmodel)
169 CALL hm_get_floatv(
'P_Thick_Fail',pthk,is_available,lsubmodel,unitab)
171 CALL hm_get_floatv(
'Hm',geo(13),is_available,lsubmodel,unitab)
172 CALL hm_get_floatv(
'Hf',geo(14),is_available,lsubmodel,unitab)
173 CALL hm_get_floatv(
'Hr',geo(15),is_available,lsubmodel,unitab)
174 CALL hm_get_floatv(
'Dm',geo(16),is_available,lsubmodel,unitab)
175 CALL hm_get_floatv(
'Dn',geo(17),is_available,lsubmodel,unitab)
177 CALL hm_get_floatv('thick
',GEO(1),IS_AVAILABLE,LSUBMODEL,UNITAB)
178 CALL HM_GET_FLOATV('area_shear
',ASHEAR,IS_AVAILABLE,LSUBMODEL,UNITAB)
180 CALL HM_GET_FLOATV('vector_x
',VX,IS_AVAILABLE,LSUBMODEL,UNITAB)
181 CALL HM_GET_FLOATV('vector_y
',VY,IS_AVAILABLE,LSUBMODEL,UNITAB)
182 CALL HM_GET_FLOATV('vector_z
',VZ,IS_AVAILABLE,LSUBMODEL,UNITAB)
185 CALL HM_GET_FLOAT_ARRAY_INDEX('prop_phi
',GEO(IPANG+K),K,IS_AVAILABLE,LSUBMODEL,UNITAB)
186 CALL HM_GET_FLOAT_ARRAY_INDEX('alpha_arr
',GEO(IPPHI+K),K,IS_AVAILABLE,LSUBMODEL,UNITAB)
187 CALL HM_GET_FLOAT_ARRAY_INDEX('prop_thick
',GEO(IPTHK+K),K,IS_AVAILABLE,LSUBMODEL,UNITAB)
188 CALL HM_GET_FLOAT_ARRAY_INDEX('prop_zi
',GEO(IPPOS+K),K,IS_AVAILABLE,LSUBMODEL,UNITAB)
189 IF (GEO(IPPHI+K) == ZERO) GEO(IPPHI+K) = NINETY
196 . CALL SUBROTVECT(VX,VY,VZ,RTRANS,SUB_ID,LSUBMODEL)
198 IF (PTHK == ZERO) PTHK = ONE-EM06
199 PTHK = MIN(PTHK, ONE)
200 PTHK = MAX(PTHK,-ONE)
206 IF(IHBE==0)IHBE=IHBE_D
208.AND..AND.
IF (IHBE == 4 ISH3N==0 ISH3N_D == 1) THEN
209 CALL ANCMSG(MSGID=680,
210 . MSGTYPE=MSGWARNING,
211 . ANMODE=ANINFO_BLIND_1,
215.OR.
IF (IHBE==22IHBE==23) THEN
216 CALL ANCMSG(MSGID=539,
217 . MSGTYPE=MSGWARNING,
218 . ANMODE=ANINFO_BLIND_1,
223 IF(ISH3N==0) ISH3N = ISH3N_D
225 IF (GEO(16) == ZERO) IGEO(31) = 1
228 IF (GEO(17)==ZERO) GEO(17)=ZEP015
231 IF(ISMSTR==0)ISMSTR=ISST_D
232 IF (ISST_D == -2) ISMSTR = -1
234 IF(GEO(13)==ZERO)GEO(13)=EM01
235 IF(GEO(14)==ZERO)GEO(14)=EM01
236 IF(GEO(15)==ZERO)GEO(15)=EM02
238 IF(GEO(13)==ZERO)GEO(13)=EM02
239 IF(GEO(14)==ZERO)GEO(14)=EM02
240 IF(GEO(15)==ZERO)GEO(15)=EM02
256 IF (ISMSTR == 0) ISMSTR=4
257.AND..AND.
IF (ISMSTR==3 IHBE/=0 IHBE/=2) THEN
259 CALL ANCMSG(MSGID=319,
260 . MSGTYPE=MSGWARNING,
261 . ANMODE=ANINFO_BLIND_2,
268 IF (ASHEAR == ZERO) ASHEAR=FIVE_OVER_6
269 IF (NLY == -1) NLY = NPTS_D
270 IF (NLY == 0) NLY = 1
271 IF (NLY == 1) ASHEAR = ZERO
272 AN = SQRT(VX*VX+VY*VY+VZ*VZ)
278 CALL ANCMSG(MSGID=1922,
294 DO J=0,NUMSKW+MIN(IUN,NSPCOND)*NUMSPH+NSUBMOD
295 IF(IDSK == ISKN(4,J+1)) THEN
300 CALL ANCMSG(MSGID=184,
310.AND.
IF (IRP==22ISK==0) THEN
311 CALL ANCMSG(MSGID=1923,
325 IF(ITHK == 0)ITHK=ITHK_D
326 IF(ITHK_D==-2)ITHK=-1
327 IF(ISHEAR == 0)ISHEAR=ISHEA_D
330 IHBE = NINT(GEO(171))
339 & 5X,'composite fabric layered shell property set
'/,
340 & 5X,'------------------------------------
'/,
341 & 5X,'property set number . . . . . . . . . .=
',I10/,
342 & 5X,'confidential data
'//)
345.AND.
IF (IHBE > 11 IHBE < 29) THEN
346 WRITE(IOUT,2010)IG,NLY,ISTRAIN,GEO(1),IGEO(5),IHBE,
348 . GEO(16),GEO(13),GEO(38),GEO(42),ISHEAR,ITHK,
349 . GEO(7),GEO(8),GEO(9),IGEO(14)
351 WRITE(IOUT,1010)IG,NLY,ISTRAIN,GEO(1),IGEO(5),IHBE,
353 . GEO(13),GEO(14),GEO(15),GEO(16),
354 . ASHEAR,GEO(42),ISHEAR,ITHK,
355 . GEO(7),GEO(8),GEO(9),IGEO(14)
358.AND.
IF (IHBE > 11 IHBE < 29) THEN
359 WRITE(IOUT,2011)IG,NLY,ISTRAIN,GEO(1),IGEO(5),IHBE,
361 . GEO(13),ASHEAR,GEO(42),ISHEAR,ITHK,IDSK,IGEO(14)
363 WRITE(IOUT,1011)IG,NLY,ISTRAIN,GEO(1),IGEO(5),IHBE,
365 . GEO(13),GEO(14),GEO(15),GEO(16),
366 . ASHEAR,GEO(42),ISHEAR,ITHK,IDSK,IGEO(14)
371 IF (NLY > NLYMAX) THEN
372 CALL FRETITL2(TITR,IGEO(NPROPGI-LTITR+1),LTITR)
373 CALL ANCMSG(MSGID=28,
375 . ANMODE=ANINFO_BLIND_1,
380 NLY = MIN(NLY,NLYMAX)
390 DT = HALF*GEO(IPTHK+N)
391 TMIN = MIN(TMIN,GEO(IPPOS+N)-DT)
392 TMAX = MAX(TMAX,GEO(IPPOS+N)+DT)
395 ZSHIFT = HALF*(TMAX + TMIN)
398 GEO(IPTHK+N)=GEO(IPTHK+N) / MAX(THICKT,EM20)
399 GEO(IPPOS+N)=GEO(IPPOS+N) / MAX(THICKT,EM20)
404 THICKT=THICKT+GEO(IPTHK+N)
407 GEO(IPTHK+N)=GEO(IPTHK+N) / MAX(THICKT,EM20)
410 GEO(IPPOS+1) = -HALF + HALF*GEO(IPTHK+1)
412 GEO(IPPOS+N) = GEO(IPPOS+N-1)
413 . + HALF*(GEO(IPTHK+N)+GEO(IPTHK+N-1))
419 IERREL=NINT(ABS((THICKT-GEO(1))/GEO(1))*EP02)
420 IF(IERREL > TEN) THEN
422 CALL FRETITL2(TITR,IGEO(NPROPGI-LTITR+1),LTITR)
423 CALL ANCMSG(MSGID=29,
424 . MSGTYPE=MSGWARNING,
425 . ANMODE=ANINFO_BLIND_1,
434 IF (IPM(1,J) == NUML(1)) THEN
436 MLAWLY1= NINT(PM(19,J))
437.OR..OR.
IF(MLAWLY1 == 58 MLAWLY1 == 158 MLAWLY1 == 98) GO TO 250
438.AND.
IF(MLAWLY1>=29MLAWLY1<=31) GO TO 250
439 IF(MLAWLY1==99) GO TO 250
440 CALL FRETITL2(TITR,IGEO(NPROPGI-LTITR+1),LTITR)
441 CALL FRETITL2(TITR1,IPM(NPROPMI-LTITR+1,J),LTITR)
442 CALL ANCMSG(MSGID=1201,
453 CALL FRETITL2(TITR,IGEO(NPROPGI-LTITR+1),LTITR)
454 CALL ANCMSG(MSGID=31,
465 IF(IPM(1,J) == NUML(N)) THEN
467 IF(NINT(PM(19,J)) == MLAWLY1) GO TO 350
468 WRITE(LAW_ID,'(i2)
')MLAWLY1
469 IF (MLAWLY1==99) LAW_ID='user
'
470 CALL FRETITL2(TITR,IGEO(NPROPGI-LTITR+1),LTITR)
471 CALL FRETITL2(TITR1,IPM(NPROPMI-LTITR+1,J),LTITR)
472 CALL ANCMSG(MSGID=334,
474 . ANMODE=ANINFO_BLIND_1,
483 CALL FRETITL2(TITR,IGEO(NPROPGI-LTITR+1),LTITR)
484 CALL ANCMSG(MSGID=31,
498.NOT.
IF( IS_ENCRYPTED)WRITE(IOUT,3000) N,GEO(M1),GEO(M4),
499 . GEO(M2)*GEO(1),GEO(M3)*GEO(1),NUML(N)
500 GEO(M1)=GEO(M1)*PI/HUNDRED80
501 GEO(M4)=GEO(M4)*PI/HUNDRED80
506.AND..AND.
IF (ISMSTR==3 IHBE/=0 IHBE/=2) THEN
508 CALL ANCMSG(MSGID=319,
509 . MSGTYPE=MSGWARNING,
510 . ANMODE=ANINFO_BLIND_2,
515 IF(GEO(13)==ZERO) GEO(13)=EM01
516 IF(GEO(14)==ZERO) GEO(14)=EM01
517 IF(GEO(15)==ZERO) GEO(15)=EM02
518 ELSEIF(IHBE < 10)THEN
519 IF(GEO(13)==ZERO) GEO(13)=EM02
520 IF(GEO(14)==ZERO) GEO(14)=EM02
521 IF(GEO(15)==ZERO) GEO(15)=EM02
535.AND..AND.
ELSEIF(IHBE>=3IHBE<100IHBE/=4)THEN
541 ELSEIF(ISHEAR==1)THEN
543 ELSEIF(ISHEAR==2)THEN
553.AND.
IF(GEO( 3)/=ZEROIGEO( 5)== 0)IGEO( 5)=NINT(GEO( 3))
554.AND.
IF(GEO(39)/=ZEROIGEO( 9)== 0)IGEO( 9)=NINT(GEO(39))
555.AND.
IF(GEO(171)/=ZEROIGEO(10)== 0)
556 . IGEO(10)=NINT(GEO(171))
560 PROP_TAG(IGTYP)%G_SIG = 0
561 PROP_TAG(IGTYP)%G_FOR = 5
562 PROP_TAG(IGTYP)%G_MOM = 3
563 PROP_TAG(IGTYP)%G_THK = 1
564 PROP_TAG(IGTYP)%G_EINT= 2
565 PROP_TAG(IGTYP)%G_EINS= 0
566 PROP_TAG(IGTYP)%L_SIG = 5
567 PROP_TAG(IGTYP)%L_THK = 0
568 PROP_TAG(IGTYP)%L_EINT= 2
569 PROP_TAG(IGTYP)%L_EINS= 0
570 PROP_TAG(IGTYP)%G_VOL = 0
571 PROP_TAG(IGTYP)%L_VOL = 0
572 PROP_TAG(IGTYP)%LY_DMG = 2
574 PROP_TAG(IGTYP)%LY_GAMA = 6
575 PROP_TAG(IGTYP)%LY_DIRA = 2
576 PROP_TAG(IGTYP)%LY_DIRB = 2
577 PROP_TAG(IGTYP)%LY_PLAPT = 1
578 PROP_TAG(IGTYP)%LY_SIGPT = 5
579 PROP_TAG(IGTYP)%G_FORPG = 5
580 PROP_TAG(IGTYP)%G_MOMPG = 3
581 PROP_TAG(IGTYP)%G_STRPG = 8
587 & 5X,'composite layered shell property set
',
588 & 'with variable thicknesses and
'/,
589 & 5X,'property set number . . . . . . . . . .=
',I10/,
590 & 5X,'number of layers. . . . . . . . . . . .=
',I10/,
591 & 5X,'post processing strain flag . . . . . .=
',I10/,
592 & 5X,'shell thickness . . . . . . . . . . . .=
',1PG20.13/,
594 & 5X,'shell formulation flag. . . . . . . . .=
',I10/,
595 & 5X,'3node shell formulation flag. . . . . .=
',I10/,
596 & 5X,'shell hourglass membrane
damping. . . .=
',1PG20.13/,
597 & 5X,'shell hourglass flexural
damping. . . .=
',1PG20.13/,
598 & 5X,'shell hourglass rotational
damping. . .=
',1PG20.13/,
599 & 5X,'shell membrane
damping. . . . . . . . .=
',1PG20.13/,
600 & 5X,'shear
area reduction factor . . . . . .=
',1PG20.13/,
601 & 5X,'element deletion
PARAMETER. . . . . . .=
',1PG20.13/,
602 & 5X,' > 0.0 : fraction of failed thickness
',/,
603 & 5X,' < 0.0 : fraction of failed layers
',/,
604 & 5X,'shear formulation flag. . . . . . . . .=
',I10/,
605 & 5X,'thickness variation flag. . . . . . . .=
',I10/,
606 & 5X,'x component of dir 1 of orthotropy. . .=
',1PG20.13/,
607 & 5X,'y component of dir 1 of orthotropy. . .=
',1PG20.13/,
608 & 5X,'z component of dir 1 of orthotropy. . .=
',1PG20.13/,
609 & 5X,'reference direction flag in shell plane=
',I10/)
611 & 5X,'composite layered shell property set
',
612 & 'with variable thicknesses and materials
'/,
613 & 5X,'property set number . . . . . . . . . .=
',I10/,
614 & 5X,'number of layers. . . . . . . . . . . .=
',I10/,
615 & 5X,'post processing strain flag . . . . . .=
',I10/,
616 & 5X,'shell thickness . . . . . . . . . . . .=
',1PG20.13/,
617 & 5X,'small strain flag . . . . . . . . . . .=
',I10/,
618 & 5X,'shell formulation flag. . . . . . . . .=
',I10/,
619 & 5X,'3node shell formulation flag. . . . . .=
',I10/,
620 & 5X,'shell hourglass membrane
damping. . . .=
',1PG20.13/,
621 & 5X,'shell hourglass flexural
damping. . . .=
',1PG20.13/,
622 & 5X,'shell hourglass rotational
damping. . .=
',1PG20.13/,
623 & 5X,'shell membrane
damping. . . . . . . . .=
',1PG20.13/,
624 & 5X,'shear
area reduction factor . . . . . .=
',1PG20.13/,
625 & 5X,'element deletion
PARAMETER. . . . . . .=
',1PG20.13/,
626 & 5X,' > 0.0 : fraction of failed thickness
',/,
627 & 5X,' < 0.0 : fraction of failed layers
',/,
628 & 5X,'shear formulation flag. . . . . . . . .=
',I10/,
629 & 5X,'thickness variation flag. . . . . . . .=
',I10/,
630 & 5X,'skew of
the first orthotropy direction.=
',I10/,
631 & 5X,'reference direction flag in shell plane=
',I10/)
633 & 5X,'composite layered shell property set
',
634 & 'with variable thicknesses and materials
'/,
635 & 5X,'property set number . . . . . . . . . .=
',I10/,
636 & 5X,'number of layers. . . . . . . . . . . .=
',I10/,
637 & 5X,'post processing strain flag . . . . . .=
',I10/,
638 & 5X,'shell thickness . . . . . . . . . . . .=
',1PG20.13/,
639 & 5X,'small strain flag . . . . . . . . . . .=
',I10/,
640 & 5X,'shell formulation flag. . . . . . . . .=
',I10/,
641 & 5X,'3node shell formulation flag. . . . . .=
',I10/,
642 & 5X,'shell membrane
damping. . . . . . . . .=
',1PG20.13/,
643 & 5X,'shell numerical
damping . . . . . . . .=
',1PG20.13/,
644 & 5X,'shear
area reduction factor . . . . . .=
',1PG20.13/,
645 & 5X,'element deletion
PARAMETER. . . . . . .=
',1PG20.13/,
646 & 5X,' > 0.0 : fraction of failed thickness
',/,
647 & 5X,' < 0.0 : fraction of failed layers
',/,
648 & 5X,'shear formulation flag. . . . . . . . .=
',I10/,
649 & 5X,'thickness variation flag. . . . . . . .=
',I10/,
650 & 5X,'x component of dir 1 of orthotropy. . .=
',1PG20.13/,
651 & 5X,'y component of dir 1 of orthotropy. . .=
',1PG20.13/,
652 & 5X,'z component of dir 1 of orthotropy. . .=
',1PG20.13/,
653 & 5X,'reference direction flag in shell plane=
',I10/)
655 & 5X,'composite layered shell property set
',
656 & 'with variable thicknesses and materials
'/,
657 & 5X,'property set number . . . . . . . . . .=
',I10/,
658 & 5X,'number of layers. . . . . . . . . . . .=
',I10/,
659 & 5X,'post processing strain flag . . . . . .=
',I10/,
660 & 5X,'shell thickness . . . . . . . . . . . .=
',1PG20.13/,
661 & 5X,'small strain flag . . . . . . . . . . .=
',I10/,
662 & 5X,'shell formulation flag. . . . . . . . .=
',I10/,
663 & 5X,'3node shell formulation flag. . . . . .=
',I10/,
664 & 5X,'shell membrane
damping. . . . . . . . .=
',1PG20.13/,
665 & 5X,'shell numerical
damping . . . . . . . .=
',1PG20.13/,
666 & 5X,'shear
area reduction factor . . . . . .=
',1PG20.13/,
667 & 5X,'element deletion
PARAMETER. . . . . . .=
',1PG20.13/,
668 & 5X,' > 0.0 : fraction of failed thickness
',/,
669 & 5X,' < 0.0 : fraction of failed layers
',/,
670 & 5X,'shear formulation flag. . . . . . . . .=
',I10/,
671 & 5X,'thickness variation flag. . . . . . . .=
',I10/,
672 & 5X,'skew of
the first orthotropy direction.=
',I10/,
673 & 5X,'reference direction flag in shell plane=
',I10/)
676 & 5X,' angle(dir 1,proj(vect / shell) .=
',1PG20.13/,
677 & 5X,' angle(dir 1,dir 2) . . . . . . .=
',1PG20.13/,
678 & 5X,' thickness . . . . . . . . . . . .=
',1PG20.13/,
679 & 5X,' position. . . . . . . . . . . . .=
',1PG20.13/,
680 & 5X,' material number . . . . . . . . .=
',I10/)