⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qsadv.f90

📁 CLM集合卡曼滤波数据同化算法
💻 F90
字号:
  SUBROUTINE qsadv(T,p,es,esdT,qs,qsdT)!=======================================================================!      Source file: qsadv.f90! Original version: Yongjiu Dai, September 15, 1999!!      Description: computes saturation mixing ratio and change in saturation!                   mixing ratio with respect to temperature!!        Reference: polynomial approximations from:!                   Piotr J. Flatau,et al,1992: polynomial fits to saturation !                   vapor pressure. Journal of Applied meteorology,31,1507-1513.!!-----------------------------------------------------------------------  IMPLICIT NONE! dummy arguments  real, INTENT(in)  :: T        ! temperature (K)  real, INTENT(in)  :: p        ! surface atmospheric pressure (pa)  real, INTENT(out) :: es       ! vapor pressure (pa)  real, INTENT(out) :: esdT     ! d(es)/d(T)  real, INTENT(out) :: qs       ! humidity (kg/kg)  real, INTENT(out) :: qsdT     ! d(qs)/d(T)! local  real td,vp,vp1,vp2  real a0,a1,a2,a3,a4,a5,a6,a7,a8  real b0,b1,b2,b3,b4,b5,b6,b7,b8  real c0,c1,c2,c3,c4,c5,c6,c7,c8  real d0,d1,d2,d3,d4,d5,d6,d7,d8! for water vapor (temperature range 0C-100C)  data a0/6.11213476   /,a1/ 0.444007856    /,a2/0.143064234e-01/  &    ,a3/0.264461437e-03/,a4/ 0.305903558e-05/,a5/0.196237241e-07/  &    ,a6/0.892344772e-10/,a7/-0.373208410e-12/,a8/0.209339997e-15/! for derivative:water vapor  data b0/0.444017302  /,b1/ 0.286064092e-01/,b2/ 0.794683137e-03/ &   ,b3/ 0.121211669e-04/,b4/ 0.103354611e-06/,b5/ 0.404125005e-09/ &   ,b6/-0.788037859e-12/,b7/-0.114596802e-13/,b8/ 0.381294516e-16/! for ice (temperature range -75C-0C)   data c0/6.11123516     /,c1/0.503109514    /,c2/0.188369801e-01/ &      ,c3/0.420547422e-03/,c4/0.614396778e-05/,c5/0.602780717e-07/ &      ,c6/0.387940929e-09/,c7/0.149436277e-11/,c8/0.262655803e-14/! for derivative:ice    data d0/0.503277922    /,d1/0.377289173e-01/,d2/0.126801703e-02/ &      ,d3/0.249468427e-04/,d4/0.313703411e-06/,d5/0.257180651e-08/ &      ,d6/0.133268878e-10/,d7/0.394116744e-13/,d8/0.498070196e-16/!=======================================================================      td       = T - 273.15      if(td >= 0.0)then        es   = a0 + td*(a1 + td*(a2 + td*(a3 + td*(a4 &                  + td*(a5 + td*(a6 + td*(a7 + td*a8)))))))        esdT = b0 + td*(b1 + td*(b2 + td*(b3 + td*(b4 &                  + td*(b5 + td*(b6 + td*(b7 + td*b8)))))))      else        es   = c0 + td*(c1 + td*(c2 + td*(c3 + td*(c4 &                  + td*(c5 + td*(c6 + td*(c7 + td*c8)))))))        esdT = d0 + td*(d1 + td*(d2 + td*(d3 + td*(d4 &                  + td*(d5 + td*(d6 + td*(d7 + td*d8)))))))      end if      es    = es    * 100.            ! pa      esdT  = esdT  * 100.            ! pa/K      vp    = 1.0   / (p - 0.378*es)      vp1   = 0.622 * vp      vp2   = vp1   * vp      qs    = es    * vp1             ! kg/kg      qsdT  = esdT  * vp2 * p         ! 1 / K  END SUBROUTINE qsadv

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -