source: CIVL/examples/fortran/nek5000/core/cmt/state1.f

main
Last change on this file was ea777aa, checked in by Alex Wilton <awilton@…>, 3 years ago

Moved examples, include, build_default.properties, common.xml, and README out from dev.civl.com into the root of the repo.

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@5704 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100755
File size: 13.2 KB
Line 
1!*********************************************************************
2!* Illinois Open Source License *
3!* *
4!* University of Illinois/NCSA *
5!* Open Source License *
6!* *
7!* Copyright@2008, University of Illinois. All rights reserved. *
8!* *
9!* Developed by: *
10!* *
11!* Center for Simulation of Advanced Rockets *
12!* *
13!* University of Illinois *
14!* *
15!* www.csar.uiuc.edu *
16!* *
17!* Permission is hereby granted, free of charge, to any person *
18!* obtaining a copy of this software and associated documentation *
19!* files (the "Software"), to deal with the Software without *
20!* restriction, including without limitation the rights to use, *
21!* copy, modify, merge, publish, distribute, sublicense, and/or *
22!* sell copies of the Software, and to permit persons to whom the *
23!* Software is furnished to do so, subject to the following *
24!* conditions: *
25!* *
26!* *
27!* @ Redistributions of source code must retain the above copyright *
28!* notice, this list of conditions and the following disclaimers. *
29!* *
30!* @ Redistributions in binary form must reproduce the above *
31!* copyright notice, this list of conditions and the following *
32!* disclaimers in the documentation and/or other materials *
33!* provided with the distribution. *
34!* *
35!* @ Neither the names of the Center for Simulation of Advanced *
36!* Rockets, the University of Illinois, nor the names of its *
37!* contributors may be used to endorse or promote products derived *
38!* from this Software without specific prior written permission. *
39!* *
40!* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, *
41!* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES *
42!* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND *
43!* NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR *
44!* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
45!* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, *
46!* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
47!* USE OR OTHER DEALINGS WITH THE SOFTWARE. *
48!*********************************************************************
49!* Please acknowledge The University of Illinois Center for *
50!* Simulation of Advanced Rockets in works and publications *
51!* resulting from this software or its derivatives. *
52!*********************************************************************
53!******************************************************************************
54!
55! Purpose: Collect relations for static and total speed of sound for perfect
56! gases.
57!
58! Description: None.
59!
60! Notes: None.
61!
62!******************************************************************************
63!
64! $Id: MixtPerf.f,v 1.5 2015/07/17 15:58:14 mrugeshs Exp $
65!
66! Copyright: (c) 2002 by the University of Illinois
67!
68!******************************************************************************
69
70 FUNCTION MixtJWL_Enthalpy(DE,PRES,VEL1,VEL2,VEL3,EN)
71 IMPLICIT NONE
72 REAL DE,PRES,VEL1,VEL2,VEL3,EN
73 REAL MixtJWL_Enthalpy
74 MixtJWL_Enthalpy = 0.5*(VEL1*VEL1+VEL2*VEL2+VEL3*VEL3)
75 > + EN+PRES/DE
76 END
77 FUNCTION MixtPerf_C_Co2GUVW(Co2,G,U,V,W)
78 IMPLICIT NONE
79 REAL Co2,G,U,V,W ! INTENT(IN) W
80 REAL MixtPerf_C_Co2GUVW
81 MixtPerf_C_Co2GUVW = SQRT(Co2 - 0.5*(G - 1.0)*(U*U + V*V + W*W))
82 END
83
84 FUNCTION MixtPerf_C_DGP(D,G,P)
85 IMPLICIT NONE
86 REAL D,G,P! INTENT(IN)
87 REAL MixtPerf_C_DGP
88 MixtPerf_C_DGP = SQRT(G*P/D)
89 END
90
91 FUNCTION MixtPerf_C_GHoVm2(G,Ho,Vm2)
92 IMPLICIT NONE
93 REAL G,Ho,Vm2! INTENT(IN)
94 REAL MixtPerf_C_GHoVm2
95 MixtPerf_C_GHoVm2 = SQRT((G - 1.0)*(Ho - 0.5*Vm2))
96 END
97
98 FUNCTION MixtPerf_C_GRT(G,R,T)
99 IMPLICIT NONE
100 REAL G,R,T! INTENT(IN)
101 REAL MixtPerf_C_GRT
102 MixtPerf_C_GRT = SQRT(G*R*T)
103 END
104
105 FUNCTION MixtPerf_C2_GRT(G,R,T)
106 IMPLICIT NONE
107 REAL G,R,T! INTENT(IN)
108 REAL MixtPerf_C2_GRT
109 MixtPerf_C2_GRT = G*R*T
110 END
111
112 FUNCTION MixtPerf_Co2_CGUVW(C,G,U,V,W)
113 IMPLICIT NONE
114 REAL C,G,U,V,W! INTENT(IN)
115 REAL MixtPerf_Co2_CGUVW
116 MixtPerf_Co2_CGUVW = C*C + 0.5*(G - 1.0)*(U*U + V*V + W*W)
117 END
118
119 FUNCTION MixtPerf_Cv_CpR(Cp,R)
120 IMPLICIT NONE
121 REAL Cp,R! INTENT(IN)
122 REAL MixtPerf_Cv_CpR
123 MixtPerf_Cv_CpR = Cp - R
124 END
125
126 FUNCTION MixtPerf_Cp_CvR(Cv,R)
127 IMPLICIT NONE
128 REAL Cv,R! INTENT(IN)
129 REAL MixtPerf_Cp_CvR
130 MixtPerf_Cp_CvR = Cv + R
131 END
132
133 FUNCTION MixtPerf_D_CGP(C,G,P)
134 IMPLICIT NONE
135 REAL C,G,P! INTENT(IN)
136 REAL MixtPerf_D_CGP
137 MixtPerf_D_CGP = G*P/(C*C)
138 END
139
140 FUNCTION MixtPerf_D_DoGMa(D,G,Ma)
141 IMPLICIT NONE
142 REAL D,G,Ma! INTENT(IN)
143 REAL MixtPerf_D_DoGMa
144 MixtPerf_D_DoGMa = D/ (1.0 + 0.5*(G-1.0)*Ma*Ma)**(1.0/(G-1.0))
145 END
146
147 FUNCTION MixtPerf_D_PRT(P,R,T)
148 IMPLICIT NONE
149 REAL P,R,T ! INTENT(IN)
150 REAL MixtPerf_D_PRT
151 MixtPerf_D_PRT = P/(R*T)
152 END
153
154 FUNCTION MixtPerf_Eo_DGPUVW(D,G,P,U,V,W)
155 IMPLICIT NONE
156 REAL D,G,P,U,V,W! INTENT(IN)
157 REAL MixtPerf_Eo_DGPUVW
158 MixtPerf_Eo_DGPUVW = P/(D*(G - 1.0)) + 0.5*(U*U + V*V + W*W)
159 END
160
161 FUNCTION MixtPerf_Eo_DGPVm(D,G,P,Vm)
162 IMPLICIT NONE
163 REAL D,G,P,Vm! INTENT(IN)
164 REAL MixtPerf_Eo_DGPVm
165 MixtPerf_Eo_DGPVm = P/(D*(G - 1.0)) + 0.5*Vm*Vm
166 END
167
168 FUNCTION MixtPerf_Eo_GRTUVW(G,R,T,U,V,W)
169 IMPLICIT NONE
170 REAL G,R,T,U,V,W
171 REAL MixtPerf_Eo_GRTUVW
172 MixtPerf_Eo_GRTUVW = R*T/(G - 1.0) + 0.5*(U*U + V*V + W*W)
173 END
174
175 FUNCTION MixtPerf_G_CpR(Cp,R)
176 IMPLICIT NONE
177 REAL Cp,R
178 REAL MixtPerf_G_CpR
179 MixtPerf_G_CpR = Cp/(Cp - R)
180 END
181
182 FUNCTION MixtPerf_Ho_CpTUVW(Cp,T,U,V,W)
183 IMPLICIT NONE
184 REAL Cp,T,U,V,W
185 REAL MixtPerf_Ho_CpTUVW
186 MixtPerf_Ho_CpTUVW = Cp*T + 0.5*(U*U + V*V + W*W)
187 END
188
189 FUNCTION MixtPerf_M_R(R)
190 IMPLICIT NONE
191 REAL R
192 REAL MixtPerf_M_R
193 MixtPerf_M_R = 8314.3/R
194 END
195
196 FUNCTION MixtPerf_P_DEoGVm2(D,Eo,G,Vm2)
197 IMPLICIT NONE
198 REAL D,Eo,G,Vm2
199 REAL MixtPerf_P_DEoGVm2
200 MixtPerf_P_DEoGVm2 = (G - 1.0)*D*(Eo - 0.5*Vm2)
201 END
202
203 FUNCTION MixtPerf_P_DRT(D,R,T)
204 IMPLICIT NONE
205 REAL D,R,T
206 REAL MixtPerf_P_DRT
207 MixtPerf_P_DRT = D*R*T
208 END
209
210 FUNCTION MixtPerf_P_GMaPo(G,Ma,Po)
211 IMPLICIT NONE
212 REAL G,Ma,Po
213 REAL MixtPerf_P_GMaPo
214 MixtPerf_P_GMaPo = Po/((1.0 + 0.5*(G - 1.0)*Ma*Ma)**(G/(G - 1.0)))
215 END
216
217 FUNCTION MixtPerf_P_DDoGPo(D,Do,G,Po)
218 IMPLICIT NONE
219 REAL D,Do,G,Po
220 REAL MixtPerf_P_DDoGPo
221 MixtPerf_P_DDoGPo = Po*(D/Do)**G
222 END
223
224 FUNCTION MixtPerf_P_GPoTTo(G,Po,T,To)
225 IMPLICIT NONE
226 REAL G,Po,T,To
227 REAL MixtPerf_P_GPoTTo
228 MixtPerf_P_GPoTTo = Po*(T/To)**(G/(G - 1.0))
229 END
230
231 FUNCTION MixtPerf_Po_GPTTo(G,P,T,To)
232 IMPLICIT NONE
233 REAL G,P,T,To
234 REAL MixtPerf_Po_GPTTo
235 MixtPerf_Po_GPTTo = P*(To/T)**(G/(G - 1.0))
236 END
237
238 FUNCTION MixtPerf_Po_CGPUVW(C,G,P,U,V,W)
239 IMPLICIT NONE
240 REAL C,G,P,U,V,W
241 REAL MixtPerf_Po_CGPUVW
242 MixtPerf_Po_CGPUVW =
243 > P*(1.0 + 0.5*(G - 1.0)*(U*U+V*V+W*W)/(C*C))**(G/(G - 1.0))
244 END
245
246 FUNCTION MixtPerf_R_CpG(Cp,G)
247 IMPLICIT NONE
248 REAL Cp,G
249 REAL MixtPerf_R_CpG
250 MixtPerf_R_CpG = Cp - Cp/G
251 END
252
253 FUNCTION MixtPerf_R_M(M,whatev)
254 IMPLICIT NONE
255 REAL M,whatev
256 REAL MixtPerf_R_M
257 MixtPerf_R_M = 8314.3/M
258 END
259
260 FUNCTION MixtPerf_T_CGR(C,G,R)
261 IMPLICIT NONE
262 REAL C,G,R
263 REAL MixtPerf_T_CGR
264 MixtPerf_T_CGR = C*C/(G*R)
265 END
266
267 FUNCTION MixtPerf_T_CpHoVm2(Cp,Ho,Vm2)
268 IMPLICIT NONE
269 REAL Cp,Ho,Vm2
270 REAL MixtPerf_T_CpHoVm2
271 MixtPerf_T_CpHoVm2 = (Ho-0.5*Vm2)/Cp
272 END
273
274 FUNCTION MixtPerf_T_CvEoVm2(Cv,Eo,Vm2)
275 IMPLICIT NONE
276 REAL Cv,Eo,Vm2
277 REAL MixtPerf_T_CvEoVm2
278 MixtPerf_T_CvEoVm2 = (Eo-0.5*Vm2)/Cv
279 END
280
281 FUNCTION MixtPerf_T_DPR(D,P,R)
282 IMPLICIT NONE
283 REAL D,P,R
284 REAL MixtPerf_T_DPR
285 MixtPerf_T_DPR = P/(D*R)
286 END
287
288 FUNCTION MixtPerf_HM_T_DGMP(D,G,M,P)
289 IMPLICIT NONE
290 REAL D,G,M,P
291 REAL MixtPerf_HM_T_DGMP
292 MixtPerf_HM_T_DGMP = (G*M*M*P + 1.0)/D
293 END
294
295 FUNCTION MixtPerf_T_GMaTo(G,Ma,To)
296 IMPLICIT NONE
297 REAL G,Ma,To
298 REAL MixtPerf_T_GMaTo
299 MixtPerf_T_GMaTo = To/(1.0 + 0.5*(G - 1.0)*Ma*Ma)
300 END
301
302 FUNCTION MixtPerf_To_CpTUVW(Cp,T,U,V,W)
303 IMPLICIT NONE
304 REAL Cp,T,U,V,W
305 REAL MixtPerf_To_CpTUVW
306 MixtPerf_To_CpTUVW = T + 0.5*(U*U + V*V + W*W)/Cp
307 END
308
309 FUNCTION MixtPerf_Vm_C2Co2G(C2,Co2,G)
310 IMPLICIT NONE
311 REAL C2,Co2,G
312 REAL MixtPerf_Vm_C2Co2G
313 IF ( Co2 .gt. C2 ) THEN
314 MixtPerf_Vm_C2Co2G = SQRT(2.0/(G - 1.0)*(Co2 - C2))
315 ELSE
316 MixtPerf_Vm_C2Co2G = 0.0
317 END IF ! Co2
318 END
319
320! JH060614 stitched bloodily into cmt-nek. Before that,
321!******************************************************************************
322!
323! RCS Revision history:
324!
325! $Log: MixtPerf.f,v $
326! Revision 1.5 2015/07/17 15:58:14 mrugeshs
327! - MS making the code fortran 77 compatible -- not there yet. regression
328! testing going on
329!
330! Revision 1.4 2015/07/17 15:21:36 jhackl
331! JH071715 more fortran 77 goodness
332!
333! Revision 1.3 2015/03/03 21:09:25 jhackl
334! compiles gfortran 4.8.2
335!
336! Revision 1.2 2015/02/27 22:13:27 mrugeshs
337! - MS022715 - Added function to compute Cp when Cv and R are known
338!
339! Revision 1.1 2014/06/30 16:42:11 mrugeshs
340! - Add CMT souce code
341!
342! Revision 1.1.1.1 2014/05/05 21:47:47 tmish
343! Initial checkin for rocflu macro.
344!
345! Revision 1.3 2008/12/06 08:43:31 mtcampbe
346! Updated license.
347!
348! Revision 1.2 2008/11/19 22:16:47 mtcampbe
349! Added Illinois Open Source License/Copyright
350!
351! Revision 1.1 2007/04/09 18:48:32 haselbac
352! Initial revision after split from RocfloMP
353!
354! Revision 1.1 2007/04/09 17:59:25 haselbac
355! Initial revision after split from RocfloMP
356!
357! Revision 1.1 2004/12/01 16:48:47 haselbac
358! Initial revision after changing case
359!
360! Revision 1.2 2002/05/28 13:44:44 haselbac
361! Added new functions
362!
363! Revision 1.1 2002/05/04 16:16:52 haselbac
364! Initial revision
365!
366!******************************************************************************
367!NTN-----------JWL
368 FUNCTION MixtJWL_SO(DE,EN,pres,AA,BB,R1,R2,MW,MA,MB,OM,rho0)
369 IMPLICIT NONE
370 REAL DE,EN,pres,AA,BB,R1,R2,MW,MA,MB,OM,rho0
371 REAL MixtJWL_SO
372 MixtJWL_SO =SQRT((AA*(R1*(rho0/DE)/DE-OM/DE-OM/(R1*rho0)-
373 > MW/(R1*rho0/DE))+
374 > MA*pres/(DE*DE)*(1.-OM/(R1*rho0/DE)))*exp(-R1*rho0/DE)+
375 > (BB*(R2*(rho0/DE)/DE-OM/DE-OM/(R2*rho0)-MW/(R2*rho0/DE))+
376 > MB*pres/(DE*DE)*(1.-OM/(R2*rho0/DE)))*exp(-R2*rho0/DE)+
377 > OM*(EN+pres/DE)+MW*DE*EN)
378 END
379
380 FUNCTION MixtJWL_PR(DE,EN,AA,BB,R1,R2,OM,rho0)
381 IMPLICIT NONE
382 REAL DE,EN,AA,BB,R1,R2,OM,rho0
383 REAL MixtJWL_PR
384 MixtJWL_PR =AA*(1.-(OM*DE)/(R1*rho0))*exp(-R1*rho0/DE)+
385 > BB*(1.-(OM*DE)/(R2*rho0))*exp(-R2*rho0/DE)+OM*DE*EN
386 END
387
388 FUNCTION MixtJWL_TE(cv,DE,EN,AA,BB,R1,R2,rho0)
389 IMPLICIT NONE
390 REAL cv,DE,EN,AA,R1,R2,rho0,BB
391 REAL MixtJWL_TE
392 MixtJWL_TE = 1./cv*(EN-AA/(R1*rho0)*exp(-R1*rho0/DE)-
393 > BB/(R2*rho0)*exp(-R2*rho0/DE))
394 END
395!Temperature as a function of pressure and density
396! FUNCTION MixtJWL_TE(cv,DE,pres,AA,BB,R1,R2,rho0,OM)
397! IMPLICIT NONE
398! REAL cv,DE,pres,AA,BB,R1,R2,rho0,OM
399! REAL MixtJWL_TE
400! MixtJWL_TE=1./OM/cv/DE*(pres-AA*exp(-R1*rho0/DE)-
401! > BB*exp(-R2*rho0/DE))
402! END
403 FUNCTION MixtJWL_I_ENE(DE,PRES,AA,BB,R1,R2,rho0,OM)
404 IMPLICIT NONE
405 REAL DE,PRES,AA,BB,R1,R2,rho0,OM
406 REAL MixtJWL_I_ENE
407 MixtJWL_I_ENE =(pres-(AA*(1.-OM/(R1*rho0/DE))
408 > *exp(-R1*rho0/DE)+BB*(1.-OM/(R2*rho0/DE))
409 > *exp(-R2*rho0/DE)))/(OM*DE)
410 END
Note: See TracBrowser for help on using the repository browser.