43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
66 USE matparam_def_mod
68
69
70
71#include "implicit_f.inc"
72
73
74
75#include "units_c.inc"
76#include "param_c.inc"
77
78
79
80 TYPE (UNIT_TYPE_),INTENT(IN) :: UNITAB
81 my_real,
INTENT(INOUT) :: pm(npropm),parmat(100),uparam(maxuparam)
82 INTEGER, INTENT(INOUT) :: IPM(NPROPMI),ISRATE,IFUNC(MAXFUNC),,MAXFUNC,MAXUPARAM,NUPARAM, NUVAR,IMATVIS
83 TYPE(MLAW_TAG_),INTENT(INOUT) :: MTAG
84 INTEGER,INTENT(IN) :: MAT_ID
85 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
86 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(*)
87 TYPE(MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
88
89
90
91 INTEGER :: ID,ITEST,ILAW
92 my_real :: e,nu,g,rbulk,scalefac,fac_unit
93 CHARACTER(LEN=NCHARFIELD) :: STRING
95 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
96
97
98
99 is_encrypted = .false.
100 is_available = .false.
101 israte = 0
102 imatvis = 0
103 ilaw = 111
104
106
107 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
108
109 CALL hm_get_intv (
'Itype' ,itest ,is_available, lsubmodel)
110 CALL hm_get_intv (
'MAT_FCT_ID ' ,ifunc(1) ,is_available, lsubmodel)
111 CALL hm_get_floatv(
'MAT_NU' ,nu ,is_available, lsubmodel, unitab)
112 CALL hm_get_floatv(
'MAT_FScale' ,scalefac ,is_available, lsubmodel, unitab)
113 IF(scalefac == zero)THEN
115 scalefac = one * fac_unit
116 ENDIF
117
118
119 rhor=zero
120
121 pm(1) =rhor
122 pm(89)=rho0
123
124
125 IF(itest == 0) itest = 1
126
127
128
129
130 IF(ifunc(1) /= 0) THEN
131 nfunc = 1
132
133 IF(nu == zero) nu=0.495
134 ELSE
136 . msgtype=msgerror,
137 . anmode=aninfo_blind,
138 . i1=mat_id,
139 . c1=titr)
140 ENDIF
141 uparam(1) = nu
142 uparam(2) = itest
143 uparam(3) = scalefac
144
145 nuparam = 7
146 nuvar = 2
147
148 IF(nuparam > maxuparam)THEN
149 WRITE(iout,*)' ** ERROR : NUPARAM GT MAXUPARAM'
150 WRITE(iout,*)' NUPARAM =',nuparam,
151 . ' MAXUPARAM =',maxuparam
152 ENDIF
153
157
158
160
161 parmat(1) = zero
162 parmat(2) = zero
163 parmat(3) = nu
164
165 mtag%L_EPSA = 1
166
167
168
169 WRITE(iout,1001) trim(titr),mat_id,ilaw
170 WRITE(iout,1000)
171 IF(is_encrypted)THEN
172 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
173 ELSE
174 WRITE(iout,1002) rho0
175 IF(ifunc(1) > 0) THEN
176 IF(itest == 1) THEN
177 WRITE(iout,1200)ifunc(1),scalefac, nu
178 ELSEIF(itest == 2) THEN
179 WRITE(iout,1300)ifunc(1),scalefac, nu
180 ELSEIF(itest == 3) THEN
181 WRITE(iout,1400)ifunc(1),scalefac, nu
182 ENDIF
183 ENDIF
184 ENDIF
185
186
187 1000 FORMAT(
188 & 5x,' MARLOW LAW ',/,
189 & 5x,' ---------------- ',/)
190 1001 FORMAT(
191 & 5x,a,/,
192 & 5x,'MATERIAL NUMBER . . . . . . . . . . . . =',i10/,
193 & 5x,'MATERIAL LAW. . . . . . . . . . . . . . =',i10/)
194 1002 FORMAT(
195 & 5x,'INITIAL DENSITY . . . . . . . . . . . . =',1pg20.13/)
196 1200 FORMAT(
197 & 5x,'UNIAXIAL DATA TEST CURVE . . . . . . .=',i10/
198 & 5x,'SCALE FACTOR FOR STRESS IN FUNCTION. . .=',1pg20.13/
199 & 5x,'POISSON RATIO. . . . . . . . . . . . . .=',e12.4/
200 1300 FORMAT(
201 & 5x,'EQUIBIAXIAL DATA TEST CURVE. . . . . . .=',i10/
202 & 5x,'SCALE FACTOR FOR STRESS IN FUNCTION. . .=',1pg20.13/
203 & 5x,'POISSON RATIO. . . . . . . . . . . . . .=',e12.4///)
204 1400 FORMAT(
205 & 5x,'PLANAR DATA TEST CURVE . . . . . . . .=',i10/
206 & 5x,'SCALE FACTOR FOR STRESS IN FUNCTION. . .=',1pg20.13/
207 & 5x,'POISSON RATIO. . . . . . . . . . . . . .=',e12.4///)
208
209
210
211 RETURN
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_floatv_dim(name, dim_fac, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_is_encrypted(is_encrypted)
subroutine init_mat_keyword(matparam, keyword)
integer, parameter nchartitle
integer, parameter ncharfield
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)