42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
65 USE matparam_def_mod
67
68
69
70#include "implicit_f.inc"
71
72
73
74#include "units_c.inc"
75#include "param_c.inc"
76
77
78
79 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
80 my_real,
INTENT(INOUT) :: pm(npropm),parmat(100),uparam(maxuparam)
81 INTEGER, INTENT(INOUT) :: IPM(NPROPMI),ISRATE,IFUNC(MAXFUNC),NFUNC,MAXFUNC,MAXUPARAM,NUPARAM, NUVAR,IMATVIS
82 TYPE(MLAW_TAG_),INTENT(INOUT) :: MTAG
83 INTEGER,INTENT(IN) :: MAT_ID
84 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
85 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(NSUBMOD)
86 TYPE(MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
87
88
89
91 . e11, e22, n12, g12, g23, g13,fac1,fac2,fac3,fac4,fac5,
92 . fac_l,fac_t,fac_m,fac_c,dmin,dmax,ssp
93 INTEGER NRATE,J,I,IFLAG
95 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
96
97
98
99
100 is_encrypted = .false.
101 is_available = .false.
102 israte = 0
103 imatvis = 0
104 mtag%G_PLA = 1
105 mtag%L_PLA = 1
106
107 nuparam=10
108 nfunc = 5
109 nuvar = 6
110
112
113 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
114 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
115
116 CALL hm_get_floatv(
'MAT_E1' ,e11 ,is_available, lsubmodel, unitab)
117 CALL hm_get_floatv(
'MAT_E2' ,e22 ,is_available, lsubmodel, unitab)
118
119 CALL hm_get_floatv(
'MAT_GAB' ,g12 ,is_available, lsubmodel, unitab)
120 CALL hm_get_floatv(
'MAT_GBC' ,g23 ,is_available, lsubmodel, unitab)
121
122 CALL hm_get_intv (
'FUN_A1' ,ifunc(1) ,is_available, lsubmodel)
123 CALL hm_get_intv (
'FUN_B1' ,ifunc(2) ,is_available, lsubmodel)
124 CALL hm_get_intv (
'FUN_A3' ,ifunc(3) ,is_available, lsubmodel)
125 CALL hm_get_intv (
'FUN_A5' ,ifunc(4) ,is_available, lsubmodel)
126 CALL hm_get_intv (
'FUN_A6' ,ifunc(5) ,is_available, lsubmodel)
127 iflag=0
128
129 CALL hm_get_floatv(
'MAT_SFAC11' ,fac1 ,is_available, lsubmodel, unitab)
130 CALL hm_get_floatv(
'MAT_SFAC22' ,fac2 ,is_available, lsubmodel, unitab)
131 CALL hm_get_floatv(
'MAT_SFAC12' ,fac3 ,is_available, lsubmodel, unitab)
132 CALL hm_get_floatv(
'MAT_SFAC23' ,fac4 ,is_available, lsubmodel, unitab)
133 CALL hm_get_floatv(
'MAT_SFAC45' ,fac5 ,is_available, lsubmodel, unitab)
134
136
137
138
139 IF(rhor == zero)rhor=rho0
140 pm(1) = rhor
141 pm(89) = rho0
142 ssp = sqrt(
max(e11,e22,g12,g23)/rho0)
143 pm(27) = ssp
144 IF (fac1 == zero) fac1 = one*fac_unit
145 IF (fac2 == zero) fac2 = one*fac_unit
146 IF (fac3 == zero) fac3 = one*fac_unit
147 IF (fac4 == zero) fac4 = one*fac_unit
148 IF (fac5 == zero) fac5 = one*fac_unit
149
150
151 uparam(1)=e11
152 uparam(2)=e22
153 uparam(3)=g12
154 uparam(4)=g23
155 uparam(5)=iflag
156 uparam(6)=fac1
157 uparam(7)=fac2
158 uparam(8)=fac3
159 uparam(9)=fac4
160 uparam(10)=fac5
161
162 parmat(1) =
max(e11,e22,g12,g23)
163 parmat(2) =
max(e11,e22)
164 parmat(16) = 1
165 dmin = e11*e22
167 parmat(17) = dmin/dmax/dmax
168
172
173
175
176
177 WRITE(iout,1001) trim(titr),mat_id,53
178 WRITE(iout,1000)
179 IF(is_encrypted)THEN
180 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
181 ELSE
182 WRITE(iout,1002) rho0
183 WRITE(iout,1100)e11,e22,g12,g23,(ifunc(i),i=1,5)
184 WRITE(iout,1200)fac1,fac2,fac3,fac4,fac5
185 ENDIF
186
187
188
189 1000 FORMAT(
190 & 5x,30h /mat/law53 (tsai_tab) ,/,
191 & 5x,30h ------------- ,//)
192 1001 FORMAT(
193 & 5x,a,/,
194 & 5x,'MATERIAL NUMBER . . . . . . . . . . . . =',i10/,
195 & 5x,'MATERIAL LAW. . . . . . . . . . . . . . =',i10/)
196 1002 FORMAT(
197 & 5x,'INITIAL DENSITY . . . . . . . . . . . . =',1pg20.13/)
198 1100 FORMAT(
199 & 5x,'E11 . . . . . . . . . . . . . . . . . .=',1pg20.13/
200 & 5x,'E22 . . . . . . . . . . . . . . . . . .=',1pg20.13/
201 & 5x,'G12 . . . . . . . . . . . . . . . . . .=',1pg20.13/
202 & 5x,'G23 . . . . . . . . . . . . . . . . . .=',1pg20.13/
203 & 5x,'YIELD STRESS 11 FUNCTION NUMBER . . . .=',i10/
204 & 5x,'YIELD STRESS 22 FUNCTION NUMBER . . . .=',i10/
205 & 5x,'YIELD STRESS 12 FUNCTION NUMBER . . . .=',i10/
206 & 5x,'YIELD STRESS 23 FUNCTION NUMBER . . . .=',i10/
207 & 5x,'YIELD STRESS 45 FUNCTION NUMBER . . . .=',i10)
208 1200 FORMAT(
209 & 5x,'STRESS 11 FUNCTION SCALE FACTOR . . . .=',1pg20.13/
210 & 5x,'STRESS 22 FUNCTION SCALE FACTOR . . . .=',1pg20.13/
211 & 5x,'STRESS 33 FUNCTION SCALE FACTOR . . . .=',1pg20.13/
212 & 5x,'STRESS 12 FUNCTION SCALE FACTOR . . . .=',1pg20.13/
213 & 5x,'STRESS 23 FUNCTION SCALE FACTOR . . . .=',1pg20.13/
214 & 5x,'STRESS 45 FUNCTION SCALE FACTOR . . . .=',1pg20.13//)
215
216
217 RETURN
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_floatv_dim(name, dim_fac, 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