- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IAPWS-IF97 水物性计算 Fortran90 程序
代码开源,版权所有,引用请标明出处(2013/3/27 修改)
本文给出了基于 IAPWS-IF97 的水物性计算 Fortran90 语言程序代码,程序编写为动态
链接库(dll)形式,以便于调用。下面具体讲述。
如上图所示,水与水蒸气可分为 5 个区,但本程序只适用于 4 个区,即图中的第 1、2、
3、4 区,不包括第 5 区。压力与温度范围为:
611.657Pa ≤ P ≤100MPa
273.15K ≤ T ≤1073.15K
程序的输入变量为压力 P 与温度 T,单位分别为 Pa 与 K。输出变量(12 个)如下:
----------------------------------------------------------------------------------------------------------------
比容 v 内能 u 比焓 h 比熵 s 定压比热容 Cp 定容比热容 Cv 声速 w
m^3/kg J/kg J/kg J/kg*K J/kg*K J/kg*K m/s
定压热膨胀率 β 等温压缩率 κ 导热系数 λ 动力粘度 μ 表面张力 σ
1/K 1/Pa W/m*K Pa*s N/m
----------------------------------------------------------------------------------------------------------------
输出变量是以一个数组的形式存储,例如数组为 prop(12),数组与变量的对应顺序为:
v u h s Cp Cv w β κ λ μ σ
单位如前所述。
现给出具体的调用方法:
给定压力 P(Pa)与温度 T(K),计算物性,程序自己判断所属区域:
call h2o(P,T,prop)
若想得到给定压力 P(Pa)或温度 T(K)下的饱和态物性,则可如下调用:
a. 给定压力 call PsatW(P,T)或给定温度 call TsatW(P,T)
b. 饱和液态 call h2o(P,0.999*T,prop(12))或饱和汽态 call h2o(P,1.001*T,prop(12))
当然还有其他方法,读者详细了解程序内容后,请自行发现。
这里给出获得动态链接库的方法:
1. 新建一个动态链接库工程
2. 加入附录所示源程序文件
3. 编译,获得最重要的下面两个文件:.lib 与.dll
4. 上面两个文件就可用于其他程序的物性调用
参考文献
Wolfgang Wagner, Hans-Joachim Kretzschmar. Properties ofWater and Steam Based on the
Industrial formulation IAPWS-IF97, Second Edition.
附录:源程序(19个文件)
【1】. const.f90
module const
implicit none
real*8 :: Rg=0.461526E3 !J/kg/K
real*8 :: Tc=647.096 !K
real*8 :: Pc=22.064E6 !Pa
real*8 :: rhoc=322.0 !kg/m^3
end module const
【2】. reg1.f90
module reg1
implicit none
integer :: I(34),J(34)
real*8 :: n(34)
data I /
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
1 ,
1 ,
1 ,
1 ,
1 ,
1 ,
2 ,
2 ,
2 ,
2 ,
2 ,
3 ,
3 ,
3 ,
4 ,
4 ,
4 ,
5 ,
8 ,
8 ,
21 ,
23 ,
29 ,
30 ,
31 ,
32
/
data J /
-2 ,
-1 ,
0 ,
1 ,
2 ,
3 ,
4 ,
5 ,
-9 ,
-7 ,
-1 ,
0 ,
1 ,
3 ,
-3 ,
0 ,
1 ,
3 ,
17 ,
-4 ,
0 ,
6 ,
-5 ,
-2 ,
10 ,
-8 ,
-11 ,
-6 ,
-29 ,
-31 ,
-38 ,
-39 ,
-40 ,
-41
/
data n /
0.14632971213167 ,
-0.84548187169114 ,
-3.756360367204 ,
3.3855169168385 ,
-0.95791963387872 ,
0.15772038513228 ,
-0.016616417199501 ,
8.1214629983568E-04 ,
2.831908
原创力文档


文档评论(0)