爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 36882|回复: 44

[源代码] 各种湿度(水汽压,比湿,露点,相对湿度)的换算及位温,假相当位温Fortran源代码

[复制链接]

新浪微博达人勋

发表于 2015-5-23 17:46:24 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 wheelar 于 2015-5-23 17:49 编辑

一般只要知道一个湿度参量,就可换算成其他的湿度,绝对量有水汽压,比湿,露点,相对量有相对湿度和温度露点差,另外程序里还提供了位温和假相当位温,其中,可以根据比湿或相对湿度或露点计算假相当位温
程序命名规则:FCN_SpecificHumidity_Rh(Tem,Lev,Rh),FCN代表函数,根据相对湿度(rh)计算比湿SpecificHumidity
以上源代码均经过测试通过检验
例子:根据比湿计算假相当位温:
function FCN_ThetaSe_SpecificHumidity(Tem,Lev,q)
    implicit none
    real(kind=4),intent(in) :: Tem,Lev,q
    real(kind=4) :: FCN_ThetaSe_SpecificHumidity
    real(kind=4) :: Theta,vaporPressure
    real(kind=4) :: sglPow,sglDen,sglLog,sglCoff
    vaporPressure=FCN_VaporPressure(Lev,q)
    Theta=FCN_Theta_SpecificHumidity(Tem,Lev,q)
    sglLog=3.5*log(Tem)-log(vaporPressure)-4.805
    sglDen=55.0+2840/sglLog
    sglCoff=3376.0/sglDen-2.54
    sglPow=sglCoff*q*(1.0-0.81*q)
    FCN_ThetaSe_SpecificHumidity=Theta*exp(sglPow)
    return
end function FCN_ThetaSe_SpecificHumidity

libMoisture.f90 (8.77 KB, 下载次数: 459)

本帖被以下淘专辑推荐:

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-6-16 13:59:47 | 显示全部楼层
wheelar 发表于 2015-5-25 20:16
所有的参数,vaporPressure为是水汽压,Es为饱和水气压,Tem:温度(K),dPoint:露点,Rh相对湿度,q比湿
...

那不知道各个参数的具体单位呢?比湿用的是g/kg,还是g/g?
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2015-5-23 21:56:15 来自手机 | 显示全部楼层
谢谢楼主分享
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-5-25 09:44:27 | 显示全部楼层
能否给出程序中的参数说明?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-5-25 17:00:21 | 显示全部楼层
下来先学习学习
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-5-25 20:16:19 | 显示全部楼层
daboy 发表于 2015-5-25 09:44
能否给出程序中的参数说明?

所有的参数,vaporPressure为是水汽压,Es为饱和水气压,Tem:温度(K),dPoint:露点,Rh相对湿度,q比湿
Qs,饱和比湿,theta:位温,thetase:假相当位温
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-6-3 10:00:24 | 显示全部楼层
很有帮助!谢谢分享
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-6-3 11:04:55 | 显示全部楼层
第一个函数用温度代入求饱和水汽压的公式中,if else 中是否缺少一个判断条件,因为这个语句对abc的赋值是错误的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-6-4 19:12:40 | 显示全部楼层
本帖最后由 wheelar 于 2015-6-4 19:16 编辑
heqiurui 发表于 2015-6-3 11:04
第一个函数用温度代入求饱和水汽压的公式中,if else 中是否缺少一个判断条件,因为这个语句对abc的赋值是 ...


谢谢提醒,只是这里关于饱和水汽压的计算,不同教材好像对系数确实不一样,其中有一种是根据以温度-12℃为界分为两种,还有直接就一种系数,我是两种都试过,好像差别并不大。可能是程序里面ifelse写的不明白,那块基本就没有用。不过即使就这么运行,虽然饱和水汽压无法验证,但通过饱和水汽压计算的比湿和原来模式输出的比湿比较,几乎是一样的,所以饱和水汽压应该也不会有太大问题
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-6-16 10:53:21 | 显示全部楼层
挺好的代码
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表