41
42
43
44
45
46
47
52 USE matparam_def_mod
54 USE multimat_param_mod , ONLY : m20_discrete_fill
55
56
57
58#include "implicit_f.inc"
59
60
61
62#include "units_c.inc"
63#include "com01_c.inc"
64#include "param_c.inc"
65
66
67
68 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
69 INTEGER, INTENT(INOUT) :: IPM(NPROPMI)
70 INTEGER, INTENT(IN) :: MAT_ID
71 my_real,
INTENT(INOUT) :: pm(npropm)
72 TYPE(MLAW_TAG_), INTENT(INOUT) :: MTAG
73 CHARACTER(LEN=NCHARTITLE),INTENT(IN) :: TITR
74 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(*)
75 TYPE(MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
76
77
78
79 INTEGER MAT(5), I, NMAT
81 INTEGER CMAT(5)
82 DATA cmat/0,0,0,0,0/
83 LOGICAL :: IS_ENCRYPTED, IS_AVAILABLE
84
85
86
87 is_encrypted = .false.
88 is_available = .false.
89
91
92
93 nmat = 2
94
95 CALL hm_get_intv(
'MAT1', mat(1), is_available, lsubmodel)
96 CALL hm_get_intv(
'MAT2', mat(2), is_available, lsubmodel)
97 CALL hm_get_intv(
'IC1', cmat(1), is_available, lsubmodel)
98 CALL hm_get_intv(
'IC2', cmat(2), is_available, lsubmodel)
99 CALL hm_get_intv(
'IDISCRETE', cmat(3), is_available, lsubmodel)
100
101 CALL hm_get_floatv(
'MAT_ALPHA1', amat(1), is_available, lsubmodel, unitab)
102 CALL hm_get_floatv(
'MAT_ALPHA2', amat(2), is_available, lsubmodel, unitab)
103
104 DO i=1,2
105 pm(20 + i) = mat(i) + em01
106 pm(30 + i) = amat(i)
107 pm(185 + i) = cmat(i)
108 ENDDO
109 pm(20)=nmat+em01
110 nmult=
max(nmult,nmat)
111
112
113 matparam%multimat%nb = 2
114 IF(.NOT.ALLOCATED(matparam%multimat%vfrac))ALLOCATE(matparam%multimat%vfrac(2))
115 IF(.NOT.ALLOCATED(matparam%multimat%mid)) ALLOCATE(matparam%multimat%mid(2))
116 matparam%multimat%nb = 2
117 matparam%multimat%vfrac(1:2) = amat(1:2)
118 matparam%multimat%mid(1:2) = mat(1:2)
119
120
121 WRITE(iout, 900) trim(titr),mat_id,20
122 WRITE(iout,1000)
123 IF(is_encrypted)THEN
124 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
125 ELSE
126 WRITE(iout,1300)(mat(i),amat(i),cmat(i),i=1,nmat)
127 ENDIF
128
129 IF(cmat(3)>=one)m20_discrete_fill=.true.
130
131 IF(nspmd > 1) THEN
133 . msgtype=msgerror,
134 . anmode=aninfo,
135 . c1='LAW20/2D MULTIMATERIAL')
136 ENDIF
137
138 mtag%L_FRAC = 1
139
140
142
144
145 RETURN
146
147 900 FORMAT(/
148 & 5x,a,/,
149 & 5x,'MATERIAL NUMBER. . . . . . . . . . . . . . .=',i10/,
150 & 5x,'MATERIAL LAW . . . . . . . . . . . . . . . .=',i10/)
151 1000 FORMAT(
152 & 5x,40h /mat/law20 : 2d bi-material law ,/,
153 & 5x,40h ------------------------------- ,//)
154 1300 FORMAT(
155 & 5x,40hreferenced material number. . . . . . .=,i5/,
156 & 5x,40hfilling ratio . . . . . . . . . . . . .=,e12.4/,
157 & 5x,40hincoming phasis control flag. . . . . .=,i5)
158
159 RETURN
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_is_encrypted(is_encrypted)
subroutine init_mat_keyword(matparam, keyword)
integer, parameter nchartitle
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)