40 . NUVAR ,IFUNC ,MAXFUNC ,NFUNC ,PARMAT ,
41 . UNITAB ,MAT_ID ,TITR ,ISRATE ,LSUBMODEL,
71#include "implicit_f.inc"
80 TYPE (),
INTENT(IN) ::UNITAB
81 INTEGER,
INTENT(INOUT) :: IFUNC(MAXFUNC),NFUNC,MAXFUNC,MAXUPARAM,NUPARAM,NUVAR,ISRATE
82 INTEGER,
INTENT(IN) :: MAT_ID
83 my_real,
INTENT(INOUT) :: pm(npropm),parmat(100),uparam(maxuparam)
84 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
87 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
91 INTEGER :: ,IFUNN,IFUNT,
92 . RHOFLAG,ICOMP,IPLAS,VP,ILAW
93 my_real :: ,YOUNGC,G,YOUNG,FCUT,XFAC,YFAC,XSCALE,RN,RS,BETA,ALPHA,
94 . rho0,rhor,yfac_unit,
95 . xfac_unit,xscale_unit,rn_unit,rs_unit
96 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
100 is_encrypted = .false.
101 is_available = .false.
105 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
108 CALL hm_get_floatv(
'MAT_E' ,youngt ,is_available, lsubmodel, unitab)
109 CALL hm_get_floatv(
'MAT_G' ,g ,is_available, lsubmodel, unitab)
110 CALL hm_get_intv (
'MAT_IMASS' ,rhoflag ,is_available, lsubmodel)
111 CALL hm_get_intv (
'COMP_OPT' ,icomp ,is_available, lsubmodel)
112 CALL hm_get_floatv(
'MAT_ECOMP' ,youngc ,is_available, lsubmodel, unitab)
114 CALL hm_get_intv (
'FUN_A1' ,idyield ,is_available ,lsubmodel)
115 CALL hm_get_floatv(
'FScale11' ,yfac ,is_available, lsubmodel, unitab)
116 CALL hm_get_floatv(
'FScale22' ,xfac ,is_available, lsubmodel, unitab)
117 CALL hm_get_floatv(
'MAT_ALPHA' ,alpha ,is_available, lsubmodel
118 CALL hm_get_floatv(
'MAT_Beta' ,beta ,is_available, lsubmodel, unitab)
120 CALL hm_get_floatv(
'MAT_R00' ,rn ,is_available, lsubmodel, unitab)
121 CALL hm_get_floatv(
'MAT_R45' ,rs ,is_available, lsubmodel, unitab)
122 CALL hm_get_intv ('fsmooth
' ,ISRATE ,IS_AVAILABLE ,LSUBMODEL)
123 CALL HM_GET_FLOATV('fcut
' ,FCUT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
125 CALL HM_GET_INTV ('fun_a2
' ,IFUNN ,IS_AVAILABLE ,LSUBMODEL)
126 CALL HM_GET_INTV ('fun_a3
' ,IFUNT ,IS_AVAILABLE ,LSUBMODEL)
127 CALL HM_GET_FLOATV('fscale33
' ,XSCALE ,IS_AVAILABLE, LSUBMODEL, UNITAB)
129 CALL HM_GET_FLOATV_DIM('fscale11
' ,YFAC_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
130 CALL HM_GET_FLOATV_DIM('fscale22
' ,XFAC_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
131 CALL HM_GET_FLOATV_DIM('fscale33
' ,XSCALE_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
132 CALL HM_GET_FLOATV_DIM('mat_r00
' ,RN_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
133 CALL HM_GET_FLOATV_DIM('mat_r45
' ,RS_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
135 IF (RHOR == ZERO) RHOR=RHO0
139 IF (XFAC == ZERO) XFAC = ONE*XFAC_UNIT
140 IF (BETA == ZERO) BETA = TWO
141 IF (RN == ZERO) RN = ONE*RN_UNIT
142 IF (RS == ZERO) RS = ONE*RS_UNIT
144 IF (IPLAS == 0) IPLAS = 2
145 IF (ISRATE == 0) THEN
151 IF (FCUT == ZERO) FCUT = 10000.0D0*UNITAB%FAC_T_WORK
158 IF (IFUNC(3) == 0) THEN
159 CALL ANCMSG(MSGID=126, MSGTYPE=MSGERROR, ANMODE=ANINFO_BLIND_1,
165 IF (YFAC == ZERO) YFAC = ONE*YFAC_UNIT
166 IF (XSCALE == ZERO) XSCALE = ONE*XSCALE_UNIT
167 IF( G == ZERO) G = YOUNGT
168 IF (YOUNGC == ZERO) YOUNGC = YOUNGT
169 IF (ICOMP /= 1) ICOMP = 0
170 YOUNG = MAX(YOUNGT,YOUNGC)
171 ALPHA = MIN(ALPHA, ONE)
186 UPARAM(14) = VP ! total or plastic strain rate flag
191 PARMAT(1) = YOUNG/THREE
196 PARMAT(17) = ONE ! (ONE - TWO*NU)/(ONE - NU), NU=0
200 MTAG%G_PLA = 1 !global
208 CALL INIT_MAT_KEYWORD(MATPARAM,"HOOK")
209 ! Properties compatibility
210 CALL INIT_MAT_KEYWORD(MATPARAM,"SOLID_COHESIVE")
212 WRITE(IOUT,1100) TRIM(TITR),MAT_ID,83
214 IF (IS_ENCRYPTED) THEN
215 WRITE(IOUT,'(5x,a,//)
')'confidential data
'
217 WRITE(IOUT,1200) RHO0
218 WRITE(IOUT,1300) YOUNGT,YOUNGC,G,ICOMP,RHOFLAG,IDYIELD,YFAC,XFAC,ALPHA,BETA
219 WRITE(IOUT,1400)IFUNN,IFUNT,XSCALE,RN,RS,ISRATE,FCUT
230 & 5X,' connection material law 83
',/,
231 & 5X,' --------------------------
',/)
234 & 5X,'material number . . . . . . . . . . . . . . . . . .=
',I10/,
235 & 5X,'material law. . . . . . . . . . . . . . . . . . . .=
',I10/)
237 & 5X,'initial density . . . . . . . . . . . . . . . . . .=
',1PG20.13)
239 & 5X,'young modulus per thickness unit in tension . . . .=
',1PG20.13/,
240 & 5X,'young modulus per thickness unit in compression . .=
',1PG20.13/,
241 & 5X,'shear modulus per thickness unit . . . . . . . . .=
',1PG20.13/,
242 & 5X,'compression behavior(flag) . . . . . . . . . . . .=
',I10/,
243 & 5X,' = 0 => elasto-plastic
'/,
244 & 5X,' = 1 => linear elastic
'/,
245 & 5X,'density unit flag . . . . . . . . . . . . . . . . .=
',I10/,
246 & 5X,' = 0 => volume density
'/,
247 & 5X,' = 1 => surface density
'/,
248 & 5X,'yield stress
FUNCTION . . . . . . . . . . . . . . .=
',I10/,
249 & 5X,'scale factor
for yield function . . . . . . . . . .=
',1PG20.13/,
250 & 5X,'scale factor
for yield function abscissa . . . . .=
',1PG20.13/,
251 & 5X,'parameter alpha in yield function . . . . . . . . .=
',1PG20.13/,
252 & 5X,'parameter beta in yield function . . . . . . . . .=
',1PG20.13)
254 & 5X,'strain rate function in normal direction. . . . . .=
',I10/,
255 & 5X,'strain rate function in tangent direction . . . . .=
',I10/,
256 & 5X,'scale factor
for strain rate in function . . . . .=
',1PG20.13/,
257 & 5X,'rn variable . . . . . . . . . . . . . . . . . . . .=
',1PG20.13/,
258 & 5X,'rs variable . . . . . . . . . . . . . . . . . . . .=
',1PG20.13/,
259 & 5X,'strain rate filtering flag . . . . . . . . . . . .=
',I10/,
260 & 5X,'cut freq
for strain rate filtering . . . . . . . .=
',1PG20.13)
261 1500 FORMAT(5X,'using total strain rate
',/)
262 1600 FORMAT(5X,'using plastic strain rate
',/)