40 . MAXFUNC ,IFUNC ,MTAG ,UNITAB ,
41 . LSUBMODEL,MAT_ID ,TITR )
65#include "implicit_f.inc"
74 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
75 INTEGER,
INTENT(IN) :: MAT_ID,MAXFUNC
76 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
77 INTEGER,
INTENT(INOUT) :: NUVAR,NFUNC
78 INTEGER,
DIMENSION(MAXFUNC) ,
INTENT(INOUT) :: IFUNC
81 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
85 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
86 INTEGER :: I,ILAW,ISENS
87 my_real :: rho0,kflex,kflex1,kflex2,embc,embt,zerostress,
88 . lc0,lt0,dc0,dt0,hc0,ht0,stress_unit
91 is_encrypted = .false.
92 is_available = .false.
100 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
103 CALL hm_get_floatv(
'S2' ,embt ,is_available, lsubmodel, unitab)
104 CALL hm_get_floatv(
'MAT_FLEX' ,kflex ,is_available, lsubmodel, unitab)
106 CALL hm_get_floatv(
'MAT_FLX2' ,kflex2 ,is_available, lsubmodel, unitab)
108 CALL hm_get_floatv(
'Zerostress' ,zerostress,is_available, lsubmodel, unitab)
109 CALL hm_get_intv (
'ISENSOR' ,isens ,is_available, lsubmodel)
111 CALL hm_get_intv (
'FUN_A1' ,ifunc(1) ,is_available, lsubmodel)
112 CALL hm_get_floatv(
'MAT_C1' ,yfac(1) ,is_available, lsubmodel, unitab)
114 CALL hm_get_intv (
'FUN_A2' ,ifunc(2) ,is_available, lsubmodel)
115 CALL hm_get_floatv(
'MAT_C2' ,yfac(2) ,is_available, lsubmodel, unitab)
117 CALL hm_get_intv (
'FUN_A3' ,ifunc(3) ,is_available, lsubmodel)
118 CALL hm_get_floatv(
'MAT_C3' ,yfac(3) ,is_available, lsubmodel, unitab)
120 CALL hm_get_intv (
'FUN_A4' ,ifunc(4) ,is_available, lsubmodel)
121 CALL hm_get_intv (
'FUN_A5' ,ifunc(5) ,is_available, lsubmodel)
123 IF (ifunc(1) == 0)
THEN
124 CALL ancmsg(msgid=1578 , msgtype=msgerror, anmode=aninfo_blind_2,
128 IF (ifunc(2) == 0)
THEN
129 CALL ancmsg(msgid=1579 , msgtype=msgerror, anmode=aninfo_blind_2,
133 IF (ifunc(3) == 0)
THEN
134 CALL ancmsg(msgid=1580 , msgtype=msgerror, anmode=aninfo_blind_2,
143 IF (yfac(1) == zero) yfac(1) = one * stress_unit
144 IF (yfac(2) == zero) yfac(2) = one * stress_unit
145 IF (yfac(3) == zero) yfac(3) = one * stress_unit
146 IF (kflex1 == zero) kflex1 = one * stress_unit
147 IF (kflex2 == zero) kflex2 = one * stress_unit
148 IF (kflex == zero) kflex = one * stress_unit
149 IF (embc == zero) embc = em01
150 IF (embt == zero) embt = em01
154 dc0 = lc0 * (one + embc)
155 dt0 = lt0 * (one + embt)
156 hc0 = sqrt(dc0*dc0 - lc0*lc0)
157 ht0 = sqrt(dt0*dt0 - lt0*lt0)
160 matparam%NUPARAM = 14
162 matparam%NFUNC = nfunc
164 ALLOCATE (matparam%UPARAM(matparam%NUPARAM))
165 ALLOCATE (matparam%IPARAM(matparam%NIPARAM))
167 matparam%IPARAM(1) = isens
169 matparam%UPARAM( 1) = dc0
170 matparam%UPARAM( 2) = dt0
171 matparam%UPARAM( 3) = hc0
172 matparam%UPARAM( 4) = ht0
173 matparam%UPARAM( 5) = kflex
174 matparam%UPARAM( 6) = kflex1
175 matparam%UPARAM( 7) = kflex2
176 matparam%UPARAM( 8) = zerostress
177 matparam%UPARAM( 9) = 0
178 matparam%UPARAM(10) = zero
179 matparam%UPARAM(11) = zero
180 matparam%UPARAM(12) = yfac(1)
181 matparam%UPARAM(13) = yfac(2)
182 matparam%UPARAM(14) = yfac(3)
196 WRITE(iout,1000) trim(titr),mat_id,ilaw
198 IF (is_encrypted)
THEN
199 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
201 WRITE(iout,1200) rho0,embc,embt,kflex,kflex1,kflex2,
202 . ifunc(1),ifunc(2),ifunc(3),ifunc(4),ifunc(5),
203 . yfac(1),yfac(2),yfac(3),isens,zerostress
208 & 5x,
'MATERIAL NUMBER. . . . . . . . . . . . . . . . . =',i10/,
209 & 5x,
'MATERIAL LAW . . . . . . . . . . . . . . . . . . =',i10/)
211 &(5x,
'MATERIAL MODEL : ANISOTROPIC FABRIC (LAW158) ',/,
212 & 5x,
'-------------------------------------------- ',/
214 & 5x,
'INITIAL DENSITY . . . . . . . . . . . . . . . .=',1pg20.13/
215 & 5x,
'NOMINAL WARP STRETCH. . . . . . . . . . . . . . .=',1pg20.13/
216 & 5x,
'NOMINAL WEFT STRETCH. . . . . . . . . . . . . . .=',1pg20.13/
217 & 5x,
'COUPLING STIFFNESS MODULUS. . . . . . . . . . . .=',1pg20.13/
218 & 5x,
'FLEX MODULUS (WARP) . . . . . . . . . . . . . .=',1pg20.13/
219 & 5x,
'FLEX MODULUS (WEFT) . . . . . . . . . . . . . .=',1pg20.13/
220 & 5x,
'LOADING STRESS FUNCTION ID IN WARP DIRECTION. . .=',i10/
221 & 5x,
'LOADING STRESS FUNCTION ID IN WEFT DIRECTION. . .=',i10/
222 & 5x,
'LOADING STRESS FUNCTION ID IN SHEAR . . . . . . .=',i10/
223 & 5x,
'FLEX STRESS FUNCTION ID IN WARP DIRECTION . . . .=',i10/
224 & 5x,
'FLEX STRESS FUNCTION ID IN WEFT DIRECTION . . . .=',i10/
225 & 5x,
'LOADING FUNCTION SCALE FACTOR (WARP). . . . . . .=',1pg20.13/
226 & 5x,
'LOADING FUNCTION SCALE FACTOR (WEFT). . . . . . .=',1pg20.13/
227 & 5x,
'LOADING FUNCTION SCALE FACTOR (SHEAR) . . . . . .='
228 & 5x,
'SENSOR ID . . . . . . . . . . . . . . . . . . . .=',i10/
229 & 5x,
'REF-STATE STRESS RELAXATION FACTOR. . . . . . . .=',1pg20
231 & 5x,
'YOUNG MODULUS E1 (WARP DIRECTION) . . . . . . . .=',1pg20.13/
232 & 5x,
'YOUNG MODULUS E2 (WEFT DIRECTION) . . . . . . . .='
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)