IAPWS_IF97水物性计算Fortran90程序Word格式.docx
- 文档编号:467072
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:30
- 大小:93.06KB
IAPWS_IF97水物性计算Fortran90程序Word格式.docx
《IAPWS_IF97水物性计算Fortran90程序Word格式.docx》由会员分享,可在线阅读,更多相关《IAPWS_IF97水物性计算Fortran90程序Word格式.docx(30页珍藏版)》请在冰点文库上搜索。
给定压力P(Pa)与温度T(K),计算物性,程序自己判断所属区域:
callh2o(P,T,prop(12))
若想得到给定压力P(Pa)或温度T(K)下的饱和态物性,则可如下调用:
a.给定压力callPsatW(P,T)或给定温度callTsatW(P,T)
b.饱和液态callh2o(P,1.001*T,prop(12))或饱和汽态callh2o(P,0.999*T,prop(12))
当然还有其他方法,读者详细了解程序内容后,请自行发现。
这里给出获得动态链接库的方法:
1.新建一个动态链接库工程
2.加入附录所示源程序文件
3.编译,获得最重要的下面两个文件:
.lib与.dll
4.上面两个文件就可用于其他程序的物性调用
参考文献
WolfgangWagner,Hans-JoachimKretzschmar."
PropertiesofWaterandSteamBasedontheIndustrial formulation IAPWS-IF97"
Second Edition.
附录:
源程序(19个文件)
【1】.const.f90
moduleconstimplicitnone
real*8:
:
Rg=0.461526E3 !
J/kg/Kreal*8:
Tc=647.096 !
Kreal*8:
Pc=22.064E6 !
Pareal*8:
rhoc=322.0 !
kg/m^3endmoduleconst
【2】.reg1.f90
modulereg1implicitnone
integer :
I(34),J(34)real*8:
n(34)
dataI/&
0 ,&
0 ,&
1 ,&
2 ,&
3 ,&
4 ,&
5 ,&
8 ,&
21 ,&
23 ,&
29 ,&
30 ,&
31 ,&
32 &
/
dataJ/&
-2 ,&
-1 ,&
-9 ,&
-7 ,&
-3 ,&
17 ,&
-4 ,&
6 ,&
-5 ,&
10 ,&
-8 ,&
-11,&
-6 ,&
-29,&
-31,&
-38,&
-39,&
-40,&
-41 &
datan/&
0.14632971213167 ,&
-0.84548187169114 ,&
-3.756360367204 ,&
3.3855169168385 ,&
-0.95791963387872 ,&
0.15772038513228 ,&
-0.016616417199501 ,&
8.1214629983568E-04 ,&
2.8319080123804E-04 ,&
-6.0706301565874E-04 ,&
-0.018990068218419 ,&
-0.032529748770505 ,&
-0.021841717175414 ,&
-5.283835796993E-05 ,&
-4.7184321073267E-04 ,&
-3.0001780793026E-04 ,&
4.7661393906987E-05 ,&
-4.4141845330846E-06 ,&
-7.2694996297594E-16 ,&
-3.1679644845054E-05 ,&
-2.8270797985312E-06 ,&
-8.5205128120103E-10 ,&
-2.2425281908E-06 ,&
-6.5171222895601E-07 ,&
-1.4341729937924E-13 ,&
-4.0516996860117E-07 ,&
-1.2734301741641E-09 ,&
-1.7424871230634E-10 ,&
-6.8762131295531E-19 ,&
1.4478307828521E-20 ,&
2.6335781662795E-23 ,&
-1.1947622640071E-23 ,&
1.8228094581404E-24 ,&
-9.3537087292458E-26 &
endmodulereg1
【3】.reg2.f90
modulereg2implicitnone
Jo(9),I(43),J(43)real*8:
no(9),n(43)
dataJo/&
3 &
datano/&
-9.6927686500217 ,&
10.086655968018 ,&
-0.005608791128302,&
0.071452738081455 ,&
-0.40710498223928 ,&
1.4240819171444 ,&
-4.383951131945 ,&
-0.28408632460772 ,&
0.021268463753307 &
1 ,&
7 ,&
9 ,&
16 ,&
18 ,&
20 ,&
22 ,&
24 ,&
24 &
36 ,&
35 ,&
11 ,&
25 ,&
13 ,&
14 ,&
50 ,&
57 ,&
48 ,&
53 ,&
39 ,&
26 ,&
40 ,&
58 &
-1.7731742473213E-03 ,&
-0.017834862292358 ,&
-0.045996013696365 ,&
-0.057581259083432 ,&
-0.05032527872793 ,&
-3.3032641670203E-05 ,&
-1.8948987516315E-04 ,&
-3.9392777243355E-03 ,&
-0.043797295650573 ,&
-2.6674547914087E-05 ,&
2.0481737692309E-08 ,&
4.3870667284435E-07 ,&
-3.227767723857E-05 ,&
-1.5033924542148E-03 ,&
-0.040668253562649 ,&
-7.8847309559367E-10 ,&
1.2790717852285E-08 ,&
4.8225372718507E-07 ,&
2.2922076337661E-06 ,&
-1.6714766451061E-11 ,&
-2.1171472321355E-03 ,&
-23.895741934104 ,&
-5.905956432427E-18 ,&
-1.2621808899101E-06 ,&
-0.038946842435739 ,&
1.1256211360459E-11 ,&
-8.2311340897998 ,&
1.9809712802088E-08 ,&
1.0406965210174E-19 ,&
-1.0234747095929E-13 ,&
-1.0018179379511E-09 ,&
-8.0882908646985E-11 ,&
0.10693031879409 ,&
-0.33662250574171 ,&
8.9185845355421E-25 ,&
3.0629316876232E-13 ,&
-4.2002467698208E-06 ,&
-5.9056029685639E-26 ,&
3.7826947613457E-06 ,&
-1.2768608934681E-15 ,&
7.3087610595061E-29 ,&
5.5414715350778E-17 ,&
-9.436970724121E-07 &
endmodulereg2
【4】.reg3.f90
modulereg3implicitnone
I(40),J(40)real*8:
n(40)
11 &
12 ,&
15 ,&
26 &
1.0658070028513 ,&
-15.732845290239 ,&
20.944396974307 ,&
-7.6867707878716 ,&
2.6185947787954 ,&
-2.808078114862 ,&
1.2053369696517 ,&
-8.4566812812502E-03 ,&
-1.2654315477714 ,&
-1.1524407806681 ,&
0.88521043984318 ,&
-0.64207765181607 ,&
0.38493460186671 ,&
-0.85214708824206 ,&
4.8972281541877 ,&
-3.0502617256965 ,&
0.039420536879154 ,&
0.12558408424308 ,&
-0.2799932969871 ,&
1.389979956946 ,&
-2.018991502357 ,&
-8.2147637173963E-03 ,&
-0.47596035734923 ,&
0.0439840744735 ,&
-0.44476435428739 ,&
0.90572070719733 ,&
0.70522450087967 ,&
0.10770512626332 ,&
-0.32913623258954 ,&
-0.50871062041158 ,&
-0.022175400873096 ,&
0.094260751665092 ,&
0.16436278447961 ,&
-0.013503372241348 ,&
-0.014834345352472 ,&
5.7922953628084E-04 ,&
3.2308904703711E-03 ,&
8.0964802996215E-05 ,&
-1.6557679795037E-04 ,&
-4.4923899061815E-05 &
endmodulereg3
【5】.reg4.f90
modulereg4implicitnonereal*8:
n(10)datan/&
1167.0521452767 ,&
-724213.16703206 ,&
-17.073846940092 ,&
12020.82470247 ,&
-3232555.0322333 ,&
14.91510861353 ,&
-4823.2657361591 ,&
405113.40542057 ,&
-0.23855557567849,&
650.17534844798 &
endmodulereg4
【6】.mod_thcon.f90modulemod_thcon
!
implicitnone
n0(4),n1(5),n2(10)
datan0/&
0.102811d-1 ,&
0.299621d-1 ,&
0.156146d-1 ,&
-0.422464d-2 &
datan1/&
-0.397070 ,&
0.400302 ,&
1.06 ,&
-0.171587 ,&
2.39219 &
datan2/&
0.701309d-1 ,&
0.118520d-1 ,&
0.642857 ,&
0.169937d-2 ,&
-1.02 ,&
-4.11717 ,&
-6.17937 ,&
0.0822994 ,&
10.0932 ,&
0.308976d-2 &
endmodulemod_thcon
【7】.mod_visc.f90modulemod_visc
I(21),J(21)
no(4),n(21)
0.167752e-1 ,&
0.220462e-1 ,&
0.6366564e-2,&
-0.241605e-2 &
6 &
5 &
0.520094 ,&
0.850895e-1 ,&
-0.108374e1 ,&
-0.289555 ,&
0.222531 ,&
0.999115 ,&
0.188797e1 ,&
0.126613e1 ,&
0.120573 ,&
-0.281378 ,&
-0.906851 ,&
-0.772479 ,&
-0.489837 ,&
-0.257040 ,&
0.161913 ,&
0.257399 ,&
-0.325372e-1 ,&
0.698452e-1 ,&
0.872102e-2 ,&
-0.435673e-2 ,&
-0.593264e-3 &
endmodulemod_visc
【8】.b23.f90
moduleb23implicitnonereal*8:
n(5)
348.05185628969 ,&
-1.1671859879975 ,&
1.0192970039326E-03,&
572.54459862746 ,&
13.91883977887 &
endmoduleb23
【9】.Pb23.f90subroutinePb23(P,T)
DEC$ATTRIBUTESDLLEXPORT:
Pb23
useconstuseb23
implicitnonereal*8:
P,Treal*8:
pi,sita
Pstar,Tstar
dataPstar/1.0E6/!
PadataTstar/1.0/ !
K
if(T.lt.623.15.or.T.gt.863.15)thenstop'
Error:
OutB23Range!
'
endif
sita=T/Tstarpi=n
(1)+n
(2)*sita+n(3)*sita*sitaP=pi*Pstar
endsubroutinePb23
【10】.Tb23.f90subroutineTb23(P,T)
Tb23
if(P.lt.16.529E6.or.P.gt.100.0E6)thenstop'
pi=P/Pstar
sita=n(4)+sqrt((pi-n(5))/n(3))T=sita*Tstar
endsubroutineTb23
【11】.PsatW.f90subroutinePsatW(P,T)
PsatW
useconstusereg4
P,T
Pstar,Tstar,sitareal*8:
A,B,C
if ((T .lt. 273.15) .or. (T .gt. 647.096)) stop '
Reg4(Saturate)PsatW!
sita=T/Tstar+n(9)/(T/Tstar-n(10))
A=sita*sita+n
(1)*sita+n
(2)B=n(3)*sita*sita+n(4)*sita+n(5)C=n(6)*sita*sita+n(7)*sita+n(8)
P=(2.0*C/(-B+sqrt(B*B-4.0*A*C)))**4.0
P=P*Pstar
endsubroutinePsatW
【12】.TsatW.f90subroutineTsatW(P,T)
TsatW
D,E,F,G
if((P.lt.611.657).or.(P.gt.22.064E6))stop'
Reg4(Saturate)TsatW!
sita=(P/Pstar)**0.25
E=sita*sita+n(3)*sita+n(6)F=n
(1)*sita*sita+n(4)*sita+n(7)G=n
(2)*sita*sita+n(5)*sita+n(8)D=2.0*G/(-F-sqrt(F*F-4.0*E*G))
T=(n(10)+D-sqrt((n(10)+D)**2.0-4.0*(n(9)+n(10)*D)))/2.0
T=T*Tstar
endsubroutineTsatW
【13】.propreg1.f90subr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IAPWS_IF97 物性 计算 Fortran90 程序