40 . PARMAT ,NUVAR ,MAXFUNC ,NFUNC ,IFUNC,
41 . UNITAB ,MAT_ID ,TITR ,LSUBMODEL,MATPARAM )
70#include "implicit_f.inc"
79 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
80 INTEGER,
INTENT(INOUT) :: IFUNC(MAXFUNC), NFUNC, MAXFUNC
81 INTEGER,
INTENT(INOUT) :: MAXUPARAM,
83 INTEGER,
INTENT(IN) :: MAT_ID
84 my_real,
INTENT(INOUT) :: PM(NPROPM),PARMAT(100),UPARAM(MAXUPARAM)
85 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
88 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
92 INTEGER :: NRATE,ILAW,IMASS,IDEL,IORDER1,IORDER2,
93 . IFAIL1,IFAIL2, IRUPT,ICRIT
94 my_real :: rho0,e,g,thick,gc1_ini,gc2_ini,gc1_inf,gc2_inf,ratg1,ratg2,fscalex,fscalex_unit,
95 . fg1,fg2,siga1,siga2,sigb1,sigb2,rate1,rate2,unit_l,e_elas_n,e_elas_s,tmax_n,tmax_s,
96 . gic,giic,exp_g,exp_bk,disp_0n,disp_0s,delta0n,delta0s,und,utd,gama
97 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
101 is_encrypted = .false.
102 is_available = .false.
106 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
108 CALL hm_get_intv (
'MAT_Fct_TN' ,ifunc(1) ,is_available, lsubmodel)
109 CALL hm_get_intv (
'MAT_Fct_TT' ,ifunc(2) ,is_available, lsubmodel)
110 CALL hm_get_floatv(
'MAT_Fscale_x' ,fscalex ,is_available, lsubmodel, unitab)
111 IF(fscalex == zero)
THEN
112 CALL hm_get_floatv_dim(
'MAT_Fscale_x' ,fscalex_unit ,is_available, lsubmodel, unitab
113 fscalex = fscalex_unit
115 CALL hm_get_floatv(
'MAT_E_ELAS_N' ,e_elas_n ,is_available, lsubmodel, unitab)
116 CALL hm_get_floatv(
'MAT_E_ELAS_S' ,e_elas_s ,is_available, lsubmodel, unitab)
117 CALL hm_get_floatv(
'MAT_TMAX_N' ,tmax_n ,is_available, lsubmodel, unitab)
118 CALL hm_get_floatv(
'MAT_TMAX_S' ,tmax_s ,is_available, lsubmodel, unitab
121 CALL hm_get_intv (
'MAT_IDEL' ,idel ,is_available, lsubmodel)
122 CALL hm_get_floatv(
'MAT_GIC' ,gic ,is_available, lsubmodel, unitab)
123 CALL hm_get_floatv(
'MAT_GIIC' ,giic ,is_available, lsubmodel, unitab)
125 CALL hm_get_floatv(
'MAT_EXP_G' ,exp_g ,is_available, lsubmodel, unitab)
126 CALL hm_get_floatv(
'MAT_EXP_BK' ,exp_bk ,is_available, lsubmodel, unitab)
127 CALL hm_get_floatv(
'MAT_GAMMA' ,gama ,is_available, lsubmodel, unitab)
140 IF (idel == 0) idel = 1
141 IF (imass == 0) imass = 1
142 IF (irupt == 0) irupt = 1
143 IF (gama == zero) gama = one
144 IF (exp_g == zero) exp_g = two
145 IF (e_elas_s == zero) e_elas_s = e_elas_n
146 IF ( gic < (tmax_n**2 / two/e_elas_n ) )
THEN
147 gic = tmax_n**2 / two/e_elas_n
148 CALL ancmsg(msgid=3016,msgtype=msgwarning,anmode=aninfo_blind_1,
152 IF ( giic < (tmax_s**2 / two/e_elas_s ) )
THEN
153 giic = tmax_s**2 / two/e_elas_s
154 CALL ancmsg(msgid=3017,msgtype=msgwarning,anmode=aninfo_blind_1,
162 delta0n = tmax_n/e_elas_n
163 delta0s = tmax_s/e_elas_s
165 und = two*gic /(delta0n *e_elas_n)
166 utd = two*giic/(delta0s *e_elas_s)
175 disp_0n = tmax_n/e_elas_n
176 disp_0s = tmax_s/e_elas_s
199 parmat(1) =
max(e_elas_n,e_elas_s) / three
200 parmat(2) =
max(e_elas_n,e_elas_s)
215 WRITE(iout,1100) trim(titr),mat_id,ilaw
217 IF (is_encrypted)
THEN
218 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
220 WRITE(iout,1200) rho0,e_elas_n,e_elas_s,tmax_n,tmax_s,
221 . ifunc(1),ifunc(2),fscalex,
222 . irupt,gic,giic,exp_g,exp_bk,gama
228 & 10x,
' MIXED MODE COHESIVE LAW 117 ',/,
229 & 10x,
' --------------------------- ',/)
232 & 5x,
'MATERIAL NUMBER . . . . . . . . . . . . . . .=',i10/,
233 & 5x,
'MATERIAL LAW. . . . . . . . . . . . . . . . .=',i10/)
235 & 5x,
'INITIAL DENSITY . . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
236 & 5x,
'STIFFNESS NORMAL TO THE PLANE OF THE COHESIVE ELEMENT .=',1pg20.13/,
237 & 5x,
'STIFFNESS IN TO THE PLANE OF THE COHESIVE ELEMENT . . .=',1pg20.13/,
238 & 5x,
'PEAK TRACTION IN NORMAL DIRECTION . . . . . . . . . . .=',1pg20.13/,
239 & 5x,
'PEAK TRACTION IN TANGENTIAL DIRECTION . . . . . . . . .=',1pg20.13/,
240 & 5x,
'FUNCTION OF THE PEAK TRACTION IN NORMAL DIRECTION. . . =',i10/,
241 & 5x,
'FUNCTION OF THE PEAK TRACTION IN TANGENTIAL DIRECTION .=',i10/,
242 & 5x,
'ABSCISSA SCALE FACTOR FOR THE PEAK TRACTION FUNCTIONS .=',1pg20.13/,
244 & 5x,
'CHOICE OF PROPAGATION CRITERION . . . . . . . . . . . .=',i10/,
245 & 5x,
' = 1 => POWER LAW '/,
246 & 5x,
' = 2 => BENZEGGAGH-KENANE '/,
248 & 5x,
'ENERGY RELEASE RATE FOR MODE I. . . . . . . . . . . . .=',1pg20.13/,
249 & 5x,
'ENERGY RELEASE RATE FOR MODE II . . . . . . . . . . . .=',1pg20.13/,
251 & 5x,
'POWER LAW EXPONENT MU . . . . . . . . . . . . . . . . .=',1pg20.13/,
252 & 5x,
'BENZEGGAGH-KENANE EXPONENT MU . . . . . . . . . . . . .=',1pg20.13/,
253 & 5x,
'BENZEGGAGH-KENANE EXPONENT GAMMA. . . . . . . . . . . .=',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)