39 . NUVAR ,IFUNC ,MAXFUNC ,NFUNC , PARMAT ,
40 . UNITAB ,MAT_ID ,TITR ,MTAG , LSUBMODEL,
70#include "implicit_f.inc"
80 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
81 my_real,
INTENT(INOUT) :: PM(NPROPM),PARMAT(100),UPARAM(MAXUPARAM)
82 INTEGER,
INTENT(INOUT) :: IPM(NPROPMI),ISRATE,IFUNC(MAXFUNC),NFUNC,MAXFUNC,MAXUPARAM,NUPARAM, NUVAR,IMATVIS
84 INTEGER,
INTENT(IN) :: MAT_ID
85 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
86 TYPE(),
INTENT(IN) :: LSUBMODEL(NSUBMOD)
87 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
92 . e11,e22,e33,g12,g23,g31,emx11,emx22,emx33,emx12,emx23,emx31,
93 . emf11,emf22,emf33,emf12,emf23,emf31,
94 . fac1,fac2,fac3,fac4,fac5,fac6,fac7,fac8,fac9,
95 . fac10,fac11,fac12,fac13,fac14,fac15,fac16,fac17,fac18
96 my_real fac_c,fac_l,fac_t,fac_m,dmin,dmax
97 INTEGER I11,I22,I33,I12,I23,I31,I21,I32,I13,IF1,IF2
98 INTEGER ,J22,J33,J12,J23,J31,J21,J32,J13
99 my_real :: rho0, rhor, fac_unit
100 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
106 is_encrypted = .false.
107 is_available = .false.
120 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
121 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
123 CALL hm_get_floatv(
'MAT_EA' ,e11 ,is_available, lsubmodel, unitab)
124 CALL hm_get_floatv(
'MAT_EB' ,e22 ,is_available, lsubmodel, unitab)
125 CALL hm_get_floatv(
'MAT_EC' ,e33 ,is_available, lsubmodel, unitab)
127 CALL hm_get_floatv(
'MAT_GAB' ,g12 ,is_available, lsubmodel, unitab)
128 CALL hm_get_floatv(
'MAT_GBC' ,g23 ,is_available, lsubmodel, unitab)
129 CALL hm_get_floatv(
'MAT_GCA' ,g31 ,is_available, lsubmodel, unitab)
131 CALL hm_get_intv (
'FUN_A1' ,i11 ,is_available, lsubmodel)
132 CALL hm_get_intv (
'FUN_B1' ,i22 ,is_available, lsubmodel)
133 CALL hm_get_intv (
'FUN_A2' ,i33 ,is_available, lsubmodel)
134 CALL hm_get_intv (
'Gflag' ,if1 ,is_available, lsubmodel)
135 CALL hm_get_floatv(
'FScale11' ,fac1 ,is_available, lsubmodel, unitab)
136 CALL hm_get_floatv('fscale22
' ,FAC2 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
137 CALL HM_GET_FLOATV('fscale33
' ,FAC3 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
139 CALL HM_GET_FLOATV('mat_epsr1
' ,EMX11 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
140 CALL HM_GET_FLOATV('mat_epsr2
' ,EMX22 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
141 CALL HM_GET_FLOATV('mat_epsr3
' ,EMX33 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
143 CALL HM_GET_INTV ('fun_a3
' ,I12 ,IS_AVAILABLE, LSUBMODEL)
144 CALL HM_GET_INTV ('fun_b3
' ,I23 ,IS_AVAILABLE, LSUBMODEL)
145 CALL HM_GET_INTV ('fun_a4
' ,I31 ,IS_AVAILABLE, LSUBMODEL)
146 CALL HM_GET_INTV ('vflag
' ,IF2 ,IS_AVAILABLE, LSUBMODEL)
147 CALL HM_GET_FLOATV('fscale12
' ,FAC4 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
148 CALL HM_GET_FLOATV('fscale23
' ,FAC5 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
149 CALL HM_GET_FLOATV('fscale31
' ,FAC6 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
151 CALL HM_GET_FLOATV('mat_epsr4
' ,EMX12 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
152 CALL HM_GET_FLOATV('mat_epsr5
' ,EMX23 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
153 CALL HM_GET_FLOATV('mat_epsr6
' ,EMX31 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
155 CALL HM_GET_INTV ('fun_b4
' ,I21 ,IS_AVAILABLE, LSUBMODEL)
156 CALL HM_GET_INTV ('fun_b5
' ,I32 ,IS_AVAILABLE, LSUBMODEL)
157 CALL HM_GET_INTV ('fun_b6
' ,I13 ,IS_AVAILABLE, LSUBMODEL)
158 CALL HM_GET_FLOATV('fscale21
' ,FAC7 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
159 CALL HM_GET_FLOATV('fscale32
' ,FAC8 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
160 CALL HM_GET_FLOATV('fscale13
' ,FAC9 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
162 CALL HM_GET_INTV ('mat_yfun11_2
' ,J11 ,IS_AVAILABLE, LSUBMODEL)
163 CALL HM_GET_INTV ('mat_yfun22_2
' ,J22 ,IS_AVAILABLE, LSUBMODEL)
164 CALL HM_GET_INTV ('mat_yfun33_2
' ,J33 ,IS_AVAILABLE, LSUBMODEL)
165 CALL HM_GET_FLOATV('fscale11_2
' ,FAC10 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
166 CALL HM_GET_FLOATV('fscale22_2
' ,FAC11 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
167 CALL HM_GET_FLOATV('fscale33_2
' ,FAC12 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
169 CALL HM_GET_FLOATV('mat_eps11_2
' ,EMF11 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
170 CALL HM_GET_FLOATV('mat_eps22_2
' ,EMF22 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
171 CALL HM_GET_FLOATV('mat_eps33_2
' ,EMF33 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
173 CALL HM_GET_INTV ('mat_yfun12_2
' ,J12 ,IS_AVAILABLE, LSUBMODEL)
174 CALL HM_GET_INTV ('mat_yfun23_2
' ,J23 ,IS_AVAILABLE, LSUBMODEL)
175 CALL HM_GET_INTV ('mat_yfun31_2
' ,J31 ,IS_AVAILABLE, LSUBMODEL)
176 CALL HM_GET_FLOATV('fscale12_2
' ,FAC13 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
177 CALL HM_GET_FLOATV('fscale23_2
' ,FAC14 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
178 CALL HM_GET_FLOATV('fscale31_2
' ,FAC15 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
180 CALL HM_GET_FLOATV('mat_eps12_2
' ,EMF12 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
181 CALL HM_GET_FLOATV('mat_eps23_2
' ,EMF23 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
182 CALL HM_GET_FLOATV('mat_eps31_2
' ,EMF31 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
184 CALL HM_GET_INTV ('mat_yfun21_2
' ,J21 ,IS_AVAILABLE, LSUBMODEL)
185 CALL HM_GET_INTV ('mat_yfun32_2
' ,J32 ,IS_AVAILABLE, LSUBMODEL)
186 CALL HM_GET_INTV ('mat_yfun13_2
' ,J13 ,IS_AVAILABLE, LSUBMODEL)
187 CALL HM_GET_FLOATV('fscale21_2
' ,FAC16 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
188 CALL HM_GET_FLOATV('fscale32_2
' ,FAC17 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
189 CALL HM_GET_FLOATV('fscale13_2
' ,FAC18 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
191 CALL HM_GET_FLOATV_DIM('fscale11
' ,FAC_UNIT,IS_AVAILABLE, LSUBMODEL, UNITAB)
194 IF(RHOR == ZERO)RHOR=RHO0
197 IF (FAC1 == ZERO) FAC1 = ONE*FAC_UNIT
198 IF (FAC2 == ZERO) FAC2 = ONE*FAC_UNIT
199 IF (FAC3 == ZERO) FAC3 = ONE*FAC_UNIT
200 IF (FAC4 == ZERO) FAC4 = ONE*FAC_UNIT
201 IF (FAC5 == ZERO) FAC5 = ONE*FAC_UNIT
202 IF (FAC6 == ZERO) FAC6 = ONE*FAC_UNIT
203 IF (FAC7 == ZERO) FAC7 = ONE*FAC_UNIT
204 IF (FAC8 == ZERO) FAC8 = ONE*FAC_UNIT
205 IF (FAC9 == ZERO) FAC9 = ONE*FAC_UNIT
206 IF (FAC10== ZERO) FAC10 = ONE*FAC_UNIT
207 IF (FAC11== ZERO) FAC11 = ONE*FAC_UNIT
208 IF (FAC12== ZERO) FAC12 = ONE*FAC_UNIT
209 IF (FAC13== ZERO) FAC13 = ONE*FAC_UNIT
210 IF (FAC14== ZERO) FAC14 = ONE*FAC_UNIT
211 IF (FAC15== ZERO) FAC15 = ONE*FAC_UNIT
212 IF (FAC16== ZERO) FAC16 = ONE*FAC_UNIT
213 IF (FAC17== ZERO) FAC17 = ONE*FAC_UNIT
214 IF (FAC18== ZERO) FAC18 = ONE*FAC_UNIT
231 IF(UPARAM(9) == ZERO)UPARAM(9) =INFINITY
232 IF(UPARAM(10) == ZERO)UPARAM(10)=INFINITY
233 IF(UPARAM(11) == ZERO)UPARAM(11)=INFINITY
234 IF(UPARAM(12) == ZERO)UPARAM(12)=INFINITY
235 IF(UPARAM(13) == ZERO)UPARAM(13)=INFINITY
236 IF(UPARAM(14) == ZERO)UPARAM(14)=INFINITY
243 IF(UPARAM(15) == ZERO)UPARAM(15)=INFINITY
244 IF(UPARAM(16) == ZERO)UPARAM(16)=INFINITY
245 IF(UPARAM(17) == ZERO)UPARAM(17)=INFINITY
246 IF(UPARAM(18) == ZERO)UPARAM(18)=INFINITY
247 IF(UPARAM(19) == ZERO)UPARAM(19)=INFINITY
248 IF(UPARAM(20) == ZERO)UPARAM(20)=INFINITY
268 PARMAT(1)= MAX(E11,E22,E33,G12,G23,G31)
298 !Formulation for solid elements time step computation.
299 DMIN = MIN(E11*E22, E22*E33,E11*E33)
300 DMAX = MAX(E11,E22,E33)
302 PARMAT(17) = DMIN/DMAX/DMAX
304 CALL INIT_MAT_KEYWORD(MATPARAM,"COMPRESSIBLE")
305 CALL INIT_MAT_KEYWORD(MATPARAM,"HOOK")
306 CALL INIT_MAT_KEYWORD(MATPARAM,"ORTHOTROPIC")
307 ! Properties compatibility
308 CALL INIT_MAT_KEYWORD(MATPARAM,"SOLID_ORTHOTROPIC")
311 WRITE(IOUT,1001) TRIM(TITR),MAT_ID,68
314 WRITE(IOUT,'(5x,a,//)
')'confidential data
'
316 WRITE(IOUT,1002) RHO0
317 WRITE(IOUT,1100)E11,E22,E33,G12,G23,G31,
318 . I11,I22,I33,I12,I23,I31,I21,I32,I13,
319 . FAC1,FAC2,FAC3,FAC4,FAC5,FAC6,FAC7,FAC8,FAC9,
320 . J11,J22,J33,J12,J23,J31,J21,J32,J13,
321 . FAC10,FAC11,FAC12,FAC13,FAC14,FAC15,FAC16,FAC17,FAC18
322 IF(IF1+IF2/=0)WRITE(IOUT,1200)IF1,IF2
323 IF(EMX11+EMX22+EMX33+EMX12+EMX23+EMX31/=0)WRITE(IOUT,1300)
324 . EMX11,EMX22,EMX33,EMX12,EMX23,EMX31
331 & 5X,40H HONEYCOMS LAW - COSSERA FORMULATION ,/,
332 & 5X,40H ----------------------------------- ,//)
335 & 5X,'material number . . . . . . . . . . . . =
',I10/,
336 & 5X,'material law. . . . . . . . . . . . . . =
',I10/)
338 & 5X,'initial density . . . . . . . . . . . . =
',1PG20.13/)
340 & 5X,'e11 . . . . . . . . . . . . . . . . . .=
',1PG20.13/
341 & 5X,'e22 . . . . . . . . . . . . . . . . . .=
',1PG20.13/
342 & 5X,'e33 . . . . . . . . . . . . . . . . . .=
',1PG20.13/
343 & 5X,'g12 . . . . . . . . . . . . . . . . . .=
',1PG20.13/
344 & 5X,'g23 . . . . . . . . . . . . . . . . . .=
',1PG20.13/
345 & 5X,'g31 . . . . . . . . . . . . . . . . . .=
',1PG20.13/
346 & 5X,'initial stress curves . . . . . . . . .=
',/
347 & 5X,'yield stress 11
FUNCTION number . . . .=
',I10/
348 & 5X,'yield stress 22 function number . . . .=
',I10/
349 & 5X,'yield stress 33 function number . . . .=
',I10/
350 & 5X,'yield stress 12 function number . . . .=
',I10/
351 & 5X,'yield stress 23 function number . . . .=
',I10/
352 & 5X,'yield stress 31 function number . . . .=
',I10/
353 & 5X,'yield stress 21 function number . . . .=
',I10/
354 & 5X,'yield stress 32 function number . . . .=
',I10/
355 & 5X,'yield stress 13 function number . . . .=
',I10/
356 & 5X,'function 11 scale factor . . . . . . . =
',1PG20.13/
357 & 5X,'function 22 scale factor . . . . . . . =
',1PG20.13/
358 & 5X,'function 33 scale factor . . . . . . . =
',1PG20.13/
359 & 5X,'function 12 scale factor . . . . . . . =
',1PG20.13/
360 & 5X,'function 23 scale factor . . . . . . . =
',1PG20.13/
361 & 5X,'function 31 scale factor . . . . . . . =
',1PG20.13/
362 & 5X,'function 21 scale factor . . . . . . . =
',1PG20.13/
363 & 5X,'function 32 scale factor . . . . . . . =
',1PG20.13/
364 & 5X,'function 13 scale factor . . . . . . . =
',1PG20.13/
365 & 5X,'residual stress curves . . . . . . . . .=
',/
366 & 5X,'yield stress 11 function number . . . .=
',I10/
367 & 5X,'yield stress 22 function number . . . .=
',I10/
368 & 5X,'yield stress 33 function number . . . .=
',I10/
369 & 5X,'yield stress 12 function number . . . .=
',I10/
370 & 5X,'yield stress 23 function number . . . .=
',I10/
371 & 5X,'yield stress 31 function number . . . .=
',I10/
372 & 5X,'yield stress 21 function number . . . .=
',I10/
373 & 5X,'yield stress 32 function number . . . .=
',I10/
374 & 5X,'yield stress 13 function number . . . .=
',I10/
375 & 5X,'function 11 scale factor . . . . . . . =
',1PG20.13/
376 & 5X,'function 22 scale factor . . . . . . . =
',1PG20.13/
377 & 5X,'function 33 scale factor . . . . . . . =
',1PG20.13/
378 & 5X,'function 12 scale factor . . . . . . . =
',1PG20.13/
379 & 5X,'function 23 scale factor . . . . . . . =',1pg20.13/
380 & 5x,
'FUNCTION 31 SCALE FACTOR . . . . . . . =',1pg20.13/
381 & 5x,
'FUNCTION 21 SCALE FACTOR . . . . . . . =',1pg20.13/
382 & 5x,
'FUNCTION 32 SCALE FACTOR . . . . . . . =',1pg20.13/
383 & 5x,
'FUNCTION 13 SCALE FACTOR . . . . . . . =',1pg20.13//)
385 & 5x,
'YIELD FUNCTION 11,22,33 FLAG . . . . .=',i10/
386 & 5x,
'YIELD FUNCTION 12,23,31 FLAG . . . . .=',i10//)
388 & 5x,
'TENSION FAILURE STRAIN 11 . . . . . . .=',1pg20.13/
389 & 5x,
'TENSION FAILURE STRAIN 22 . . . . . . .=',1pg20.13/
390 & 5x,
'TENSION FAILURE STRAIN 33 . . . . . . .=',1pg20.13/
391 & 5x,
'SHEAR FAILURE STRAIN 12 . . . . . . . .=',1pg20.13/
392 & 5x,
'SHEAR FAILURE STRAIN 23 . . . . . . . .=',1pg20.13/
393 & 5x,
'SHEAR FAILURE STRAIN 31 . . . . . . . .=',1pg20.13//)