39 . NUVAR ,MAT_ID ,TITR ,
40 . UNITAB ,LSUBMODEL,ISRATE )
69#include "implicit_f.inc"
78 INTEGER ,
INTENT(INOUT) :: NUVAR,ISRATE
79 INTEGER ,
INTENT(IN) :: MAT_ID
80 my_real ,
INTENT(INOUT) :: pm(npropm)
81 my_real ,
INTENT(INOUT) :: parmat(100)
82 CHARACTER(LEN=NCHARTITLE),
INTENT(IN) :: TITR
83 TYPE (UNIT_TYPE_) ,
INTENT(IN) :: UNITAB
86 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
90 my_real :: n12,n21,e11,e22,g12,g23,g31,rcomp,detc,amu,c1,ssp,
91 . a11,a22,a12,zerostress,porosity,areamin1,areamin2,rhor,rho0
93 LOGICAL IS_AVAILABLE,IS_ENCRYPTED
97 is_encrypted = .false.
98 is_available = .false.
102 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available,lsubmodel,unitab)
103 CALL hm_get_floatv(
'Refer_Rho',rhor ,is_available,lsubmodel,unitab)
105 CALL hm_get_floatv(
'MAT_EA' ,e11 ,is_available,lsubmodel,unitab)
106 CALL hm_get_floatv(
'MAT_EB' ,e22 ,is_available,lsubmodel,unitab)
107 CALL hm_get_floatv(
'MAT_PRAB' ,n12 ,is_available,lsubmodel,unitab)
109 CALL hm_get_floatv(
'MAT_GAB' ,g12 ,is_available,lsubmodel,unitab)
110 CALL hm_get_floatv(
'MAT_GBC' ,g23 ,is_available,lsubmodel,unitab)
111 CALL hm_get_floatv(
'MAT_GCA' ,g31 ,is_available,lsubmodel,unitab)
113 CALL hm_get_floatv(
'MAT_REDFACT' ,rcomp ,is_available,lsubmodel,unitab)
114 CALL hm_get_floatv(
'M58_Zerostress',zerostress ,is_available,lsubmodel,unitab)
115 CALL hm_get_floatv(
'MAT_POROS' ,porosity ,is_available,lsubmodel,unitab)
116 CALL hm_get_intv (
'ISENSOR' ,isens ,is_available,lsubmodel)
125 c1 =
max(e11,e22) / detc
128 IF(e11 == zero.OR. e22 == zero .OR. g12 == zero .OR. g23 == zero .OR. g31 == zero)
THEN
129 CALL ancmsg(msgid=306, msgtype=msgerror, anmode=aninfo,
133 . c2=
'E11, E22, G12, G23, or G31')
136 IF (detc <= zero)
THEN
137 CALL ancmsg(msgid=307, msgtype=msgerror, anmode=aninfo,
142 IF (rcomp == zero) rcomp=one
143 IF (rcomp < em03)
THEN
144 CALL ancmsg(msgid=1572, msgtype=msgwarning, anmode=aninfo,
150 IF (porosity < zero .OR. porosity > one)
THEN
151 CALL ancmsg(msgid=775, msgtype=msgerror, anmode=aninfo,
156 IF (rhor == zero ) rhor=rho0
160 IF (amu == zero) amu = fourth
163 pm(20) =
max(e11,e22)/detc
164 pm(21) = sqrt(n12*n21)
165 pm(22) =
max(g12,g23,g31)
167 pm(25) = pm(21)*pm(24)
182 areamin2 = one + half*(areamin1-one)
183 IF (areamin2 > areamin1)
THEN
184 pm(54) = one / (areamin2-areamin1)
191 matparam%NUPARAM = 15
195 ALLOCATE (matparam%UPARAM(matparam%NUPARAM))
196 ALLOCATE (matparam%IPARAM(matparam%NIPARAM))
198 matparam%IPARAM(1) = isens
200 matparam%UPARAM(1) = e11
202 matparam%UPARAM(3) = n12
203 matparam%UPARAM(4) = n21
204 matparam%UPARAM(5) = g12
205 matparam%UPARAM(6) = g23
206 matparam%UPARAM(7) = g31
207 matparam%UPARAM(8) = rcomp
208 matparam%UPARAM(9) = ssp
209 matparam%UPARAM(10) = a11
210 matparam%UPARAM(11) = a22
211 matparam%UPARAM(12) = a12
212 matparam%UPARAM(13) = zero
213 matparam%UPARAM(14) = zerostress
214 matparam%UPARAM(15) = porosity
218 matparam%YOUNG =
max(e11,e22)
221 parmat(2) =
max(e11,e22)/detc
222 parmat(3) = sqrt(n12*n21)
238 WRITE(iout,1000) trim(titr),mat_id,19
240 IF (is_encrypted)
THEN
241 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
243 WRITE(iout,1200) rho0
244 WRITE(iout,1300) e11,e22,n12,g12,g23,g31,
245 . rcomp,zerostress,isens,porosity
250 & 5x,
'MATERIAL NUMBER. . . . . . . . . . . . . . . . . =',i10/,
251 & 5x,
'MATERIAL LAW . . . . . . . . . . . . . . . . . . =',i10/)
253 &(5x,
'ORTHOTROPIC MATERIAL FOR SHELLS (LAW19) ',/,
254 & 5x,
'--------------------------------------------',/)
256 & 5x,
'INITIAL DENSITY . . . . . . . . . . . . . . . .=',1pg20.13/)
258 & 5x,
'YOUNG MODULUS E11 (TENSION) . . . . . . . . . . .=',1pg20.13/
259 & 5x,
'YOUNG MODULUS E22 (TENSION) . . . . . . . . . . .=',1pg20.13/
260 & 5x,
'POISSON RATIO NU12. . . . . . . . . . . . . . . .=',1pg20.13/
261 & 5x,
'SHEAR MODULUS G12 . . . . . . . . . . . . . . . .=',1pg20.13/
262 & 5x,
'SHEAR MODULUS G23 . . . . . . . . . . . . . . . .=',1pg20.13/
263 & 5x,
'SHEAR MODULUS G31 . . . . . . . . . . . . . . . .=',1pg20.13/
264 & 5x,
'COMPRESSION REDUCTION FACTOR. . . . . . . . . . . ',/
265 & 5x,
' RCOMP=E11C/E11= E22C/E22 . . . . . . . . . .=',1pg20.13/
266 & 5x,
'REF-STATE STRESS RELAXATION FACTOR. . . . . . . .=',1pg20.13/
267 & 5x,
'REF-STATE ACTIVATION SENSOR ID. . . . . . . . . .=',1pg20.13/
268 & 5x,
'POROSITY. . . . . . . . . . . . . . . . . . . . .=',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)