40 . MATPARAM ,NUVAR ,MAXFUNC ,NFUNC ,IFUNC ,
41 . PARMAT ,IMATVIS ,UNITAB ,LSUBMODEL,ID ,
58#include "implicit_f.inc"
67 INTEGER,
INTENT(IN) :: ID
68 INTEGER,
INTENT(IN) :: MAXFUNC
69 INTEGER,
INTENT(INOUT) :: NUVAR
70 INTEGER,
INTENT(INOUT) :: NFUNC
71 INTEGER,
INTENT(INOUT) :: IMATVIS
72 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
73 my_real,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: pm
74 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
75 INTEGER,
DIMENSION(MAXFUNC) ,
INTENT(INOUT) :: IFUNC
76 my_real,
DIMENSION(100),
INTENT(INOUT) :: parmat
78 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
82 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
83 INTEGER :: I,IFORM,IFUNC_BLK,NPRONY,NUPARAM,NIPARAM,NORDER,ILAW
84 my_real :: RHO0,RHOR,BULK,SMAX,GS,MU0,NU,GVMAX,C1,ZEP495,FSCAL,FSCAL_UNIT
85 my_real,
DIMENSION(10) :: mu,al
86 my_real,
DIMENSION(100) :: gi,taux
88 is_encrypted = .false.
89 is_available = .false.
96 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
97 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
99 CALL hm_get_floatv(
'MAT_NU' ,nu ,is_available, lsubmodel, unitab)
100 CALL hm_get_floatv(
'MAT_SIGCUT' ,smax ,is_available, lsubmodel, unitab)
101 CALL hm_get_intv (
'FUN_BULK' ,ifunc_blk,is_available,lsubmodel)
102 CALL hm_get_floatv(
'MAT_FScale' ,fscal ,is_available, lsubmodel, unitab)
103 CALL hm_get_intv (
'ORDER' ,nprony ,is_available,lsubmodel)
104 CALL hm_get_intv (
'IFORM' ,iform ,is_available,lsubmodel)
106 CALL hm_get_floatv(
'MAT_MUE1' ,mu(1) ,is_available, lsubmodel, unitab)
107 CALL hm_get_floatv(
'MAT_MUE2' ,mu(2) ,is_available, lsubmodel, unitab)
108 CALL hm_get_floatv(
'MAT_MUE3' ,mu(3) ,is_available, lsubmodel, unitab)
109 CALL hm_get_floatv(
'MAT_MUE4' ,mu(4) ,is_available, lsubmodel, unitab)
110 CALL hm_get_floatv(
'MAT_MUE5' ,mu(5) ,is_available, lsubmodel, unitab)
112 CALL hm_get_floatv'MAT_MUE6' ,mu(6) ,is_available, lsubmodel, unitab)
113 CALL hm_get_floatv(
'MAT_MUE7' ,mu(7) ,is_available, lsubmodel, unitab)
114 CALL hm_get_floatv(
'MAT_MUE8' ,mu(8) ,is_available, lsubmodel, unitab)
115 CALL hm_get_floatv(
'MAT_MUE9' ,mu(9) ,is_available, lsubmodel, unitab)
116 CALL hm_get_floatv(
'MAT_MUE10' ,mu(10) ,is_available, lsubmodel, unitab)
118 CALL hm_get_floatv'MAT_ALPHA11',al(1) ,is_available, lsubmodel, unitab)
119 CALL hm_get_floatv(
'MAT_ALPHA22',al(2) ,is_available, lsubmodel, unitab)
120 CALL hm_get_floatv(
'MAT_ALPHA33',al(3) ,is_available, lsubmodel, unitab)
121 CALL hm_get_floatv(
'MAT_ALPHA44',al(4) ,is_available, lsubmodel, unitab)
122 CALL hm_get_floatv(
'MAT_ALPHA55',al(5) ,is_available, lsubmodel, unitab)
124 CALL hm_get_floatv(
'MAT_ALPHA6 ',al(6) ,is_available, lsubmodel, unitab)
125 CALL hm_get_floatv(
'MAT_ALPHA7 ',al(7) ,is_available, lsubmodel, unitab)
126 CALL hm_get_floatv(
'MAT_ALPHA8 ',al(8) ,is_available, lsubmodel, unitab)
127 CALL hm_get_floatv(
'MAT_ALPHA9 ',al(9) ,is_available, lsubmodel, unitab)
128 CALL hm_get_floatv(
'MAT_ALPHA10',al(10) ,is_available, lsubmodel, unitab)
135 CALL HM_GET_FLOAT_ARRAY_INDEX('tau_arr
' ,TAUX(I),I,IS_AVAILABLE,LSUBMODEL,UNITAB)
144 IF (RHOR == ZERO) RHOR = RHO0
147 zep495 = zep4 + nine*em02 + five*em03
148 IF (nu == zero ) nu = zep495
151 IF (smax <= zero) smax = ep20
155 IF (fscal == zero) fscal = one*fscal_unit
158 IF (iform == 0) iform = 1
164 IF (nprony > 0 )
THEN
170 gvmax = gvmax + gi(i)
174!------------------------------------------------------------
177 IF (mu(i) /= zero)
THEN
186 gs = gs + mu(i)*al(i)
189 CALL ancmsg(msgid=828, msgtype=msgerror, anmode=aninfo,
196 bulk = gs*(one+nu)/
max(em20,three*(one-two*nu))
201 nuvar = 12 + 6*nprony
203 nuparam = 24 + 2*nprony
205 matparam%NIPARAM = niparam
206 matparam%NUPARAM = nuparam
207 ALLOCATE (matparam%IPARAM(niparam))
208 ALLOCATE (matparam%UPARAM(nuparam))
211 matparam%IPARAM(1) = norder
212 matparam%IPARAM(2) = nprony
213 matparam%IPARAM(3) = iform
215 matparam%UPARAM(1) = mu(1)
216 matparam%UPARAM(2) = mu(2)
217 matparam%UPARAM(3) = mu(3)
218 matparam%UPARAM(4) = mu(4)
219 matparam%UPARAM(5) = mu(5)
220 matparam%UPARAM(6) = mu(6)
221 matparam%UPARAM(7) = mu(7)
222 matparam%UPARAM(8) = mu(8)
223 matparam%UPARAM(9) = mu(9)
224 matparam%UPARAM(10) = mu(10)
225 matparam%UPARAM(11) = al(1)
226 matparam%UPARAM(12) = al(2)
227 matparam%UPARAM(13) = al(3)
228 matparam%UPARAM(14) = al(4)
229 matparam%UPARAM(15) = al(5)
230 matparam%UPARAM(16) = al(6)
231 matparam%UPARAM(17) = al(7)
232 matparam%UPARAM(18) = al(8)
233 matparam%UPARAM(19) = al(9)
234 matparam%UPARAM(20) = al(10)
235 matparam%UPARAM(21) = bulk
236 matparam%UPARAM(22) = nu
237 matparam%UPARAM(23) = smax
238 matparam%UPARAM(24) = fscal
241 matparam%UPARAM(24 + i) = gi(i)
242 matparam%UPARAM(24 + nprony + i) = taux(i)
251 parmat(2) = gs*(one+nu)
254 c1 = third*gs*(one + nu)/(one - two*nu)
256 parmat(17) = gs/(c1 + two_third*gs)
276 WRITE(iout,1100) trim(titr),id,42
278 IF (is_encrypted)
THEN
279 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
281 WRITE(iout,1200) rho0
282 WRITE(iout,1300) nu,smax,ifunc_blk,fscal,iform
283 WRITE(iout,1400) norder
285 WRITE(iout,1500) i,mu(i),al(i)
287 WRITE(iout,1600) mu0,bulk
289 WRITE(iout,1700) nprony
291 WRITE(iout,1800) i,gi(i),taux(i)
299 & 5x,
'------------------------------------------',/
300 & 5x,
' MATERIAL MODEL : GREEN-ELASTIC (OGDEN) ',/,
301 & 5x,
'------------------------------------------',/)
304 & 5x,
'MATERIAL NUMBER . . . . . . . . . . . . . . . . .=',i10/,
305 & 5x,
'MATERIAL LAW. . . . . . . . . . . . . . . . . . .=',i10/)
307 & 5x,
'INITIAL DENSITY . . . . . . . . . . . . . . . . .=',1pg20.13/)
309 & 5x,
'POISSON RATIO NU. . . . . . . . . . . . . . . . .=',1pg20.13/,
310 & 5x,
'CUT-OFF STRESS IN TENSION SIGMA CUT . . . . . . .=',1pg20.13/,
311 & 5x,
'BULK FUNCTION NUMBER ID . . . . . . . . . . . . .=',i10/,
312 & 5x,
'SCALE FACTOR FOR BULK FUNCTION. . . . . . . . . .=',1pg20.13/,
313 & 5x,
'INCOMP. FORMULATION FLAG IFORM. . . . . . . . . .=',i2/,
314 & 5x,
' IFORM = 1: STANDARD STRAIN ENERGY DENSITY (DEFAULT)',/,
315 & 5x,
' IFORM = 2: MODIFIED STRAIN ENERGY DENSITY ',/)
317 & 5x,
'OGDEN MODEL PARAMETERS: ',/,
318 & 5x,
'------------------------ ',/,
320 & 5x,
'NUMBER OF TERMS IN OGDEN MODEL. . . . . . . . . .=',i8/)
322 & 5x,
'OGDEN TERM NUMBER # ' ,i8/,
323 & 5x,'ground shear modulus. . . . . . . . . . . . . . .=
',1PG20.13/,
324 & 5X,'exponent
alpha. . . . . . . . . . . . . . . . . .=
',1PG20.13/)
326 & 5X,'initial shear modulus . . . . . . . . . . . . . .=
',1PG20.13/,
327 & 5X,'bulk modulus . . . . . . . . . . . . . . . . . .=
',1PG20.13/)
329 & 5X,'prony series parameters:
',/,
330 & 5X,'------------------------
',/,
332 & 5X,'number of terms in prony series m . . . . . . . .=
',I8/)
334 & 5X,'prony term number #
' ,I8/,
335 & 5X,'shear stiffness . . . . . . . . . . . . . . . . .=',1pg20.13/,
336 & 5x,
'RELAXATION TIME . . . . . . . . . . . . . . . . .=',1pg20.13/)
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)