39 . UPARAM ,MAXUPARAM,NUPARAM ,NUVAR ,MTAG ,
40 . PARMAT ,UNITAB ,PM ,LSUBMODEL,ISRATE ,
41 . MAT_ID ,TITR ,MATPARAM )
54#include "implicit_f.inc"
63 TYPE (UNIT_TYPE_),
INTENT(IN) :: UNITAB
64 INTEGER,
INTENT(IN) :: MAT_ID,MAXUPARAM
65 my_real,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: PM
66 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
67 INTEGER,
INTENT(INOUT) :: ISRATE
68 INTEGER,
INTENT(OUT) :: NUPARAM,NUVAR
69 my_real,
DIMENSION(MAXUPARAM) ,
INTENT(INOUT) :: uparam
70 my_real,
DIMENSION(100),
INTENT(OUT) :: parmat
73TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
77 INTEGER ILAW, IRATE, DTYPE, DFLAG, IREG, IDEL
80 . rho0,young,nu,g,g2,lam,bulk,fcut,fc,ft,
81 . ah,bh,ch,dh,hp,as,qh0,ecc,m0,wf,wf1,ft1,df,bs,
84 . fc0,epst0,epstmax,deltas,betas,epsc0,epscmax,alphas,gammas
86 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
88 IS_ENCRYPTED = .false.
89 is_available = .false.
96 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available,lsubmodel,unitab)
98 CALL hm_get_floatv(
'MAT_E' ,young ,is_available,lsubmodel,unitab)
99 CALL hm_get_floatv(
'MAT_NU' ,nu ,is_available,lsubmodel,unitab)
100 CALL hm_get_intv (
'IDEL' ,idel ,is_available,lsubmodel)
101 CALL hm_get_intv (
'IRATE' ,irate ,is_available,lsubmodel)
102 CALL hm_get_floatv(
'FCUT' ,fcut ,is_available,lsubmodel,unitab)
104 CALL hm_get_floatv(
'MAT_ECC' ,ecc ,is_available,lsubmodel,unitab)
105 CALL hm_get_floatv(
'MAT_QH0' ,qh0 ,is_available,lsubmodel,unitab)
106 CALL hm_get_floatv(
'MAT_FT' ,ft ,is_available,lsubmodel,unitab)
107 CALL hm_get_floatv(
'MAT_FC' ,fc ,is_available,lsubmodel,unitab)
108 CALL hm_get_floatv(
'MAT_HP' ,hp ,is_available,lsubmodel,unitab)
110 CALL hm_get_floatv(
'MAT_AH' ,ah ,is_available,lsubmodel,unitab)
111 CALL hm_get_floatv(
'MAT_BH' ,bh ,is_available,lsubmodel,unitab)
112 CALL hm_get_floatv(
'MAT_CH' ,ch ,is_available,lsubmodel,unitab)
113 CALL hm_get_floatv(
'MAT_DH' ,dh ,is_available,lsubmodel,unitab)
115 CALL hm_get_floatv(
'MAT_AS' ,as ,is_available,lsubmodel,unitab)
116 CALL hm_get_floatv(
'MAT_BS' ,bs ,is_available,lsubmodel,unitab)
117 CALL hm_get_floatv(
'MAT_DF' ,df ,is_available,lsubmodel,unitab)
118 CALL hm_get_intv (
'DFLAG' ,dflag ,is_available,lsubmodel)
119 CALL hm_get_intv (
'DTYPE' ,dtype ,is_available,lsubmodel)
120 CALL hm_get_intv (
'IREG' ,ireg ,is_available,lsubmodel)
122 CALL hm_get_floatv(
'MAT_WF' ,wf ,is_available,lsubmodel,unitab)
123 CALL hm_get_floatv(
'MAT_WF1' ,wf1 ,is_available,lsubmodel,unitab)
124 CALL hm_get_floatv(
'MAT_FT1' ,ft1 ,is_available,lsubmodel,unitab)
125 CALL hm_get_floatv(
'MAT_EFC' ,efc ,is_available,lsubmodel,unitab)
131 IF (nu < zero .OR. nu >= half)
THEN
134 . anmode=aninfo_blind_2,
140 g2 = young / (one + nu)
142 lam = g2 * nu /(one - two*nu)
143 bulk = third * young / (one - nu*two)
145 IF (wf1 == zero)
THEN
149 IF (ft1 == zero)
THEN
153 IF (qh0 == zero)
THEN
174 IF (efc == zero)
THEN
185 IF (ecc == zero)
THEN
186 epsi = ft*((1.16d0*fc)**2 - fc**2)/(1.16d0*fc*(fc**2-ft**2))
187 ecc = (one + epsi)/(two - epsi)
190 m0 = three*(((fc**2)-(ft**2))/(fc*ft))*(ecc/(ecc + one))
192 IF (idel == 0) idel = 1
196 IF (dflag == 0) dflag = 1
197 dflag =
min(
max(1,dflag),4)
199 IF (dtype == 0) dtype = 2
200 dtype =
min(
max(1,dtype),3)
202 IF (ireg == 0) ireg = 2
206 fc0 = ten*ep06*unitab%FAC_T_WORK*unitab%FAC_T_WORK*unitab%FAC_L_WORK/unitab%FAC_M_WORK
208 epst0 = 30.0d0*em06*unitab%FAC_T_WORK
209 epstmax = one*unitab%FAC_T_WORK
210 deltas = one / (one + eight*(fc/fc0))
211 betas = exp(six*deltas - two)
213 epsc0 = 30.0d0*em06*unitab%FAC_T_WORK
214 epscmax = 30.0d0*unitab%FAC_T_WORK
215 alphas = one / (five + nine*(fc/fc0))
216 gammas = exp(6.156d0*alphas - two)
218 IF (irate == 0) irate = 1
224 IF (fcut == zero)
THEN
225 fcut = 10000.0d0*unitab%FAC_T_WORK
293 pm(27) = sqrt((bulk + four_over_3*g)/rho0)
308 mtag%G_DMG = 1 + matparam%NMOD
309 mtag%L_DMG = 1 + matparam%NMOD
311 ALLOCATE(matparam%MODE(matparam%NMOD))
312 matparam%MODE(1) =
"Tension damage"
313 matparam%MODE(2) =
"Compression damage"
326 WRITE(iout,1000) trim(titr),mat_id,ilaw
328 IF (is_encrypted)
THEN
329 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
331 WRITE(iout,1200) rho0
332 WRITE(iout,1300) young,nu
333 WRITE(iout,1400) irate
334 IF (irate > 0)
WRITE(iout,1500) fcut
335 WRITE(iout,1600) ecc,qh0,ft,fc,hp
336 WRITE(iout,1700) ah,bh,ch,dh
337 WRITE(iout,1800) as,df,bs
338 WRITE(iout,1900) dflag
339 WRITE(iout,2000) dtype
340 WRITE(iout,2100) ireg
341 WRITE(iout,2200) wf,wf1,ft1,efc
342 WRITE(iout,2300) idel
347 & 5x,
'MATERIAL NUMBER. . . . . . . . . . . . =',i10/,
348 & 5x,
'MATERIAL LAW . . . . . . . . . . . . . =',i10/)
350 & 5x,
'-----------------------------------------------------------',/
351 & 5x,
' CONCRETE DAMAGE PLASTICITY MODEL 2 ',/,
352 & 5x,
'-----------------------------------------------------------',/)
354 & 5x,
'INITIAL DENSITY . . . . . . . . . . . . . . . . . . . . . . .=',1pg20.13/
356 & 5x,
'YOUNG (YOUNG MODULUS) . . . . . . . . . . . . . . . . . . . .=',1pg20.13/
357 & 5x,
'NU (POISSON RATIO). . . . . . . . . . . . . . . . . . . . . .=',1pg20
359 & 5x,
'STRAIN RATE EFFECT FLAG IRATE . . . . . . . . . . . . . . . .=',i3/
360 & 5x,
' 1: NO STRAIN RATE EFFECT (DEFAULT) '/
361 & 5x,
' 2: STRAIN RATE EFFECT ACTIVATED '/)
363 & 5x,
'STRAIN RATE FILTERING CUTOFF FREQUENCY. . . . . . . . . . . .=',1pg20.13/)
365 & 5x,
'ECC (ECCENTRICITY). . . . . . . . . . . . . . . . . . . . . .=',1pg20
366 & 5x,
'QH0 (INITIAL HARDENING) . . . . . . . . . . . . . . . . . . .=',1pg20.13/
367 & 5x,
'FT (UNIAXIAL TENSION STRENGTH) . . . . . . . . . . . . . . .='
368 & 5x,
'FC (UNIAXIAL COMPRESSION STRENGTH) . . . . . . . . . . . . .=',1pg20.13/
369 & 5x,
'HP (HARDENING MODULUS) . . . . . . . . . . . . . . . . . . .=',1pg20.13/)
371 & 5x,
'AH (HARDENING DUCTILITY PARAM 1) . . . . . . . . . . . . . .=',1pg20.13/
372 & 5x,
'BH (HARDENING DUCTILITY PARAM 2) . . . . . . . . . . . . . .=',1pg20.13/
373 & 5x,
'CH (HARDENING DUCTILITY PARAM 3) . . . . . . . . . . . . . .=',1pg20.13/
374 & 5x,
'DH (HARDENING DUCTILITY PARAM 4) . . . . . . . . . . . . . .=',1pg20.13/)
376 & 5x,
'AS (DAMAGE DUCTILITY MEASURE). . . . . . . . . . . . . . . .=',1pg20.13/
377 & 5x,
'DF (DILATION CONSTANT) . . . . . . . . . . . . . . . . . . .=',1pg20.13/
378 & 5x,
'BS (DAMAGE DUCTILITY PARAMETER). . . . . . . . . . . . . . .=',1pg20.13/)
380 & 5x,
'DFLAG (DAMAGE FLAG) . . . . . . . . . . . . . . . . . . . . .=',i3/
381 & 5x,
' 1: STANDARD MODEL WITH TWO DAMAGE VARIABLES (DEFAULT) ',/
382 & 5x,
' 2: ISOTROPIC MODEL WITH ONE DAMAGE VARIABLE ',/
383 & 5x,
' 3: MULTIPLICATIVE MODEL WITH TWO DAMAGE VARIABLES ',/
384 & 5x,
' 4: NO DAMAGE EFFECT ',/)
386 & 5x,
'DTYPE (TENSION DAMAGE SHAPE) . . . . . . . . . . . . . . . .=',i3/
387 & 5x,
' 1: LINEAR SOFTENING ',/
388 & 5x,
' 2: BILINEAR SOFTENING (DEFAULT) ',/
389 & 5x,
' 3: EXPONENTIAL SOFTENING ',/)
391 & 5x,
'ELEMENT LENGTH REGULARIZATION FLAG. . . . . . . . . . . . . .=',i3/
392 & 5x,
' 1: NO REGULARIZATION ',/
393 & 5x,
' 2: REGULARIZATION ACTIVATED (DEFAULT) ',/)
395 & 5x,
'WF (DAMAGE DISPLACEMENT THRESHOLD 0) . . . . . . . . . . . .=',1pg20.13/
396 & 5x,
'WF1 (DAMAGE DISPLACEMENT THRESHOLD 1) . . . . . . . . . . . .=',1pg20.13/
397 & 5x,
'FT1 (UNIAXIAL STRESS THRESHOLD 1) . . . . . . . . . . . . . .=',1pg20.13/
398 & 5x,
'EFC (STRAIN THRESHOLD IN COMPRESSION) . . . . . . . . . . . .=',1pg20.13/)
400 & 5x,
'ELEMENT DELETION FLAG. . . . . . .. . . . . . . . . . . . . .=',i3/
401 & 5x,
' 1: NO ELEMENT DELETION (DEFAULT) ',/
402 & 5x,
' 2: ELEMENT DELETION ACTIVATED ',/)
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)