通用物理量计算函数库帮助文档.docx
- 文档编号:9964489
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:29
- 大小:25.33KB
通用物理量计算函数库帮助文档.docx
《通用物理量计算函数库帮助文档.docx》由会员分享,可在线阅读,更多相关《通用物理量计算函数库帮助文档.docx(29页珍藏版)》请在冰豆网上搜索。
通用物理量计算函数库帮助文档
通用气象物理量计算函数库帮助文档
共享声明:
本软件和文档仅供大家学习参考和小范围业务使用,不得用作商业用途或作为科研推广基础软件。
不得反编译和修改软件。
软件可能存在精度问题或错误,请大家检验后使用,本软件不承担任何责任。
1介绍
收集和整理大量与气象有关的物理量常用公式以及相关的物理常量后,采用VisualStudio2005中的VC2005编程工具建立的一个类似数学函数库的通用动态链接库METEO.dll。
该库的命名空间名称为MeteoMethod,内部仅含有名为MeteoMethods的公共类,该类中存放所有通用气象物理量常数和计算函数。
2调用方式
建立一解决方案,选择新建项目,点击“CLR控制台应用程序”选项,在“名称”栏输入名称,如METEOTEST,点击“确定”建立一解决方案。
在其项目中添加对METEO.dll的引用。
在主程序头部分中添加usingnamespaceMeteoMethod表示引用MeteoMethod命名空间。
在程序调用部分输入MeteoMethods:
:
后自动出现可供调用的计算函数和常数,选择所需名称并填入参数完成函数调用编码工作。
主程序示例代码如下:
#include"stdafx.h"
usingnamespaceSystem;
usingnamespaceMeteoMethod;
intmain(array : String^>^args) { //进行位温θ函数调用 floattheta=MeteoMethods: : Theta(20,700); //进行Cpd常数的调用 floataa=MeteoMethod: : MeteoMethods: : Cpd; //输出位温θ结果 Console: : WriteLine(theta); //输出Cpd结果 Console: : WriteLine(aa); return0; } 其中,调用函数的输入参数和输出结果含义参考下面具体内容。 3 具体内容 由气象物理量常数和计算函数两部分组成。 3.1常数 物理量常数是建立函数库的基础,主要分为地球、太阳常数和气象学常用数据两类。 相关内容如下: staticintERROR_DEFAULT_int=-999;//一般缺省值 staticfloatERROR_DEFAULT_float=-9.99E8f;//计算结果可能<-999时的缺省值,如角速度 (一)地球、太阳常数 staticdoubleE_M=5.974E24;//质量=5.974E24千克 staticintE_YearEs=31556926;//.地球公转一周的时间: 365日时分秒(秒) staticdoubleE_DayOs=86164.094;//地球自转一周的时间23时分秒(.094秒) staticintE_DayAs=86400;//平太阳日=86400平太阳秒 staticfloatE_YearDays=365.2500f;//儒略年=365.2500日 staticdoubleE_AtmosM=5.14E18;//地球大气总质量=5.14E18kg staticdoubleE_S=5.100501E8;//地球表面积=5.100501E8(km*km) staticdoubleE_V=1.0831579E12;//地球体积=1.0831579E12(km**3) staticfloatE_LandS=1.49E8;//地球陆地面积=1.49E8(km*km) staticfloatE_OceanS=3.61E8;//地球海洋面积=3.61E8(km*km) staticdoubleE_SunM=1.9891E30;//太阳质量=1.9891E30kg staticintE_SunR=696265;//太阳半径=696265km staticintE_SunT=5770;//太阳表面有效温度=5770K staticdoubleE_SunEarthL=1.49597892E8;//日地平均距离=1.49597892E8km staticfloatE_SunEarthLN=1.4710E8;//近日点日地距离=1.4710E8km staticfloatE_SunEarthLF=1.5210E8;//远日点日地距离=1.5210E8km (二)气象学常用数据 staticdoubleRadian_Degree=57.2957795;//1弧度=57.2957795°=57°′.806″ staticdoubleDegree_Radian=0.01745329;//1度=π/180°=0.01745329(弧度) staticdoubleR_Polar=6356.755;//极处半径b=6356.755km staticdoubleR_Aver=6371.004;//平均半径=6371.004km staticdoubleE_RotationV=7.2921152E-5;//地球自转角速度w=7.2921152E-5rad/s staticfloatLatitude_KM=111.137f;//纬度°平均长度=111.137km staticfloatLongitude_Equator_KM=111.32f;//赤道上经度°长度=111.32km staticfloatGH=9.8f;//位势米=9.8(m**m)/(s**s) staticintH0=7991;//标准情况下均质大气高度H0=7994m staticfloatPS0=1013.25f;//标准大气压=1013.25hPa staticfloatVS0=331.36f;//标准大气中的声速(°C)=331.36m/s staticfloatG0=9.86f;//表面重力加速度g=9.86m/(s**s) staticfloatGS0=9.80665f;//地球标准重力加速度=9.80665m/(s**s) staticfloatE0=6.11f;//0℃的饱和水汽压E0=6.11hPa staticdoubleC0=2.99792458E8;//光速(真空)c=2.99792458E8m/s staticdoubleG=6.6720E-11;//引力常数G=6.6720E-11(m**5)/(s**s)/kg staticdoublePlanck=6.626176E-34;//普朗克常数h=6.626176E-34J*s staticfloatK0=1.380662f;//波尔兹曼常数K=1.380662J/K staticfloatStefan_Boltzmann=5.67032f;//斯提芬-波尔兹曼常数σ=5.67032W/(m**m)/(K**4) staticfloatWien_C=0.002898f;//维恩位移定律常数λmT=0.2898×-2m*K staticfloatCal_J=4.18683f;//1cal=4.18683J staticfloatJ_Cal=0.238844f;//1J=0.238844cal staticfloatR0=8.31441f;//通用气体常数R=8.31441J/K/Kmol staticfloatRd=287.05f;//(干空气)的比气体常数=287.05J/kg/K staticfloatRv=461.5f;//(水汽)的比气体常数=461.5J/kg/K staticintCpv=1870;//定压的(水汽)比热=1870J/kg/K staticintCvv=1410;//定容的(水汽)比热=1410J/kg/K staticintCpd=1006.1;//干空气定压比热=1005J/kg/K staticintCvd=717;//干空气定容比热=717J/kg/K staticfloatRdCpd=0.2854f;//泊松方程常数Kd=Rd/Cpd=0.2854 staticfloatCpdCvd=1.401f;//干空气比热之比率K=Cpd/Cvd=1.401 staticintCi=2106;//(冰)比热(度)=2106J/kg/K staticintCl=4218;//(水)比热(0度)=4218J/kg/K staticfloatDensityDry=1.276f;//干空气密度(°C,百帕)=1.276kg/(m**3) staticfloatRefractionDry=1.0002919f;//干空气折射率(对钠D线,λ=589微米)=1.0002919 staticfloatRefractionAtmos=60.3f;//大气折射常数(毫米,°C)=60.3″ staticfloatrd0=9.76f;//干绝热温度直减率(γd)=9.76°C/km staticfloatra0=6.5f;//对流层平均气温直减率(γ)=6.5°C/km staticfloatMV=0.02241410f;//标准温压下摩尔体积=2.241410E-2(m**3)/mol staticdoublee00=8.85E-12;//真空介电常数e0=8.85E-12(C**C)/(N*m) staticfloatT0=273.15f;//冰点温度(大气压)(K) staticfloatDensity_Ice=0.917f;//(冰)密度Iρ=0.917g/(m**3) staticintLl=2500E3;//凝结和蒸发潜热L=2500J/kg staticintLv=2833E3;//凝华和升华潜热L=2833J/kg staticintLi=334E3;//冻结和融化潜热L=334J/kg staticinthPa_Force=1000;//百帕=1000达因/厘米*厘米 3.2简单函数 简单函数包括动力函数和热力函数两部分。 没有特殊声明,函数输出缺省值为ERROR_DEFAULT_int(-999);有声明时为ERROR_DEFAULT_float(-9.99E8)//缺省值 staticfloatERROR_DEFAULT_float=-9.99E8f;//计算结果可能<-999时的缺省值,如角速度 3.2.1动力函数 1.地球引力 staticfloatGh(floath); 输入: h: 海拔高度(km); 输出: : 地球引力(ms-2); 公式来源: 《大气科学常用公式》P91 2.重力Gh是作用在海平面上单位质量空气微团上的地球引力,Lati为纬度 staticfloatGw(floatGh,floatLati); 输入: Gh: 海平面上单位质量空气微团上的地球引力(ms-2); Lati: 纬度 输出: g: 重力(ms-2); 公式来源: 强对流天气的应用与研究P79 3.计算纬度长度 staticfloatLati_L(floatLati); 输入: Lati: 纬度 输出: Lati_L: 1个纬度长度(km); 公式来源: 《大气科学常用公式》P91 4.计算经度长度 staticfloatLongi_L(floatLati); 输入: Lati: 纬度 输出: Longi_L: 1个经度长度(km); 公式来源: 《大气科学常用公式》P91 5.计算风向方位角 staticfloatWindDirection(floatu0,floatv0); 输入: u0: x方向风分量(m/s); v0: y方向风分量(m/s); 输出: dd: 风向方位角 6.计算风速 staticfloatWindVelocity(floatu0,floatv0); 输入: u0: x方向风分量(m/s); v0: y方向风分量(m/s); 输出: ff: 全风速(m/s); 7.计算风速U staticfloatWindVelocityU(floatdd,floatff); 输入: dd: 风向方位角; ff: 全风速(m/s); 输出: u0: x方向风分量(m/s); 8.计算风速V staticfloatWindVelocityV(floatdd,floatff); 输入: dd: 风向方位角; ff: 全风速(m/s); 输出: v0: y方向风分量(m/s); 9.压高公式(计算厚度) staticfloatDH(floatt1,floattd1,floatp1,floatt2,floattd2,floatp2); 输入: t1: 低层温度(℃); td1: 低层露点温度(℃); p1: 低层气压(百帕); t2: 高层温度(℃); td2: 高层露点温度(℃) p2: 高层气压(百帕) 输出: DH: 厚度(位势米); 10.计算水汽通量,其它通量共用 staticfloatVq(floatu0,floatv0,floatq); 输入: u0: x方向风分量(m/s); v0: y方向风分量(m/s); q: 比湿(kg/kq) 输出: Vq: 水汽通量(m/s); 11.计算角速度 staticfloatAngle_V(floatv,floatr); 输入: v: 线速度(m/s); r: 质点到旋转轴的距离(m); 输出: : 角速度(1/s),缺省值为ERROR_DEFAULT_float; 公式来源: 国外强对流天气的应用与研究P80 12.计算Coriolis参数 staticfloatCoriolis(floatLati); 输入: Lati: 纬度 输出: f: Coriolis参数(1/s); 公式来源: 强对流天气的应用与研究P82 13.计算Beta参数 staticfloatBeta(floatLati); 输入: Lati: 纬度 输出: : (1/(s*km)); 公式来源: 《大气科学常用公式》P41 14.计算绝对动量 staticfloatVr(floatLati,floatv,floatx); 输入: v: 风速(m/s); Lati: 纬度; x: 距离; 输出: vr: 绝对动量(m/s),缺省值为ERROR_DEFAULT_float; 公式来源: 国外强对流天气的应用研究P82 15.计算p坐标系中地转风 staticfloatVg(floatLati,floatdh,floatdn); 输入: dh: 相邻两条等高线之间的位势差; dn: 相邻两条等高线之间的最短水平距离(m) Lati: 纬度 输出: Vg: p坐标系中地转风(ms-1); 16.网格计算水平涡度 staticfloatVort_d(floatd,floatua,floatuc,floatvb,floatvd); 输入: ua、uc、vb、vd: 中心差法,u,v为风分量,A点在上,B点在左,C点在下,D点在右; d: 格距(m); 输出: ζ: 水平涡度(s-1); 17.网格计算水平散度 staticfloatDiv_d(floatd,floatub,floatud,floatva,floatvc); 输入: ub、ud、va、vc: 中心差法,u,v为风分量,A点在上,B点在左,C点在下,D点在右; d: 格距(m); 输出: D: 水平散度(s-1); 18.计算绝对涡度 staticfloatVorta_d(floatvort_d,floatLati); 输入: vort_d: 水平涡度(s-1); Lati: 纬度 输出: ζa: 水平绝对涡度(s-1); 19.台风中心附近r处切向速度 staticfloatVrt(floatLati,floatr,floatre); 输入: r: 离台风中心半径(m); re: 环境风离台风中心半径(m); Lati: 纬度 输出: Vrt: 台风中心附近r处切向速度(m/s); 20.台风中心附近最大风速Vmax staticfloatVmax(floatkn,floatp0,floatpe); 输入: kn: 经验系数(中心附近.7-8.3,美为14、16); p0: 台风中心最低气压(hPa); pe: 台风外围环境场气压(一般取1013hPa); 输出: Vmax: 台风中心附近最大风速(m/s); 公式来源: 《大气科学常用公式》P440 21.降水率反算整层平均垂直速度 staticfloatWi(floatI,floatqs0); 输入: I: 降水率; qs0: 地面饱和比湿; 输出: W: 垂直速度(m/s); 22.计算风能密度公式 staticfloatEw(floatv,floatr); 输入: r: 密度(ρ,公斤/立方米); v: 风速(米/秒); 输出: Ew: 能量W(焦耳/秒.平方米,J/sec.m2); 3.2.2热力函数 1.摄氏-绝对温度转换 staticfloatt(floatT); 输入: t: 摄氏温度(℃); 输出: T: 绝对温度(K); 公式来源: 《大气科学常用公式》P468 2.摄氏-华氏温度转换 staticfloatC(floatF); 输入: F: 华氏温度; 输出: C: 摄氏温度(℃); 公式来源: 《大气科学常用公式》P468 3.温度露点差 staticfloatT_Td(floatT,floatTd); 输入: T: 温度; Td: 露点; 输出: T_Td: 温度露点差(单位与T、Td有关); 4.虚温 staticfloatTv(floatt,floatq); 输入: P: 气压(hPa); t: 温度(℃); q: 比湿; 输出: Tv: 虚温(℃); 5.虚温 staticfloatTv(floatp,floatt,floate); 输入: P: 气压(hPa); t: 温度(℃); e: 水汽压(hPa); 输出: Tv: 虚温(℃); 6.饱和水汽压(经验公式) staticfloatVaporPressure(floatt,floatp); 输入: P: 气压(hPa); t: 温度(℃); 输出: E: 饱和水汽压(hPa); 公式来源: 《天气分析预报物理量计算基础》P5 7.水汽压 staticfloate(floatqm,floatp); 输入: p: 气压(hPa); qm: 混合比; 输出: e: 水气压(hPa); 公式来源: 《大气科学常用公式》P381 8.水汽密度 staticfloatVaporDensity(floatT,floate); 输入: T: 绝对温度; e: 水气压(hPa); 输出: VD: 水汽密度(kg/m3); 公式来源: 《天气分析预报物理量计算基础》P7 9.比湿 staticfloatq(floatt,floattd,floatp); 输入: P: 气压(hPa); t: 温度(℃); td: 露点温度(℃); 输出: q: 比湿; 10.比湿 staticfloatq(floate,floatp); 输入: P: 气压(hPa); e: 水气压(hPa); 输出: q: 比湿; 11.相对湿度 staticfloatRh(floatt,floattd,floatp); 输入: P: 气压(hPa); t: 温度(℃); td: 露点温度(℃); 输出: Rh: 相对湿度; 12.水汽压转露点 staticfloatTd2(floatt,floate,floatp); 输入: P: 气压(hPa); t: 温度(℃); e: 水汽压(hPa); 输出: td: 露点温度(℃); 13.相对湿度转露点 staticfloatTd(floatt,floatRh,floatp); 输入: P: 气压(hPa); t: 温度(℃); Rh: 相对湿度; 输出: td: 露点温度(℃); 14.混合比湿 staticfloatqm(floatp,floate); 输入: P: 气压(hPa); e: 水汽压(hPa); 输出: qm: 混合比湿; 15.两等压面之间的含水量 staticfloatQ(floatq1,floatq2,floatp1,floatp2); 输入: q1: 低层比湿(千克/千克); q2: 上层比湿; P1: 低层气压(hPa); P2: 上层气压(hPa); 输出: Q: 两等压面之间的含水量(千克/立方米); 16.抬升凝结高度的温度tc staticfloatTC(floatP,floatT,floatTD); 输入: P: 气压(hPa); t: 温度(℃); td: 露点温度(℃); 输出: tc: 抬升凝结高度的温度(℃); 公式来源: 《天气分析预报物理量计算基础》P19 17.抬升凝结高度的气压pc staticfloatPC(floatP,floatT,floatTD); 输入: P: 气压(hPa); t: 温度(℃); td: 露点温度(℃); 输出: pc: 抬升凝结高度的气压; 公式来源: 《天气分析预报物理量计算基础》P19 18.计算抬升凝结高度、温度、相当位温 staticvoidTC_PC(floatP,floatT,floatTD,float&PC,float&TC,float&THSE); 输入: P: 气压(hPa); t: 温度(℃); td: 露点温度(℃); 输出: tc: 抬升凝结高度的温度(℃); pc: 抬升凝结高度的气压(hPa); THSE: 相当位温(℃) 19.相当位温 staticfloatTHSE(floatP,floatT,floatTD); 输入: P: 气压(hPa); t: 温度(℃); td: 露点温度(℃); 输出: THSE: 相当位温(℃) 20.等熵凝结高度 staticfloat
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通用 物理量 计算 函数库 帮助 文档