39
40
41
45 USE matparam_def_mod
47
48
49
50#include "implicit_f.inc"
51
52
53
54#include "units_c.inc"
55#include "param_c.inc"
56
57
58
59 my_real,
DIMENSION(MAXUPARAM) ,
INTENT(INOUT) :: uparam
60 INTEGER, INTENT(IN) :: MAT_ID,MAXUPARAM,MAXFUNC
61 INTEGER, INTENT(INOUT) :: NUPARAM,NUVAR,IMATVIS,
62 . IFUNC(MAXFUNC),NFUNC
63 my_real,
DIMENSION(100),
INTENT(INOUT) :: parmat
64 TYPE (UNIT_TYPE_),INTENT(IN) :: UNITAB
65 my_real,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: pm
66 TYPE(SUBMODEL_DATA), DIMENSION(*),INTENT(IN) :: LSUBMODEL
67 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
68 TYPE(MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
69
70
71
73 . rho0,dr,deref,de1,dpoiss,dve1,dve2,dedot_ref,
74 . gamv_ref, alphap, dq, dv, dm, dc3, dc4, calphak1, calphak2, h0,
75 . des1_0, dc5, dc6, dc7, dc8, dc9, dc10, h1, des2_0, dc11, dc12,
76 . dc13, dc14, dc1, dc2, dlambda, rhoa, cv, theta0, beta0, btheta0,
77 . factor, temp_opt, thetai, thetag,stifint,
78 . c1,c2,c3,c4,c5,mu,lm,d,beta
79 CHARACTER(LEN=NCHARFIELD) ::STRING,
80 CHARACTER(LEN=NCHARTITLE) :: KEY
81 INTEGER ILAW
82
83 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
84
85
86 is_encrypted = .false.
87 is_available = .false.
88 ilaw = 101
89
91
92
93 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
94
95 CALL hm_get_floatv(
'MAT_E' ,deref ,is_available, lsubmodel, unitab)
96 CALL hm_get_floatv(
'MAT_ALPHA1' ,de1 ,is_available, lsubmodel, unitab)
97 CALL hm_get_floatv(
'MAT_NU' ,dpoiss ,is_available, lsubmodel, unitab)
98 CALL hm_get_floatv(
'VE1' ,dve1 ,is_available, lsubmodel, unitab)
99
100 CALL hm_get_floatv(
'VE2' ,dve2 ,is_available, lsubmodel, unitab)
101 CALL hm_get_floatv(
'EPSILONref' ,dedot_ref ,is_available, lsubmodel, unitab)
102 CALL hm_get_floatv(
'GAMMA0' ,gamv_ref ,is_available, lsubmodel, unitab)
103 CALL hm_get_floatv(
'ALPHA_p' ,alphap ,is_available, lsubmodel, unitab)
104
105 CALL hm_get_floatv(
'DELTAH' ,dq ,is_available, lsubmodel, unitab)
106 CALL hm_get_floatv(
'MAT_VOL' ,dv ,is_available, lsubmodel, unitab)
107 CALL hm_get_floatv(
'MAT_M' ,dm ,is_available, lsubmodel, unitab)
108 CALL hm_get_floatv(
'MAT_C3' ,dc3 ,is_available, lsubmodel, unitab)
109
110 CALL hm_get_floatv(
'MAT_C4' ,dc4 ,is_available, lsubmodel, unitab)
111 CALL hm_get_floatv(
'ALPHAK1' ,calphak1 ,is_available, lsubmodel, unitab)
112 CALL hm_get_floatv(
'ALPHAK2' ,calphak2 ,is_available, lsubmodel, unitab)
113 CALL hm_get_floatv(
'MAT_HARD' ,h0 ,is_available, lsubmodel, unitab)
114
115 CALL hm_get_floatv(
'ZETA1i' ,des1_0 ,is_available, lsubmodel, unitab)
116 CALL hm_get_floatv(
'MAT_C5' ,dc5 ,is_available, lsubmodel, unitab)
117 CALL hm_get_floatv(
'MAT_C6' ,dc6 ,is_available, lsubmodel, unitab)
118 CALL hm_get_floatv(
'MAT_C7' ,dc7 ,is_available, lsubmodel, unitab)
119
120 CALL hm_get_floatv(
'MAT_C8' ,dc8 ,is_available, lsubmodel, unitab)
121 CALL hm_get_floatv(
'MAT_C9' ,dc9 ,is_available, lsubmodel, unitab)
122 CALL hm_get_floatv(
'MAT_C_10' ,dc10 ,is_available, lsubmodel, unitab)
123 CALL hm_get_floatv(
'MAT_HARD1' ,h1 ,is_available, lsubmodel, unitab)
124
125 CALL hm_get_floatv(
'ZETA2i' ,des2_0 ,is_available, lsubmodel, unitab
128 CALL hm_get_floatv(
'MAT_C13' ,dc13 ,is_available, lsubmodel, unitab)
129
131 CALL hm_get_floatv(
'MAT_C1' ,dc1 ,is_available, lsubmodel, unitab)
133 CALL hm_get_floatv(
'LAMBDAL' ,dlambda ,is_available, lsubmodel, unitab)
134
135 CALL hm_get_floatv(
'MAT_RHO_REF' ,rhoa ,is_available, lsubmodel, unitab)
136 CALL hm_get_floatv(
'MAT_CV_REF' ,cv ,is_available, lsubmodel, unitab)
137 CALL hm_get_floatv(
'MAT_TREF' ,theta0 ,is_available, lsubmodel, unitab)
138 CALL hm_get_floatv(
'ALPHA_TH' ,beta0 ,is_available, lsubmodel, unitab)
139
140 CALL hm_get_floatv(
'THETA_GLASS' ,thetag ,is_available, lsubmodel, unitab)
141 CALL hm_get_floatv(
'Omega' ,factor ,is_available, lsubmodel, unitab)
142 CALL hm_get_floatv(
'THETA_FLAG' ,temp_opt ,is_available, lsubmodel, unitab)
143 CALL hm_get_floatv(
'HEAT_T0' ,thetai ,is_available, lsubmodel, unitab)
144
145 dr = 8.314
146
147 dr = dr * unitab%FAC_T_WORK* unitab%FAC_T_WORK / unitab%FAC_M_WORK /unitab%FAC_L_WORK / unitab%FAC_L_WORK
148 nuparam = 42
149
150
151
152
153 uparam(1) = deref
154 uparam(2) = de1
155 uparam(3) = dpoiss
156 uparam(4) = dve1
157 uparam(5) = dve2
158 uparam(6) = dedot_ref
159 uparam(7) = gamv_ref
160 uparam(8) = alphap
161 uparam(9) = dq
162 uparam(10) = dv
163 uparam(11) = dm
164 uparam(12) = dc3
165 uparam(13) = dc4
166 uparam(14) = calphak1
167 uparam(15) = calphak2
168 uparam(16) = h0
169 uparam(17) = des1_0
170 uparam(18) = dc5
171 uparam(19) = dc6
172 uparam(20) = dc7
173 uparam(21) = dc8
174 uparam(22) = dc9
175 uparam(23) = dc10
176 uparam(24) = h1
177 uparam(25) = des2_0
178 uparam(26) = dc11
179 uparam(27) = dc12
180 uparam(28) = dc13
181 uparam(29) = dc14
182 uparam(30) = dc1
183 uparam(31) = dc2
184 uparam(32) = dlambda
185 uparam(33) = rhoa
186 uparam(34) = cv
187 uparam(35) = theta0
188 uparam(36) = beta0
189
190 uparam(38) = factor
191 uparam(39) = temp_opt
192 uparam(40) = thetai
193 uparam(41) = thetag
194 uparam(42) = dr
195
196
197
198
199 nuvar = 42
200 nfunc = 0
201
202 stifint = deref*(1-dpoiss)/(1+dpoiss)/(1-2*dpoiss
203 parmat(1) = stifint/three
204 parmat(2) = stifint
205 parmat(3) = dpoiss
206
207
208 pm(1) = rho0
209 pm(89) = rho0
210 pm(100) = parmat(1)
211 imatvis = 1
212
216
218
219 WRITE(iout,900) trim(titr),mat_id,ilaw
220 WRITE(iout,1000)
221 IF (is_encrypted) THEN
222 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
223 ELSE
224 WRITE(iout,1050) rho0
225 WRITE(iout,1100) deref, de1, dpoiss, dve1, dve2, dedot_ref,
226 . gamv_ref, alphap, dq, dv, dm, dc3, dc4, calphak1, calphak2, h0,
227 . des1_0, dc5, dc6, dc7, dc8, dc9, dc10, h1, des2_0, dc11, dc12,
228 . dc13, dc14, dc1, dc2, dlambda, rhoa, cv, theta0, beta0,
229 . factor, temp_opt, thetai, thetag
230 ENDIF
231
232 900 FORMAT(/
233 & 5x,a,/,
234 & 5x,'MATERIAL NUMBER. . . . . . . . . . . . =',i10/,
235 & 5x,'MATERIAL LAW . . . . . . . . . . . . . =',i10/)
236 1000 FORMAT(
237 & 5x,' MATERIAL MODEL : VISCOPLASTIC MODEL - BOUVARD ',/,
238 & 5x,' --------------------------------------------- ',/)
239 1050 FORMAT(
240 & 5x,'INITIAL DENSITY . . . . . . . . . . . .=',1pg20.13/)
241 1100 FORMAT(
242 & 5x,'DEREF . . . . . . . . . . . . . . . . .=',1pg20.13/
243 & 5x,'DE1 . . . . . . . . . . . . . . . . . .=',1pg20.13/
244 & 5x,'DPOISS. . . . . . . . . . . . . . . . .=',1pg20.13/
245 & 5x,'DVE1. . . . . . . . . . . . . . . . . .=',1pg20.13/
246 & 5x,'DVE2. . . . . . . . . . . . . . . . . .=',1pg20.13/
247 & 5x,'DEDOT_REF . . . . . . . . . . . . . . .=',1pg20.13/
248 & 5x,'GAMV_REF. . . . . . . . . . . . . . . .=',1pg20.13/
249 & 5x,'ALPHAP. . . . . . . . . . . . . . . . .=',1pg20.13/
250 & 5x,'DQ. . . . . . . . . . . . . . . . . . .=',1pg20.13/
251 & 5x,'DV. . . . . . . . . . . . . . . . . . .=',1pg20.13/
252 & 5x,'DM. . . . . . . . . . . . . . . . . . .=',1pg20.13/
253 & 5x,'DC3 . . . . . . . . . . . . . . . . . .=',1pg20.13/
254 & 5x,'DC4 . . . . . . . . . . . . . . . . . .=',1pg20.13/
255 & 5x,'calphak1. . . . . . . . . . . . . . . .=',1PG20.13/
256 & 5X,'calphak2. . . . . . . . . . . . . . . .=',1PG20.13/
257 & 5X,'h0. . . . . . . . . . . . . . . . . . .=',1PG20.13/
258 & 5X,'des1_0. . . . . . . . . . . . . . . . .=',1PG20.13/
259 & 5X,'dc5 . . . . . . . . . . . . . . . . . .=',1PG20.13/
260 & 5X,'dc6 . . . . . . . . . . . . . . . . . .=',1PG20.13/
261 & 5X,'dc7 . . . . . . . . . . . . . . . . . .=',1PG20.13/
262 & 5X,'dc8 . . . . . . . . . . . . . . . . . .=',1PG20.13/
263 & 5X,'dc9 . . . . . . . . . . . . . . . . . .=',1PG20.13/
264 & 5X,'dc10. . . . . . . . . . . . . . . . . .=',1PG20.13/
265 & 5X,'h1. . . . . . . . . . . . . . . . . . .=',1PG20.13/
266 & 5X,'des2_0. . . . . . . . . . . . . . . . .=',1PG20.13/
267 & 5X,'dc11. . . . . . . . . . . . . . . . . .=',1PG20.13/
268 & 5X,'dc12. . . . . . . . . . . . . . . . . .=',1PG20.13/
269 & 5X,'dc13. . . . . . . . . . . . . . . . . .=',1PG20.13/
270 & 5X,'dc14. . . . . . . . . . . . . . . . . .=',1PG20.13/
271 & 5X,'dc1 . . . . . . . . . . . . . . . . . .=',1PG20.13/
272 & 5X,'dc2 . . . . . . . . . . . . . . . . . .=',1PG20.13/
273 & 5X,'dlambda . . . . . . . . . . . . . . . .=',1PG20.13/
274 & 5X,'rhoa. . . . . . . . . . . . . . . . . .=',1PG20.13/
275 & 5X,'cv. . . . . . . . . . . . . . . . . . .=',1PG20.13/
276 & 5X,'theta0. . . . . . . . . . . . . . . . .=',1PG20.13/
277 & 5X,'beta0 . . . . . . . . . . . . . . . . .=',1PG20.13/
278 & 5X,'factor. . . . . . . . . . . . . . . . .=',1PG20.13/
279 & 5X,'temp_opt. . . . . . . . . . . . . . . .=',1PG20.13/
280 & 5X,'thetai. . . . . . . . . . . . . . . . .=',1PG20.13/
281 & 5X,'thetag. . . . . . . . . . . . . . . . .=',1PG20.13/)
282
283
284 RETURN
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_option_is_encrypted(is_encrypted)
subroutine init_mat_keyword(matparam, keyword)
integer, parameter nchartitle
integer, parameter ncharfield