40 . NUVAR ,IFUNC ,MAXFUNC ,NFUNC ,PARMAT ,
41 . UNITAB ,MAT_ID ,TITR ,ISRATE ,LSUBMODEL,
71#include "implicit_f.inc"
80 TYPE (UNIT_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 :: I,J,NRATE,IFILTR,IDYIELD,IFUNN,IFUNT,
92 . RHOFLAG,ICOMP,IPLAS,VP,ILAW
93 my_real :: YOUNGT,YOUNGC,G,YOUNG,FCUT,XFAC,YFAC,XSCALE,RN,RS,BETA
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)
106 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,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)
117 CALL hm_get_floatv(
'MAT_ALPHA' ,alpha ,is_available, lsubmodel, unitab)
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)
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)
191 parmat(1) = young/three
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) . . . . . . . . . . . .='
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
',/)
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)