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,TITR1
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)
155 CALL HM_GET_INTV('nip
',NLY,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)
161 CALL HM_GET_INTV('ip
',IRP,IS_AVAILABLE,LSUBMODEL)
164 CALL HM_GET_INT_ARRAY_INDEX('prop_mi',numl(k),k,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)
189 IF (geo(ipphi+k) == zero) geo(ipphi+k) = ninty
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 IF (ihbe == 4 .AND. ish3n==0 .AND. ish3n_d == 1)
THEN
210 . msgtype=msgwarning,
211 . anmode=aninfo_blind_1,
215 IF (ihbe==22.OR.ihbe==23)
THEN
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 IF (ismstr==3 .AND. ihbe/=0 .AND. ihbe/=2)
THEN
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)
295 IF(idsk == iskn(4,j+1))
THEN
310 IF (irp==22.AND.isk==0)
THEN
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 IF (ihbe > 11 .AND. 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 IF (ihbe > 11 .AND. 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)
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)
424 . msgtype=msgwarning,
425 . anmode=aninfo_blind_1,
434 IF (ipm(1,j) == numl(1))
THEN
436 mlawly1= nint(pm(19,j))
437 IF(mlawly1 == 58 .OR. mlawly1 == 158 .OR. mlawly1 == 98)
GO TO 250
438 IF(mlawly1>=29.AND.mlawly1<=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)
453 CALL fretitl2(titr,igeo(npropgi-ltitr+1),ltitr)
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)
474 . anmode=aninfo_blind_1,
483 CALL fretitl2(titr,igeo(npropgi-ltitr+1),ltitr)
498 IF(.NOT. 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 IF (ismstr==3 .AND. ihbe/=0 .AND. ihbe/=2)
THEN
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 ELSEIF(ihbe>=3.AND.ihbe<100.AND.ihbe/=4)
THEN
541 ELSEIF(ishear==1)
THEN
543 ELSEIF(ishear==2)
THEN
553 IF(geo( 3)/=zero.AND.igeo( 5)== 0)igeo( 5)=nint(geo( 3))
554 IF(geo(39)/=zero.AND.igeo( 9)== 0)igeo( 9)=nint(geo(39))
555 IF(geo(171)/=zero.AND.igeo(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 MATERIALS'/,
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/,
593 & 5x,
'SMALL STRAIN FLAG . . . . . . . . . . .=',i10/,
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.1
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/)