75 . BUFGEO,LBUFGEO ,ISKN ,IGEO ,IPM ,
76 . NPC ,PLD ,UNITAB ,RTRANS,LSUBMODEL ,
77 . PROP_TAG ,IPART ,KNOT,IDRAPEID,STACK_INFO,
78 . NUMGEO_STACK,NPROP_STACK, MULTI_FVM,IADBUF,DEFAULTS,
102#include "implicit_f.inc"
106#include "units_c.inc"
107#include "com04_c.inc"
108#include "param_c.inc"
109#include "scr17_c.inc"
110#include "tablen_c.inc"
114 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
115 INTEGER IX(*),ITABM1(*),LBUFGEO,ISKN(LISKN,*),
116 . IGEO(NPROPGI,*),IPM(NPROPMI,*),NPC(*),
117 . IPART(LIPART1,*),IDRAPEID(*),NUMGEO_STACK(NUMGEO+NUMSTACK),
120 my_real geo(npropg,numgeo), x(*), pm(npropm,nummat),pld(*),rtrans(ntransf,*),knot(*)
122 DOUBLE PRECISION BUFGEO(*)
124 TYPE(
prop_tag_) ,
DIMENSION(0:MAXPROP) :: PROP_TAG
125 TYPE(
stack_info_ ) ,
DIMENSION (NPROP_STACK) :: STACK_INFO
126 TYPE(MULTI_FVM_STRUCT) :: MULTI_FVM
127 TYPE(defaults_),
INTENT(INOUT) :: DEFAULTS
128 type(matparam_struct_) ,
dimension(nummat) ,
intent(in) :: mat_param
133 INTEGER I, PROP_ID, IGTYP, IMAT,ISMSTR, J, K,N,
134 . IGFLU, NSHELL, NSHSUP, NSHINF, NBADI,IUNIT,UID,
135 . NSST_D, NSST_DS, NPSH, ISORTH,
136 . IHGFLU, NSTACK,NUMS,IHBE
137 INTEGER IFLAGUNIT, JPID,N1,IPOS,ISROT,MLAWLY,MID,SUB_ID,
139 . iad_knot,istack,ipinch
140 INTEGER MAT_USR,MAT_RAD
142 INTEGER JPID1,JPID2,NISUB,E_TYPE,,
144 my_real PUN,CVIS,RBID,
145 . fac_l,fac_t,fac_m, zshift,pthk
146 CHARACTER(LEN=NCHARLINE) :: IDTITL,KEY,SOLVERKEYWORD
148 CHARACTER(LEN=NCHARTITLE) :: TITR1
149 DATA nshell /0/, nshsup /0/, nshinf /0/
153 DATA mess/
'PID DEFINITION '/
271 IF(
ale%GLOBAL%ICAA == 1)igflu=1
286 . option_id = prop_id,
288 . submodel_id = sub_id,
289 . submodel_index = sub_index,
290 . option_titr = idtitl,
296 DO iunit=1,unitab%NUNITS
297 IF (unitab%UNIT_ID(iunit) == uid)
THEN
302 IF (uid/=0.AND.iflagunit==0)
THEN
303 CALL ancmsg(msgid=659,anmode=aninfo,msgtype=msgerror,
304 . i2=uid,i1=prop_id,c1=
'PROPERTY',
311 CALL fretitl(idtitl,igeo(npropgi-ltitr+1,i),ltitr)
312 WRITE(iout,
'(A40)') idtitl
321 SELECT CASE(key(1:len_trim(key)))
322 CASE (
'TYPE0',
'VOID')
327 CALL hm_read_prop0(geo(1,i),igeo(1,i),prop_id,igtyp,unitab,lsubmodel)
329 CASE (
'TYPE1',
'TYPE01',
'SHELL')
334 CALL hm_read_prop01(geo(1,i),igeo(1,i),prop_tag ,multi_fvm,igtyp,prop_id,idtitl,unitab,lsubmodel,
337 CASE (
'TYPE2',
'TYPE02',
'TRUS',
'TRUSS')
342 CALL hm_read_prop02(igtyp ,prop_id , igeo(1,i) , geo(1,i) ,prop_tag ,unitab ,idtitl,lsubmodel )
344 CASE (
'TYPE3',
'TYPE03',
'BEAM')
349 CALL hm_read_prop03(geo(1,i),igeo(1,i),prop_tag,igtyp,prop_id,idtitl,unitab,lsubmodel)
351 CASE (
'TYPE4',
'TYPE04',
'SPRING')
356 CALL hm_read_prop04(geo(1,i),igeo(1,i),unitab,prop_id,igtyp,prop_tag,lsubmodel)
358 CASE (
'TYPE6',
'TYPE06',
'SOL_ORTH')
363 CALL hm_read_prop06(geo(1,i),igeo(1,i),prop_tag ,multi_fvm,igtyp ,
364 . prop_id ,idtitl ,unitab ,lsubmodel,rtrans ,
365 . sub_id ,iskn ,ipart ,sub_index,defaults%SOLID)
367 CASE (
'TYPE5',
'TYPE05',
'RIVET')
374 CASE (
'TYPE8',
'TYPE08',
'SPR_GENE')
380 . iskn,unitab,iunit,idtitl,lsubmodel,sub_index)
383 CASE (
'TYPE9',
'TYPE09',
'SH_ORTH')
389 . rtrans,lsubmodel,idtitl ,prop_id
390 CASE (
'TYPE10',
'SH_COMP')
396 . rtrans,lsubmodel,idtitl ,prop_id ,sub_id,iskn,defaults%SHELL )
397 CASE (
'TYPE11',
'SH_SANDW')
403 . unitab ,rtrans ,lsubmodel,sub_id ,idtitl ,
404 . prop_tag ,prop_id ,igtyp ,defaults%SHELL )
406 CASE (
'TYPE12',
'SPR_PUL')
412 . prop_tag, idtitl, lsubmodel)
414 CASE (
'TYPE13',
'SPR_BEAM')
420 . idtitl ,igtyp ,prop_tag, lsubmodel,sub_index)
422 CASE (
'TYPE16',
'SH_FABR')
428 . unitab ,rtrans ,lsubmodel,sub_id ,prop_tag ,
429 . igtyp ,prop_id ,idtitl,defaults%SHELL )
431 CASE (
'TYPE17',
'STACK')
436 nums = numgeo_stack(cpt)
438 . unitab ,rtrans ,lsubmodel,sub_id ,idtitl ,
439 . prop_id ,prop_tag ,stack_info(nums),defaults%SHELL)
441 CASE (
'TYPE18',
'INT_BEAM')
446 CALL hm_read_prop18(geo(1,i),igeo(1,i),prop_tag,igtyp,prop_id,idtitl,unitab,lsubmodel)
454 CALL hm_read_prop19(prop_id, igtyp, istack, geo(1,i),igeo(1,i),pm,ipm,unitab,idrapeid,
460 CASE (
'TYPE14',
'SOLID')
462 IF (
ale%GLOBAL%ICAA == 0 .AND. igflu == 0)
THEN
463 CALL hm_read_prop14(geo(1,i),igeo(1,i),prop_tag ,multi_fvm,igtyp,prop_id,idtitl,unitab,lsubmodel,
464 . ipart ,defaults%SOLID)
466 CALL hm_read_prop14f(geo(1,i),igeo(1,i),prop_tag ,multi_fvm,igtyp,prop_id,idtitl,unitab,lsubmodel,
472 CALL hm_read_prop14f(geo(1,i),igeo(1,i),prop_tag ,multi_fvm,igtyp,prop_id,idtitl,unitab,lsubmodel,
478 CASE (
'TYPE15',
'POROUS')
480 CALL hm_read_prop15(prop_id ,igtyp , geo(1,i) , igeo(1,i) ,prop_tag ,unitab ,
481 . lsubmodel,idtitl , iskn ,itabm1 ,defaults%SOLID )
483 CASE (
'TYPE20',
'TSHELL')
488 CALL hm_read_prop20(geo(1,i),igeo(1,i),prop_tag ,multi_fvm,igtyp,prop_id,idtitl,unitab,lsubmodel,
491 CASE (
'TYPE21',
'TSH_ORTH')
498 . rtrans ,lsubmodel ,sub_id,idtitl ,igtyp ,prop_tag,
500 CASE (
'TYPE22',
'TSH_COMP')
506 CALL hm_read_prop22(geo(1,i) ,igeo(1,i) ,igtyp,prop_id ,idtitl ,unitab ,
507 . lsubmodel ,pm ,ipm ,rtrans ,sub_id ,iskn,prop_tag,
510 CASE (
'TYPE23',
'SPR_MAT')
517 . iskn ,idtitl ,lsubmodel , prop_tag,sub_index)
519 CASE (
'TYPE25',
'SPR_AXI')
525 . prop_id,prop_tag,idtitl,lsubmodel,sub_index)
527 CASE (
'TYPE26',
'SPR_TAB')
533 . prop_tag,lsubmodel)
535 CASE (
'TYPE27',
'SPR_BDAMP')
540 CALL hm_read_prop27(geo(1,i),igeo(1,i),prop_tag,igtyp,prop_id,unitab,lsubmodel)
547 CALL hm_read_inject1(geo(1,i),igeo(1,i),prop_tag,igtyp,prop_id,idtitl,unitab,lsubmodel,ipm,pm,npc,pld)
554 CALL hm_read_inject2(geo(1,i),igeo(1,i),prop_tag,igtyp,prop_id,idtitl,unitab,lsubmodel,ipm,pm,npc,pld)
561 nums = numgeo_stack(cpt)
563 . geo(1,i) ,igeo(1,i) ,pm ,ipm ,iskn ,
564 . prop_id ,prop_tag ,rtrans ,sub_id ,stack_info(nums) ,
565 . idtitl ,unitab ,lsubmodel,defaults%SHELL)
583 1 igtyp ,prop_id ,idtitl ,key ,geo(1,i),
584 2 igeo(1,i),lbufgeo ,bufgeo ,iadbuf ,unitab,
585 3 iskn ,knot ,iad_knot,prop_tag ,lsubmodel,
586 4 rtrans ,sub_id ,iunit ,sub_index,defaults )
592 IF (igtyp == 1 .OR. igtyp == 9 .OR. igtyp == 10 .OR. igtyp == 11 .OR.
593 . igtyp == 16 .OR. igtyp == 17 .OR. igtyp == 19 .OR. igtyp == 51 .OR.
594 . igtyp == 52 ) prop_shell = 1
596 IF (prop_shell == 1)
THEN
598 prop_tag(igtyp)%G_SIG = 0
599 prop_tag(igtyp)%G_FOR = 5
600 prop_tag(igtyp)%G_MOM = 3
601 prop_tag(igtyp)%G_THK = 1
602 prop_tag(igtyp)%G_EINT= 2
603 prop_tag(igtyp)%G_EINS= 0
604 prop_tag(igtyp)%L_SIG = 5
605 IF (igtyp == 17) prop_tag(igtyp)%L_SIGPLY = 3
606 prop_tag(igtyp)%L_THK = 0
607 prop_tag(igtyp)%L_EINT= 2
608 prop_tag(igtyp)%L_EINS= 0
609 prop_tag(igtyp)%G_VOL = 1
610 prop_tag(igtyp)%L_VOL = 1
611 prop_tag(igtyp)%LY_DMG = 2
612 IF (igtyp == 9 .OR. igtyp == 10 .OR. igtyp == 11 .OR.
613 . igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 )
THEN
614 prop_tag(igtyp)%LY_GAMA = 6
615 prop_tag(igtyp)%LY_DIRA = 2
616 ELSEIF (igtyp == 16)
THEN
617 prop_tag(igtyp)%LY_GAMA = 6
618 prop_tag(igtyp)%LY_DIRA = 2
619 prop_tag(igtyp)%LY_DIRB = 2
621 prop_tag(igtyp)%LY_PLAPT = 1
622 prop_tag(igtyp)%LY_SIGPT = 5
623 prop_tag(igtyp)%G_FORPG = 5
624 prop_tag(igtyp)%G_MOMPG = 3
625 prop_tag(igtyp)%G_STRPG = 8
627 IF((igtyp == 11 .OR. igtyp == 17 ) ) prop_tag(igtyp)%LY_DMG = 2
628 IF (igtyp == 9 .OR. igtyp == 10 .OR. igtyp == 11 .OR.
629 . igtyp == 16 .OR. igtyp == 17 .OR. igtyp == 51 .OR.
630 . igtyp == 52 ) prop_tag(igtyp)%L_OFF = 1
639 DO cpt = 1, hm_numgeo
640 IF (igeo(11, cpt) == 19)
THEN
641 nplymax = nplymax + 1
642 igeo(102, cpt) = nplymax
648 DO cpt = 1, hm_numgeo
650 nums= numgeo_stack(cpt)
651 IF (igtyp == 17 .OR. igtyp == 51 )
THEN
656 zshift = geo(199, cpt)
659 ELSEIF(ipos == 3)
THEN
661 ELSEIF(ipos == 4)
THEN
664 geo(199, cpt) = zshift
668 jpid = stack_info(nums)%PID(j)
672 IF (igeo(1,k) == jpid .AND.igeo(11,k)==19)
THEN
673 stack_info(nums)%PID(j) = k
679 igeo(200 + nstack ,k) = cpt
681 geo(1,cpt) = geo(1,cpt) + geo(1,k)
685 CALL fretitl2(titr1,igeo(npropgi-ltitr+1,cpt),ltitr)
688 . anmode=aninfo_blind_1,
689 . i1=igeo(1,cpt),c1=titr1,
698 jpid1 = stack_info(nums)%ISUB( 3*(j-1) + 1 )
699 jpid2 = stack_info(nums)%ISUB( 3*(j-1) + 2 )
700 IF (jpid1 > 0 .OR. jpid2 > 0)
THEN
703 IF (igeo(1,k) == jpid1)
THEN
704 stack_info(nums)%ISUB (3*(j-1) + 1) = k
706 ELSEIF (igeo(1,k) == jpid2)
THEN
707 stack_info(nums)%ISUB (3*(j-1) + 2) = k
711 CALL fretitl2(titr1,igeo(npropgi-ltitr+1,cpt),ltitr
714 . anmode=aninfo_blind_1,
715 . i1=igeo(1,cpt),c1=titr1,
718 CALL fretitl2(titr1,igeo(npropgi-ltitr+1,cpt),ltitr)
721 . anmode=aninfo_blind_1,
722 . i1=igeo(1,cpt),c1=titr1,
731 jpid = stack_info(nums)%PID(j)
732 stack_info(nums)%THK(j) = geo(1,jpid)
733 stack_info(nums)%DIR(j) = geo(212,jpid)
734 stack_info(nums)%MID(j) = igeo(101,jpid)
739 j=stack_info(nums)%MID(1)
741 prop_id = igeo(1,cpt)
744 j = stack_info(nums)%MID(n)
746 IF (igtyp == 51)
GOTO 350
747 IF (ipm(2,j) == mlawly)
GOTO 350
748 WRITE(law_id,
'(I2)')mlawly
749 IF (mlawly==99) law_id=
'USER'
752 . anmode=aninfo_blind_1,
760 ENDDO !
DO cpt = 1, hm_numgeo
764 DO cpt = 1, hm_numgeo
766 prop_id = igeo(1,cpt)
768 nums = numgeo_stack(cpt)
770 IF (igtyp == 17 .OR. igtyp == 51)
THEN
774 imat = stack_info(nums)%MID(n)
775 mlawly = mat_param(imat)%ILAW
776 IF (mlawly > 28 .and. mlawly < 32 .or. mlawly == 99 .or. mlawly == 200)
THEN
783 IF (mat_usr == 1 .AND. mat_rad == 1)
THEN
784 CALL ancmsg(msgid=3113,msgtype=msgerror,anmode=aninfo_blind_2,
785 . i1=igtyp, i2=prop_id)
793 geo(100,i) = sqrt(geo(38,i)) ! shfsr
799 CALL vdouble(igeo(1,1),npropgi,numgeo,mess,0,rbid)
805 & 5x,
' PROPERTY SETS'/,
806 & 5x,
' -------------'//)