没有合适的资源?快使用搜索试试~ 我知道了~
首页Intel Fortran IAPWS-IF97水物性Fortran源程序
本文给出了基于IAPWS-IF97的水物性计算Fortran90语言程序代码,适用Compaq visual fortran和Intel Fortran 编译环境。目前网上大量水物性包在Intel Fortran调用都会报错,本程序最大优势是可在Intel Fortran 下实现物性调用。本版本基于网上版本修改,使用者若涉及版权问题,本人概不负责。
资源详情
资源评论
资源推荐

IAPWS-IF97 水物性 Fortran90 程序
原版本有问题,现已修改。
代码开源,版权所有,引用请标明出处
(2015/12/1 巢飞-西交大修改)
本文给出了基于 IAPWS-IF97 的水物性计算 Fortran90 语言程序代码,适用 Compaq
visual fortran 和 Intel Fortran 编译环境。目前网上大量水物性包在 Intel Fortran 调用都会报错,
本程序最大优势是可在 Intel Fortran 下实现物性调用。本版本基于网上版本修改,使用者若
涉及版权问题,本人概不负责。
如上图所示,水与水蒸气可分为 5 个区,但本程序只适用于 4 个区,即图中的第
1、2、3、4 区,不包括第 5 区。压力与温度范围为:

程序的输入变量为压力 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 β κ λ μ σ
单位如前所述。
1. 使用方法:
将附录 19 个源文件处理成.f90 文件(必须是.f90, 处理成.for 需要排除大量语法错
误),然后加入到所需调用物性的工程中,调试即可。
2. 调用方法:
给定压力 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.9999999*T,prop(12)) 或 饱 和 汽 态 call
h2o(P,1.0000001*T,prop(12)) (原文误差大,修正)
附录:源程序(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.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 &
/
end module reg1
【3】. reg2.f90
module reg2
implicit none
integer :: Jo(9),I(43),J(43)
real*8 :: no(9),n(43)
data Jo /&
0 ,&
1 ,&
-5 ,&
-4 ,&
-3 ,&
-2 ,&
-1 ,&
2 ,&
3 &
/
data no /&
-9.6927686500217 ,&
10.086655968018 ,&
-0.005608791128302 ,&
0.071452738081455 ,&
剩余26页未读,继续阅读


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论2