44 LIA, LIS, LIE, LJA, LJS, LJE, &
53 ZMFLX, XMFLX, YMFLX, &
63 qsat => atmos_saturation_pres2qsat_all
67 integer,
intent(in) :: LIA, LIS, LIE
68 integer,
intent(in) :: LJA, LJS, LJE
70 real(RP),
intent(in) :: SNOW_frac(lia,lja)
71 real(RP),
intent(in) :: TMPA(lia,lja)
72 real(RP),
intent(in) :: PRSA(lia,lja)
73 real(RP),
intent(in) :: WA (lia,lja)
74 real(RP),
intent(in) :: UA (lia,lja)
75 real(RP),
intent(in) :: VA (lia,lja)
76 real(RP),
intent(in) :: RHOA(lia,lja)
77 real(RP),
intent(in) :: QVA (lia,lja)
78 real(RP),
intent(in) :: Z1 (lia,lja)
79 real(RP),
intent(in) :: PBL (lia,lja)
80 real(RP),
intent(in) :: RHOS(lia,lja)
81 real(RP),
intent(in) :: PRSS(lia,lja)
83 real(RP),
intent(in) :: LST1 (lia,lja)
84 real(RP),
intent(in) :: QVEF (lia,lja)
86 real(RP),
intent(in) :: Z0M (lia,lja)
87 real(RP),
intent(in) :: Z0H (lia,lja)
88 real(RP),
intent(in) :: Z0E (lia,lja)
90 real(RP),
intent(out) :: ZMFLX(lia,lja)
91 real(RP),
intent(out) :: XMFLX(lia,lja)
92 real(RP),
intent(out) :: YMFLX(lia,lja)
93 real(RP),
intent(out) :: U10 (lia,lja)
94 real(RP),
intent(out) :: V10 (lia,lja)
95 real(RP),
intent(out) :: T2 (lia,lja)
96 real(RP),
intent(out) :: Q2 (lia,lja)
118 log_info(
"LAND_PHY_SNOW_DIAGS",*)
'Snow surface diagnostic' 124 if( snow_frac(i,j) > 0.0_rp )
then 126 qdry = 1.0_rp - qva(i,j)
127 rtot = qdry * rdry + qva(i,j) * rvap
129 call qsat( lst1(i,j), prss(i,j), qdry, &
132 qvs = ( 1.0_rp - qvef(i,j) ) * qva(i,j) + qvef(i,j) * qvsat
157 zmflx(i,j) = -rhos(i,j) * ustar * ustar / uabs * wa(i,j)
158 xmflx(i,j) = -rhos(i,j) * ustar * ustar / uabs * ua(i,j)
159 ymflx(i,j) = -rhos(i,j) * ustar * ustar / uabs * va(i,j)
162 u10(i,j) = ua(i,j) * log( 10.0_rp / z0m(i,j) ) / log( z1(i,j) / z0m(i,j) )
163 v10(i,j) = va(i,j) * log( 10.0_rp / z0m(i,j) ) / log( z1(i,j) / z0m(i,j) )
164 t2(i,j) = lst1(i,j) + ( tmpa(i,j) - lst1(i,j) ) * ( log( 2.0_rp / z0m(i,j) ) * log( 2.0_rp / z0h(i,j) ) ) &
165 / ( log( z1(i,j) / z0m(i,j) ) * log( z1(i,j) / z0h(i,j) ) )
166 q2(i,j) = qvs + ( qva(i,j) - qvs ) * ( log( 2.0_rp / z0m(i,j) ) * log( 2.0_rp / z0e(i,j) ) ) &
167 / ( log( z1(i,j) / z0m(i,j) ) * log( z1(i,j) / z0e(i,j) ) )
real(rp), public const_cpdry
specific heat (dry air,constant pressure) [J/kg/K]
module atmosphere / saturation
real(rp), parameter, public const_stb
Stefan-Boltzman constant [W/m2/K4].
real(rp), public const_rdry
specific gas constant (dry air) [J/kg/K]
subroutine, public land_phy_snow_diags(LIA, LIS, LIE, LJA, LJS, LJE, SNOW_frac, TMPA, PRSA, WA, UA, VA, RHOA, QVA, Z1, PBL, RHOS, PRSS, LST1, QVEF, Z0M, Z0H, Z0E, ZMFLX, XMFLX, YMFLX, U10, V10, T2, Q2)
module land / physics / snow / diagnostics
real(rp), public const_pre00
pressure reference [Pa]
procedure(bc), pointer, public bulkflux
real(rp), parameter, public const_rvap
specific gas constant (water vapor) [J/kg/K]