41
42
43
48 USE matparam_def_mod
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64#include "implicit_f.inc"
65
66
67
68#include "units_c.inc"
69#include "param_c.inc"
70
71
72
73 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
74 INTEGER, INTENT(INOUT) :: MAT_ID
75 INTEGER, INTENT(INOUT) :: ISRATE
76 INTEGER, DIMENSION(NPROPMI) ,INTENT(INOUT) :: IPM
77 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
78 my_real,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: pm
79 TYPE(SUBMODEL_DATA), DIMENSION(*),INTENT(IN) :: LSUBMODEL
80 TYPE(MLAW_TAG_), INTENT(INOUT) :: MTAG6,MTAG17
81 INTEGER,INTENT(IN) :: ITYP
82 TYPE(MATPARAM_STRUCT_),INTENT(INOUT) :: MATPARAM
83
84
85
86 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
87 INTEGER JTUR, I,COUNT,LAW6_OPT
88 my_real rho0, vis, psh, c0, c1, c2, c3, c4, c5, pmin, e0, rk0,
89 . ssl, ctm, sk, se, rpr, ct1, ct2, ct3, ak, e, a, b, yp0, yp1,
90 . mu,rhor
91
92
93
94 count = 0
95 jtur=pm(70)
96
98
99 CALL hm_get_intv (
'Line_count' ,count ,is_available,lsubmodel)
100 count=count+2
101
102 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
103 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
104
105 CALL hm_get_intv (
'Law6_opt' ,law6_opt ,is_available,lsubmodel)
106
107
108 CALL hm_get_floatv(
'DAMP1' ,vis ,is_available, lsubmodel, unitab)
109 CALL hm_get_floatv(
'MAT_PC' ,pmin ,is_available, lsubmodel, unitab)
110
111 IF (pmin == zero) pmin=-infinity
112 IF (rhor == zero) rhor=rho0
113
114 CALL hm_get_floatv(
'RHO0_K0' ,rk0 ,is_available, lsubmodel, unitab)
115 CALL hm_get_floatv(
'SSL' ,ssl ,is_available, lsubmodel, unitab)
116 CALL hm_get_floatv(
'C_MU' ,ctm ,is_available, lsubmodel, unitab)
117 CALL hm_get_floatv(
'SIG_k' ,sk ,is_available, lsubmodel, unitab)
118 CALL hm_get_floatv(
'SIG_EPS' ,se ,is_available, lsubmodel, unitab)
119 CALL hm_get_floatv(
'P_R_ON_P_RT' ,rpr ,is_available, lsubmodel, unitab)
120 CALL hm_get_floatv(
'C_1' ,ct1 ,is_available, lsubmodel, unitab)
121 CALL hm_get_floatv(
'C_2' ,ct2 ,is_available, lsubmodel, unitab)
122 CALL hm_get_floatv(
'C_3' ,ct3 ,is_available, lsubmodel, unitab
123 CALL hm_get_floatv(
'KAPPA' ,ak ,is_available, lsubmodel, unitab)
125 CALL hm_get_floatv(
'ALPHA' ,a ,is_available, lsubmodel, unitab)
126 CALL hm_get_floatv(
'GSI_T' ,b ,is_available, lsubmodel, unitab)
127
128 e0 = zero
129 c0 = zero
130 c1 = zero
131 c2 = zero
132 c3 = zero
133 c4 = zero
134 c5 = zero
135 psh = zero
136
137 pm(1) = rhor
138 pm(89)= rho0
139 pm(23)=e0
140 pm(24)=vis
141 pm(104)=c0 - psh
142 pm(32)=c1
143 pm(37)=pmin
144
145
146 matparam%IEOS = 1
147 matparam%EOS%NUPARAM = 7
148 matparam%EOS%NIPARAM = 0
149 matparam%EOS%NFUNC = 0
150 matparam%EOS%NTABLE = 0
151 CALL matparam%EOS%CONSTRUCT()
152 matparam%EOS%UPARAM(1) = c0-psh
153 matparam%EOS%UPARAM(2) = c1
154 matparam%EOS%UPARAM(3) = c2
155 matparam%EOS%UPARAM(4) = c3
156 matparam%EOS%UPARAM(5) = c4
157 matparam%EOS%UPARAM(6) = c5
158 matparam%EOS%UPARAM(7) = zero
159 matparam%EOS%PSH = psh
160 matparam%EOS%E0 = e0
161
162 IF(rhor /= zero) THEN
163 mu = rho0/rhor-one
164 ELSE
165 mu = zero
166 ENDIf
167
168 IF(mu < zero)THEN
169 pm(31) = -psh + c0+c1*mu + c3*mu**3+(c4+c5*mu)*e0
170 ELSE
171 pm(31) = -psh + c0+c1*mu + c2*mu**2+c3*mu**3+(c4+c5*mu)*e0
172 ENDIF
173
174 pm(80)=infinity
175
176 IF(ssl == zero)ssl= ep10
177 pm(46)=ssl
178 pm(95)=rpr
179
180 IF(ctm == zero)ctm=nineem2
181 IF(ct1 == zero)ct1=onep44
182 IF(ct2 == zero)ct2=onep92
183 IF(ct3 == zero)ct3=-zep373
184 IF(sk == zero)sk=one
185 IF(se == zero)se=onep3
186 IF(rpr == zero)rpr=seven_over_9
187
188 IF(ak == zero) ak=zep4187
189 IF(e == zero) e=ninep793
190 IF(a == zero) a=half
191 pm(47)=a*ak
192 pm(48)=e
193 pm(49)=a
194 pm(50)=b
195 yp0=elevenp5
196 DO i=1,100
197 yp1=log(e*yp0)/ak
198 IF(yp1 == yp0)EXIT
199 yp0=yp1
200 ENDDO
201 pm(51)=yp1
202 pm(79)=three100
203
204 pm(81)=ctm
205 pm(82)=ct1
206 pm(83)=ct2
207 pm(84)=ct3
208 pm(85)=sk
209 pm(86)=se
210 pm(95)=rpr
211 pm(87)=rk0/rho0
212
213 matparam%IEOS = 18
214 ipm(4) = 18
215
216
218
219
221
222 CALL INIT_MAT_KEYWORD(MATPARAM,"incompressible")
223
224 ! Properties compatibility
225 CALL INIT_MAT_KEYWORD(MATPARAM,"solid_porous")
226 CALL INIT_MAT_KEYWORD(MATPARAM,"sph")
227
228 WRITE(IOUT,2001) TRIM(TITR),MAT_ID,6
229 WRITE(IOUT,1001)
230
231 IF(IS_ENCRYPTED)THEN
232 WRITE(IOUT,'(5X,A,//)')'CONFIDENTIAL DATA'
233 ELSE
234 WRITE(IOUT,2002)RHO0,RHOR
235 WRITE(IOUT,1300)VIS
236 WRITE(IOUT,1501)PMIN
237 ENDIF
238 WRITE(IOUT,1600)RK0,SSL,CTM,SK,SE,RPR,CT1,CT2,CT3
239 WRITE(IOUT,1601)AK,E,A,B
240
241 PM(88)=PSH
242
243
244
245 MTAG6%G_RK = 1
246 MTAG6%G_RE = 1
247 MTAG6%L_RK = 1
248 MTAG6%L_RE = 1
249 MTAG6%L_VK = 1
250 MTAG6%G_TEMP = 1
251 MTAG6%L_TEMP = 1
252
253 MTAG17%G_RK = 1
254 MTAG17%G_RE = 1
255 MTAG17%L_RK = 1
256 MTAG17%L_RE = 1
257 MTAG17%L_VK = 1
258 MTAG17%G_TEMP = 1
259 MTAG17%L_TEMP = 1
260
261 1001 FORMAT(
262 & 5X,' K-EPSILON TURBULENT FLUID ',/,
263 & 5X,' ------------------------- ',//)
264 1300 FORMAT(
265 & 5X,'VISCOSITY . . . . . . . . . . . . . . .=',1PG20.13)
266 1501 FORMAT(
267 & 5X,'PRESSURE CUTOFF . . . . . . . . . . . .=',1PG20.13//)
268 2001 FORMAT(/
269 & 5X,A,/,
270 & 5X,' MATERIAL NUMBER . . . . . . . . . . . .=',I10/,
271 & 5X,' MATERIAL LAW. . . . . . . . . . . . . .=',I10/)
272 2002 FORMAT(
273 & 5X,' INITIAL DENSITY . . . . . . . . . . . .=',1PG20.13/,
274 & 5X,' REFERENCE DENSITY . . . . . . . . . . .=',1PG20.13/)
275 1600 FORMAT(
276 & 5X,'RK0 INITIAL TURBULENT ENERGY. . . . . .=',1PG20.13/,
277 & 5X,'SSL SUBGRID SCALE LENGTH. . . . . . . .=',1PG20.13/,
278 & 5X,'CMU TURBULENT VISCOSITY COEFFICIENT . .=',1PG20.13/,
279 & 5X,'SK K DIFFUSION COEFFICIENT . . . . . .=',1PG20.13/,
280 & 5X,'SE EPSILON DIFFUSION COEFFICIENT . . .=',1PG20.13/,
281 & 5X,'PR/PRT LAM./TURB. PRANDT NUMBER RATIO .=',1PG20.13/,
282 & 5X,'CT1 EPSILON SOURCE COEFFICIENT C1 . . .=',1PG20.13/,
283 & 5X,'CT2 EPSILON SOURCE COEFFICIENT C2 . . .=',1PG20.13/,
284 & 5X,'CT3 EPSILON SOURCE COEFFICIENT C3 . . .=',1PG20.13/)
285 1601 FORMAT(
286 & 5X,'TURBULENT WALL COEFFICIENTS '/,
287 & 5X,'K LOGARITHMIQUE LAW COEFFICIENT. . . .=',1PG20.13/,
288 & 5X,'E LOGARITHMIQUE LAW COEFFICIENT. . . .=',1PG20.13/,
289 & 5X,'A K,EPSILON ECCENTRICITY . . . . . . .=',1PG20.13/,
290 & 5X,'B SOURCE FLAG. . . . . . . . . . . . .=',1PG20.13/)
291
292 RETURN
subroutine hm_get_floatv(name, rval, 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