40 . NUVAR ,IFUNC ,MAXFUNC ,NFUNC , PARMAT,
41 . UNITAB ,ID ,TITR ,MTAG , LSUBMODEL,
71#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) :: ISRATE,IFUNC(MAXFUNC),NFUNC,MAXFUNC,MAXUPARAM,, NUVAR
84 INTEGER,
INTENT(IN) :: ID
85 INTEGER,
INTENT(INOUT) :: IMATVIS
86 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
88 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
92 INTEGER I,BULK_FNCT,NTABLE_,NMUAL,LAWID,ILAW
93 my_real MU(5),AL(5),RHO0,RHOR
94 my_real BULK,TENSCUT,GS,NU,FSCAL,ZEP495
99 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
103 is_encrypted = .false
104 is_available = .false.
114 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
115 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
117 CALL hm_get_intv(
'MAT_Iflag' ,lawid ,is_available, lsubmodel)
118 CALL hm_get_intv(
'FUN_A1' ,bulk_fnct ,is_available, lsubmodel)
119 CALL hm_get_floatv(
'MAT_NU' ,nu ,is_available, lsubmodel, unitab)
120 CALL hm_get_floatv(
'MAT_FScale' ,fscal ,is_available, lsubmodel, unitab)
121 CALL hm_get_intv(
'NIP' ,nmual ,is_available, lsubmodel)
122 CALL hm_get_intv(
'Gflag' ,icheck ,is_available, lsubmodel)
124 CALL hm_get_intv (
'FUN_B1' ,ntable_ ,is_available, lsubmodel)
127 CALL hm_get_floatv_dim(
'MAT_FScale' ,fscal_unit ,is_available, lsubmodel, unitab)
134 zep495 = zep4 + nine*em02 + five*em03
135 IF(icheck == 0 ) icheck = -3
136 IF(nstart == 0 ) nstart = 100
137 IF(errtol == zero ) errtol = fiveem3
138 IF(nmual == 0 ) nmual = 2
139 IF(fscal == zero ) fscal = one*fscal_unit
140 IF(lawid == 0 ) lawid = -1
147 IF (ntable_ == 0)
THEN
154 IF (lawid == 0) lawid = 1
155 IF (lawid /= 1 .AND. lawid /= 2 .AND. lawid /= -1 )
THEN
171 gs = gs + mu(i)*al(i)
175 gs = gs + mu(i)*al(i)
179 IF (nu == zero ) nu = zep495
180 bulk = gs*(one+nu)/
max(em20,three*(one-two*nu))
184 parmat(2)= gs*(one+nu)
189 IF (rhor == zero) rhor=rho0
215 IF(is_encrypted)uparam(21)= one
224 WRITE(iout,1100) trim(titr),id,69
227 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
229 WRITE(iout,1200) rho0
230 IF (ntable_ /= 0)
THEN
231 WRITE(iout,
'(5X,A,//)')
'HYPERELASTIC MATERIAL CONSTANTS WILL BE DETERMINED BY NONLINEAR LEAST SQUARE FITTING '
232 WRITE(iout,1300) nu,lawid,bulk_fnct,fscal,nmual,icheck
240 & 5x,29h ---------------------------,//)
243 & 5x,
'MATERIAL NUMBER . . . . . . . . . . . .=',i10/,
244 & 5x,
'MATERIAL LAW. . . . . . . . . . . . . .=',i10/)
246 & 5x,
'INITIAL DENSITY . . . . . . . . . . . .=',1pg20.13/)
248 &(5x,
'POISSON RATIO . . . . . . . . . . . . .=',1pg20.13/
249 &,5x,
'LAW TYPE. . . . . . . . . . . . . . . .=',i10/
250 &,5x,
'BULK FUNCTION ID. . . . . . . . . . . .=',i10/
251 &,5x,
'SCALE FACTOR FOR BULK FUNCTION. . . . .=',1pg20.13/
252 &,5x,
'FIT ORDER . . . . . . . . . . . . . . .=',i10/
253 &,5x,
'ICHECK = ', i10//)
subroutine hm_read_mat69(uparam, maxuparam, nuparam, israte, imatvis, nuvar, ifunc, maxfunc, nfunc, parmat, unitab, id, titr, mtag, lsubmodel, pm, matparam)
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)
subroutine tabulated(iflag, nel, pm, off, eint, mu, espe, dvol, df, vnew, mat, psh, pnew, dpdm, dpde, npf, tf)