39 . UPARAM ,MAXUPARAM,NUPARAM ,NUVAR ,MTAG ,
40 . PARMAT ,UNITAB ,PM ,LSUBMODEL,ISRATE ,
41 . ASRATE ,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
73 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
74 my_real,
INTENT(INOUT) :: asrate
78 INTEGER I,J,K,ILAW,IRATE,DTYPE,DFLAG,IREG,IDEL
81 . rho0,young,nu,a,g,g2,lam,bulk,fcut,fc,ft,gft,
82 . ah,bh,ch,dh,hp,as,qh0,ecc,m0,wf,wf1,ft1,df,bs,
85 . fc0,epst0,epstmax,deltas,betas,epsc0,epscmax,alphas,gammas
87 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
89 IS_ENCRYPTED = .false.
90 is_available = .false.
97 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available,lsubmodel,unitab)
99 CALL hm_get_floatv(
'MAT_E' ,young ,is_available,lsubmodel,unitab)
100 CALL hm_get_floatv(
'MAT_NU' ,nu ,is_available,lsubmodel,unitab)
102 CALL hm_get_intv (
'IRATE' ,irate ,is_available,lsubmodel)
103 CALL hm_get_floatv(
'FCUT' ,asrate ,is_available,lsubmodel,unitab)
105 CALL hm_get_floatv(
'MAT_ECC' ,ecc ,is_available,lsubmodel,unitab)
106 CALL hm_get_floatv(
'MAT_QH0' ,qh0 ,is_available,lsubmodel,unitab)
107 CALL hm_get_floatv(
'MAT_FT' ,ft ,is_available,lsubmodel,unitab)
108 CALL hm_get_floatv(
'MAT_FC' ,fc ,is_available,lsubmodel,unitab)
109 CALL hm_get_floatv(
'MAT_HP' ,hp ,is_available,lsubmodel,unitab)
111 CALL hm_get_floatv(
'MAT_AH' ,ah ,is_available,lsubmodel,unitab)
112 CALL hm_get_floatv(
'MAT_BH' ,bh ,is_available,lsubmodel,unitab)
113 CALL hm_get_floatv(
'MAT_CH' ,ch ,is_available,lsubmodel,unitab)
114 CALL hm_get_floatv(
'MAT_DH' ,dh ,is_available,lsubmodel,unitab)
116 CALL hm_get_floatv(
'MAT_AS' ,as ,is_available,lsubmodel,unitab)
117 CALL hm_get_floatv(
'MAT_BS' ,bs ,is_available,lsubmodel,unitab)
118 CALL hm_get_floatv(
'MAT_DF' ,df ,is_available,lsubmodel,unitab)
119 CALL hm_get_intv (
'DFLAG' ,dflag ,is_available,lsubmodel)
120 CALL hm_get_intv (
'DTYPE' ,dtype ,is_available,lsubmodel)
121 CALL hm_get_intv (
'IREG' ,ireg ,is_available,lsubmodel)
123 CALL hm_get_floatv(
'MAT_WF' ,wf ,is_available,lsubmodel,unitab)
124 CALL hm_get_floatv(
'MAT_WF1' ,wf1 ,is_available,lsubmodel,unitab)
125 CALL hm_get_floatv(
'MAT_FT1' ,ft1 ,is_available,lsubmodel,unitab)
126 CALL hm_get_floatv(
'MAT_EFC' ,efc ,is_available,lsubmodel,unitab)
132 IF (nu < zero .OR. nu >= half)
THEN
135 . anmode=aninfo_blind_2,
141 g2 = young / (one + nu)
143 lam = g2 * nu /(one - two*nu)
144 bulk = third * young / (one - nu*two)
146 IF (wf1 == zero)
THEN
150 IF (ft1 == zero)
THEN
154 IF (qh0 == zero)
THEN
175 IF (efc == zero)
THEN
186 IF (ecc == zero)
THEN
187 epsi = ft*((1.16d0*fc)**2 - fc**2)/(1.16d0*fc*(fc**2-ft**2))
188 ecc = (one + epsi)/(two - epsi)
191 m0 = three*(((fc**2)-(ft**2))/(fc*ft))*(ecc/(ecc + one))
193 IF (idel == 0) idel = 1
197 IF (dflag == 0) dflag = 1
198 dflag =
min(
max(1,dflag),4)
200 IF (dtype == 0) dtype = 2
201 dtype =
min(
max(1,dtype),3)
203 IF (ireg == 0) ireg = 2
207 fc0 = ten*ep06*unitab%FAC_T_WORK*unitab%FAC_T_WORK*unitab%FAC_L_WORK/unitab%FAC_M_WORK
209 epst0 = 30.0d0*em06*unitab%FAC_T_WORK
210 epstmax = one*unitab%FAC_T_WORK
211 deltas = one / (one + eight*(fc/fc0))
212 betas = exp(six*deltas - two)
215 epscmax = 30.0d0*unitab%FAC_T_WORK
216 alphas = one / (five + nine*(fc/fc0))
217 gammas = exp(6.156d0*alphas - two)
219 IF (irate == 0) irate = 1
225 IF (asrate == zero)
THEN
226 asrate = 10000.0d0*unitab%FAC_T_WORK
294 pm(27) = sqrt((bulk + four_over_3*g)/rho0)
309 mtag%G_DMG = 1 + matparam%NMOD
310 mtag%L_DMG = 1 + matparam%NMOD
312 ALLOCATE(matparam%MODE(matparam%NMOD))
313 matparam%MODE(1) =
"Tension damage"
314 matparam%MODE(2) =
"Compression damage"
327 WRITE(iout,1000) trim(titr),mat_id,ilaw
329 IF (is_encrypted)
THEN
330 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
332 WRITE(iout,1200) rho0
333 WRITE(iout,1300) young,nu
334 WRITE(iout,1400) irate
335 IF (irate > 0)
WRITE(iout,1500) asrate
336 WRITE(iout,1600) ecc,qh0,ft,fc,hp
337 WRITE(iout,1700) ah,bh,ch,dh
339 WRITE(iout,1900) dflag
340 WRITE(iout,2000) dtype
341 WRITE(iout,2100) ireg
342 WRITE(iout,2200) wf,wf1,ft1,efc
343 WRITE(iout,2300) idel
348 & 5x,
'MATERIAL NUMBER. . . . . . . . . . . . =',i10/,
349 & 5x,
'MATERIAL LAW . . . . . . . . . . . . . =',i10/)
351 & 5x,
'-----------------------------------------------------------',/
352 & 5x,
' CONCRETE DAMAGE PLASTICITY MODEL 2 ',/,
353 & 5x,
'-----------------------------------------------------------',/)
355 & 5x,
'INITIAL DENSITY . . . . . . . . . . . . . . . . . . . . . . .=',1pg20.13/)
357 & 5x,
'YOUNG (YOUNG MODULUS) . . . . . . . . . . . . . . . . . . . .=',1pg20.13/
358 & 5x,
'NU (POISSON RATIO). . . . . . . . . . . . . . . . . . . . . .=',1pg20.13/)
360 & 5x,
'STRAIN RATE EFFECT FLAG IRATE . . . . . . . . . . . . . . . .=',i3/
361 & 5x,
' 1: NO STRAIN RATE EFFECT (DEFAULT) '/
362 & 5x,
' 2: STRAIN RATE EFFECT ACTIVATED '/)
364 & 5x,
'STRAIN RATE FILTERING CUTOFF FREQUENCY. . . . . . . . . . . .=',1pg20.13/)
366 & 5x,
'ECC (ECCENTRICITY). . . . . . . . . . . . . . . . . . . . . .=',1pg20.13/
367 & 5x,
'QH0 (INITIAL HARDENING) . . . . . . . . . . . . . . . . . . .=',1pg20.13/
368 & 5x,
'FT (UNIAXIAL TENSION STRENGTH) . . . . . . . . . . . . . . .=',1pg20.13/
369 & 5x,
'FC (UNIAXIAL COMPRESSION STRENGTH) . . . . . . . . . . . . .=',1pg20.13/
370 & 5x,
'HP (HARDENING MODULUS) . . . . . . . . . . . . . . . . . . .=',1pg20.13/)
372 & 5x,
'AH (HARDENING DUCTILITY PARAM 1) . . . . . . . . . . . . . .=',1pg20.13/
373 & 5x,
'BH (HARDENING DUCTILITY PARAM 2) . . . . . . . . . . . . . .=',1pg20.13/
374 & 5x,
'CH (HARDENING DUCTILITY PARAM 3) . . . . . . . . . . . . . .=',1pg20.13/
375 & 5x,
'DH (HARDENING DUCTILITY PARAM 4) . . . . . . . . . . . . . .=',1pg20.13/)
377 & 5x,
'AS (DAMAGE DUCTILITY MEASURE). . . . . . . . . . . . . . . .=',1pg20.13/
378 & 5x,
'DF (DILATION CONSTANT) . . . . . . . . . . . . . . . . . . .=',1pg20.13/
379 & 5x,
'BS (DAMAGE DUCTILITY PARAMETER). . . . . . . . . . . . . . .=',1pg20.13/)
381 & 5x,
'DFLAG (DAMAGE FLAG) . . . . . . . . . . . . . . . . . . . . .=',i3/
382 & 5x,
' 1: STANDARD MODEL WITH TWO DAMAGE VARIABLES (DEFAULT) ',/
383 & 5x,
' 2: ISOTROPIC MODEL WITH ONE DAMAGE VARIABLE ',/
384 & 5x,
' 3: MULTIPLICATIVE MODEL WITH TWO DAMAGE VARIABLES ',/
385 & 5x,
' 4: NO DAMAGE EFFECT ',/)
387 & 5x,
'DTYPE (TENSION DAMAGE SHAPE) . . . . . . . . . . . . . . . .=',i3/
388 & 5x,
' 1: LINEAR SOFTENING ',/
389 & 5x,
' 2: BILINEAR SOFTENING (DEFAULT) ',/
390 & 5x,
' 3: EXPONENTIAL SOFTENING ',/)
392 & 5x,
'ELEMENT LENGTH REGULARIZATION FLAG. . . . . . . . . . . . . .=',i3/
393 & 5x,
' 1: NO REGULARIZATION ',/
394 & 5x,
' 2: REGULARIZATION ACTIVATED (DEFAULT) ',/)
396 & 5x,
'WF (DAMAGE DISPLACEMENT THRESHOLD 0) . . . . . . . . . . . .=',1pg20
397 & 5x,
'WF1 (DAMAGE DISPLACEMENT THRESHOLD 1) . . . . . . . . . . . .=',1pg20.13/
398 & 5x,
'FT1 (UNIAXIAL STRESS THRESHOLD 1) . . . . . . . . . . . . . .=',1pg20.13/
399 & 5x,
'EFC (STRAIN THRESHOLD IN COMPRESSION) . . . . . . . . . . . .=',1pg20.13/)
401 & 5x,
'ELEMENT DELETION FLAG. . . . . . .. . . . . . . . . . . . . .=',i3/
402 & 5x,
' 1: NO ELEMENT DELETION (DEFAULT) ',/
403 & 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)