42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
65 USE matparam_def_mod
67
68
69
70#include "implicit_f.inc"
71
72
73
74#include "units_c.inc"
75#include "param_c.inc"
76
77
78
79 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
80 my_real,
INTENT(INOUT) :: pm(npropm),parmat(100),uparam(maxuparam)
81 INTEGER, INTENT(INOUT) :: IPM(NPROPMI),ISRATE,IFUNC(MAXFUNC),NFUNC,MAXFUNC,MAXUPARAM,NUPARAM, NUVAR,IMATVIS
82 TYPE(MLAW_TAG_),INTENT(INOUT) :: MTAG
83 INTEGER,INTENT(IN) :: MAT_ID
84 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
85 TYPE(),INTENT(IN) :: LSUBMODEL(NSUBMOD)
86 TYPE(MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
87
88
89
91 . e,nu,cp,vmc,d,n,md,
92 . c1, g,temp,v0,c2,yfac(2),fac_l,fac_t,fac_m,fac_c
93 INTEGER I,J
94 my_real :: rho0, rhor, yfac_unit
95 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
96
97
98
99 is_encrypted = .false.
100 is_available = .false.
101 israte = 0
102 imatvis = 0
103 nuparam = 15
104 nuvar = 7
105 nfunc=2
106 mtag%G_PLA = 1
107 mtag%L_PLA = 1
108
110
111 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
112 CALL hm_get_floatv('refer_rho
' ,RHOR ,IS_AVAILABLE, LSUBMODEL, UNITAB)
113 !line-2
114 CALL HM_GET_FLOATV('mat_e' ,E ,IS_AVAILABLE, LSUBMODEL, UNITAB)
115 CALL HM_GET_FLOATV('mat_nu' ,NU ,IS_AVAILABLE, LSUBMODEL, UNITAB)
116 CALL HM_GET_FLOATV('cp' ,CP ,IS_AVAILABLE, LSUBMODEL, UNITAB)
117 !line-3
118 CALL HM_GET_FLOATV('mat_d' ,D ,IS_AVAILABLE, LSUBMODEL, UNITAB)
119 CALL HM_GET_FLOATV('mat_n' ,N ,IS_AVAILABLE, LSUBMODEL, UNITAB)
120 CALL HM_GET_FLOATV('m64_md' ,MD ,IS_AVAILABLE, LSUBMODEL, UNITAB)
121 CALL HM_GET_FLOATV('m64_vo' ,V0 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
122 CALL HM_GET_FLOATV('m64_vm' ,VMC ,IS_AVAILABLE, LSUBMODEL, UNITAB)
123 !line-4
124 CALL HM_GET_INTV ('m64_funct_id_0' ,IFUNC(1) ,IS_AVAILABLE, LSUBMODEL)
125 CALL HM_GET_INTV ('m64_funct_id_1' ,IFUNC(2) ,IS_AVAILABLE, LSUBMODEL)
126 CALL HM_GET_FLOATV('m64_scale_0' ,YFAC(1) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
127 CALL HM_GET_FLOATV('m64_scale_1' ,YFAC(2) ,IS_AVAILABLE, LSUBMODEL, UNITAB)
128 CALL HM_GET_FLOATV('m64_ini_temp' ,TEMP ,IS_AVAILABLE, LSUBMODEL, UNITAB)
129 !CALL HM_GET_FLOATV('' ,HL ,IS_AVAILABLE, LSUBMODEL, UNITAB) no longer read
130 !units
131 CALL HM_GET_FLOATV_DIM('m64_scale_0' ,YFAC_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
132
133 !---DEFAULT VALUES---!
134 IF(RHOR == ZERO)RHOR=RHO0
135 PM(1) =RHOR
136 PM(89)=RHO0
137.OR. IF(V0 == ZEROV0 >= ONE)V0=EM20
138 IF(CP == ZERO)THEN
139 CP = ZERO
140 ELSE
141 CP = ONE/CP
142 ENDIF
143 IF(YFAC(1) == ZERO) YFAC(1)= ONE*YFAC_UNIT
144 IF(YFAC(2) == ZERO) YFAC(2)= ONE*YFAC_UNIT
145.OR. IF(VMC == ZEROVMC > ONE) VMC = ONE
146
147 !---STORAGE---!
148 G = HALF*E/(ONE + NU)
149 C1=E/THREE/(ONE - TWO*NU)
150 UPARAM(1) = E
151 UPARAM(2) = E/(ONE - NU*NU)
152 UPARAM(3) = NU*UPARAM(2)
153 UPARAM(4) = G
154 UPARAM(5) = NU
155 UPARAM(6) = D
156 UPARAM(7) = N
157 UPARAM(8) = MD
158 UPARAM(9) = V0
159 UPARAM(10) = VMC
160 UPARAM(11) = CP
161 UPARAM(12) = TEMP
162 UPARAM(13) = YFAC(1)
163 UPARAM(14) = YFAC(2)
164 UPARAM(15) = ZERO !HL
165
166 PARMAT(1) = C1
167 PARMAT(2) = E
168 PARMAT(3) = NU
169 !Formulation for solid elements time step computation.
170 PARMAT(16) = 2
171 PARMAT(17) = (ONE - TWO*NU)/(ONE - NU) ! == TWO*G/(C1+FOUR_OVER_3*G)
172
173 ! Properties compatibility
174 CALL INIT_MAT_KEYWORD(MATPARAM,"SHELL_ISOTROPIC")
175
176 !---LISTING OUTPUT---!
177 WRITE(IOUT,1001) TRIM(TITR),MAT_ID,64
178 WRITE(IOUT,1000)
179 IF(IS_ENCRYPTED)THEN
180 WRITE(IOUT,'(5x,a,//)')'confidential data'
181 ELSE
182 WRITE(IOUT,1002) RHO0
183 WRITE(IOUT,1100)E,NU,CP,N,D,V0,MD,VMC,TEMP
184 WRITE(IOUT,1200)(IFUNC(J),YFAC(J),J=1,2)
185 ENDIF
186
187 RETURN
188 1000 FORMAT(/
189 . 5X,40H TRIP-STEELS PLASTIC LAW ,/,
190 & 5X,40H ------------------------ ,/)
191 1001 FORMAT(
192 & 5X,A,/,
193 & 5X,'material number . . . . . . . . . . . . =',I10/,
194 & 5X,'material law. . . . . . . . . . . . . . =',I10/)
195 1002 FORMAT(
196 & 5X,'initial density . . . . . . . . . . . . =',1PG20.13/)
197 1100 FORMAT(
198 & 5X,'young''s modulus. . . . . . . . . . . . . . . =',E12.4/
199 & 5X,'poisson''s ratio. . . . . . . . . . . . . . . =',E12.4/
200 & 5X,'heat capacitivity . . .. . . . . . . . . . . =',e12.4/
201
202 & 5x,'MATERIAL PARAMETER (n) . . . . . . . . .=',e12.4/
203 & 5x,'MATERIAL PARAMETER (D) . . . . .. . . . .=',e12.4/
204 & 5x,'MATERIAL PARAMETER (V0) . . . . .. . . . =',e12.4/
205 & 5x,'LIMIT MARTENISTE TEMPERATURE (Md) . . . . . . =',e12.4/
206 & 5x,'CONTENT MARTENSITE VOLUME FRACTION(Vmc) . . . =',e12.4/
207 & 5x,'INITIAL TEMPERATURE . . . . . . . . . . . . =',e12.4)
208 1200 FORMAT(
209 & 5x,'YIELD STRESS FUNCTION NUMBER. . . . . . . . . =',i8/
210 & 5x,'YIELD SCALE FACTOR. . . . . . . . . . . . . . =',e12.4)
211
212
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_option_is_encrypted(is_encrypted)
integer, parameter nchartitle