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
84 INTEGER,
INTENT(IN) :: MAT_ID
85 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
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
97 INTEGER I11,I22,I33,I12,I23,,I21,I32,I13,IF1,IF2
98 INTEGER J11,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)
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)
299 dmin =
min(e11*e22, e22*e33,e11*e33)
300 dmax =
max(e11,e22,e33)
302 parmat(17) = dmin/dmax/dmax
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
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//)