From 98f53cf5c4eef30890998926b59f510a41445f5a Mon Sep 17 00:00:00 2001 From: barlage Date: Thu, 25 Feb 2021 18:21:42 -0700 Subject: [PATCH 1/2] resolve some TODO in noahmp driver --- physics/sfc_noahmp_drv.F90 | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/physics/sfc_noahmp_drv.F90 b/physics/sfc_noahmp_drv.F90 index 475520473..392e29071 100644 --- a/physics/sfc_noahmp_drv.F90 +++ b/physics/sfc_noahmp_drv.F90 @@ -141,7 +141,7 @@ subroutine noahmpdrv_run & real(kind=kind_phys), parameter :: a4 = 35.86 real(kind=kind_phys), parameter :: a23m4 = a2*(a3-a4) - real, parameter :: undefined = -1.e36 ! TODO change to smaller value + real, parameter :: undefined = 9.99e20_kind_phys integer, parameter :: nsoil = 4 ! hardwired to Noah integer, parameter :: nsnow = 3 ! max. snow layers @@ -657,7 +657,7 @@ subroutine noahmpdrv_run & cloud_water_forcing = -9999.0 sw_radiation_forcing = dswsfc(i) radiation_lw_forcing = dlwflx(i) - precipitation_forcing = rhoh2o * tprcp(i) / delt !1000.0 * tprcp(i) / delt + precipitation_forcing = 1000.0 * tprcp(i) / delt precip_convective = rainc_mp(i) precip_non_convective = rainn_mp(i) precip_sh_convective = 0. @@ -681,8 +681,7 @@ subroutine noahmpdrv_run & soil_liquid_vol = slc(i,:) soil_moisture_vol = smc(i,:) temperature_canopy_air = tahxy(i) - vapor_pres_canopy_air = (air_pressure_surface*spec_humidity_forcing)/(0.622+spec_humidity_forcing) - ! TODO recalculated? set to eahxy + vapor_pres_canopy_air = eahxy(i) canopy_wet_fraction = fwetxy(i) canopy_liquid = canliqxy(i) canopy_ice = canicexy(i) @@ -690,19 +689,19 @@ subroutine noahmpdrv_run & temperature_ground = tgxy(i) spec_humidity_surface = undefined ! doesn't need inout; should be out snowfall = qsnowxy(i) ! doesn't need inout; should be out -! rainfall ! doesn't need inout; should be out TODO + rainfall = -9999.0 ! doesn't need inout; should be out snow_levels = nint(snowxy(i)) interface_depth = zsnsoxy(i,:) snow_depth = snwdph(i) * 0.001 ! convert from mm to m snow_water_equiv = weasd(i) - if (snow_water_equiv /= 0.0 .and. snow_depth == 0.0) then !TODO this should be done elsewhere + if (snow_water_equiv /= 0.0 .and. snow_depth == 0.0) then snow_depth = 10.0 * snow_water_equiv /1000.0 endif snow_level_ice = snicexy(i,:) snow_level_liquid = snliqxy(i,:) depth_water_table = zwtxy(i) aquifer_water = waxy(i) - saturated_water = waxy(i) ! why not wta !!! TODO + saturated_water = wtxy(i) lake_water = wslakexy(i) leaf_carbon = lfmassxy(i) root_carbon = rtmassxy(i) @@ -753,8 +752,8 @@ subroutine noahmpdrv_run & if ( vegetation_category == isice_table ) then if (precipitation_forcing > 0.0) then - if (srflag(i) > 0.0) then ! TODO rain/snow flag, one condition is enough? - snowfall = srflag(i) * precipitation_forcing/10.0 ! still use rho water? + if (srflag(i) > 0.0) then + snowfall = srflag(i) * precipitation_forcing ! need snowfall for glacier snow age endif endif @@ -926,7 +925,7 @@ subroutine noahmpdrv_run & snicexy (i,:) = snow_level_ice snliqxy (i,:) = snow_level_liquid snwdph (i) = snow_depth * 1000.0 ! convert from mm to m - canopy (i) = canopy_ice + canopy_liquid ! TODO check units + canopy (i) = canopy_ice + canopy_liquid canliqxy (i) = canopy_liquid canicexy (i) = canopy_ice zwtxy (i) = depth_water_table @@ -947,8 +946,7 @@ subroutine noahmpdrv_run & snowc (i) = snow_cover_fraction sncovr1 (i) = snow_cover_fraction - ! TODO check this eqn shoud lthis be q2 not q1 why two con_cp - qsurf (i) = q1(i) + evap(i) / (con_hvap / con_cp * density * con_cp * ch(i) * wind(i)) + qsurf (i) = q1(i) + evap(i) / (con_hvap / con_cp * density * ch(i) * wind(i)) tskin (i) = temperature_radiative tsurf (i) = temperature_radiative tvxy (i) = temperature_leaf From bfba6d744278a00e4cd8c9440e5a488f28c012b8 Mon Sep 17 00:00:00 2001 From: barlage Date: Thu, 25 Feb 2021 18:22:33 -0700 Subject: [PATCH 2/2] change czil in table to more reasonable value --- physics/noahmp_tables.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/physics/noahmp_tables.f90 b/physics/noahmp_tables.f90 index 84a5775a5..6341ae61a 100644 --- a/physics/noahmp_tables.f90 +++ b/physics/noahmp_tables.f90 @@ -735,7 +735,7 @@ module noahmp_tables real :: refkdt_table = 3.0 !parameter in the surface runoff parameterization real :: frzk_table =0.15 !frozen ground parameter real :: zbot_table = -8.0 !depth [m] of lower boundary soil temperature - real :: czil_table = 0.01 !parameter used in the calculation of the roughness length for heat + real :: czil_table = 0.1 !parameter used in the calculation of the roughness length for heat ! mptable.tbl radiation parameters