39 . UPARAM ,MAXUPARAM,NUPARAM ,NUVAR ,NFUNC ,
40 . PARMAT ,UNITAB ,PM ,MAT_ID ,TITR ,
41 . IMATVIS ,LSUBMODEL,MATPARAM )
64#include "implicit_f.inc"
73 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
74 INTEGER,
INTENT(IN) :: MAT_ID,MAXUPARAM
75 my_real,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: PM
76 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
77 INTEGER,
INTENT(INOUT) :: NUPARAM,NUVAR,NFUNC,IMATVIS
78 my_real,
DIMENSION(MAXUPARAM) ,
INTENT(INOUT) :: uparam
79 my_real,
DIMENSION(100),
INTENT(INOUT) :: parmat
81 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
85 INTEGER :: J,NORDER,NVISC,FLAG_VISC,IVISC,ILAW,ITAG,
87 my_real :: RHO0,RHOR,GAMMAINF,NUG,SUM,GS,VISCMAX,BULK
88 my_real,
DIMENSION(100) :: mu,al,gama,taux,nu,beta
89 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
91 is_encrypted = .false.
92 is_available = .false.
104 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
105 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
107 CALL hm_get_floatv(
'MAT_NU' ,nug ,is_available, lsubmodel, unitab)
108 CALL hm_get_intv (
'ORDER' ,norder ,is_available,lsubmodel)
109 CALL hm_get_intv (
'Order2' ,nvisc ,is_available,lsubmodel)
110 CALL hm_get_floatv(
'MU' ,viscmax ,is_available, lsubmodel, unitab)
111 CALL hm_get_intv (
'Vflag' ,flag_visc ,is_available,lsubmodel)
112 CALL hm_get_intv (
'Rflag' ,flag_rigidity ,is_available,lsubmodel)
124 . anmode=aninfo_blind_1,
141 IF(nu(j) /= zero) itag = 1
142 IF (nu(j) >= half) nu(j) = zep499
148 IF (rhor == zero) rhor = rho0
151 IF (al(j) == zero) al(j) = one
158 IF (taux(j) <= zero) taux(j) = ep20
159 IF (gama(j) > one .OR. gama(j) < zero)
THEN
162 . anmode=aninfo_blind_1,
170 IF(gammainf <= zero )
THEN
173 . anmode=aninfo_blind_1,
179 IF (nug >= half) nug = zep499
180 IF (viscmax == zero) viscmax=ep20
182 IF(nvisc > 0 .AND. flag_rigidity == 2)
THEN
184 mu(j)= mu(j)/ gammainf
202 beta(j) = nu(j)/(one - two*nu(j))
203 bulk = bulk + two*mu(j)*(third + beta(j))
205 nug = half*(three*bulk - two*gs)/(three*bulk+ gs)
207 beta(1:norder) = nug/(one - two*nug)
208 bulk = two_third*gs*(one + nug)/
max(em20,(one - two
213 IF (flag_visc == 1) ivisc = 2
217 flag_visc =
min(flag_visc, 2)
226 uparam(6 + j ) = mu(j)
227 uparam(6 + norder + j) = al(j)
231 uparam(6 + norder*2 + j) = gama(j)
232 uparam(6 + norder*2 + nvisc + j) = taux(j)
235 nuparam = 6 + 2*norder + 2*nvisc + 1
236 uparam(nuparam) = ivisc
239 uparam(nuparam + j ) = beta(j)
241 nuparam = nuparam + norder
245 parmat(2) = gs*(one + nug)
248 parmat(17) = gs/(bulk + two_third*gs)
276 WRITE(iout,1100) trim(titr),mat_id,62
279 SELECT CASE (flag_rigidity)
282 WRITE(iout,1010)flag_rigidity
284 WRITE(iout,1020)flag_rigidity
287 IF (is_encrypted)
THEN
288 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
290 WRITE(iout,1200) rho0
292 WRITE(iout,1300) nug,gs*half,viscmax,norder
293 WRITE(iout,1400) (mu(j),al(j),nu(j),j=1,norder)
295 WRITE(iout,1500) nvisc
296 IF (nvisc /= zero)
WRITE(iout,1600)(gama(j),taux(j),j=1,nvisc)
297 WRITE(iout,1700) flag_visc
304 & (5x,
'MATERIAL MODEL : VISCO HYPERELASTIC',/,
305 & 5x,
'-----------------------------------',/)
308 & 5x,
'MATERIAL NUMBER . . . . . . . . . . . .=',i10/,
309 & 5x,
'MATERIAL LAW. . . . . . . . . . . . . .=',i10/)
311 & 5x,
'INITIAL DENSITY . . . . . . . . . . . .=',1pg20.13/)
313 &(5x,
'EQUIVALENT POISSON RATIO . . . . . . .=',e12.4/
314 &,5x,
'INITIAL SHEAR MODULUS . . . . . . . . .=',e12.4/
315 & 5x,
'MAXIMUM VISCOSITY. . . . .. . . . . . .=',e12.4//
316 &,5x,
'ORDER OF STRAIN ENERGY. . . . . . . . .=',i8)
318 & 7x,
'MATERIAL PARAMETER (MU). . . . . . . . =',e12.4/
319 & 7x,'material parameter(
alpha) . . . . . . =
',E12.4/
320 & 7X,'material parameter(nu) . . . . . . . =
',E12.4/)
322 & 5X,'order of maxwell model . . . . . . . . =
',I8 )
324 & 7X,'stiffness ratio. . . . . . . . . . .. .=
',E12.4/
325 & 7X,'relaxation time . . . . . . . . . . . =
',E12.4)
327 & 5X,'viscous stress formulation . . . . . . =
',I8 /
328 &10X,' 0 : viscous stress is deviatoric
' , /
329 &10X,' 1 : viscous stress is spherical and deviatoric
' )
331 & 5X,'long-term rigidity flag . . . . . =
',I8 /
332 & 5X,'initial elastic modulus is
the instantaneous rigidity
' , / )
334 & 5X,'long-term rigidity flag . . . . . =
',I8 /
335 & 5X,' initial elastic modulus is
the long-term rigidity.
',/
336 & 5X,' the mu
VALUE are updated
' , / )
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)