From e142700c7f015d1bd4e52ffb26b41cc8a538fe1b Mon Sep 17 00:00:00 2001 From: Qingfu Liu Date: Wed, 22 May 2024 09:18:05 -0400 Subject: [PATCH] update files noahmpdrv.F90 noahmpdrv.meta module_sf_noahmplsm.F90 --- .../Land/Noahmp/module_sf_noahmplsm.F90 | 93 +++++++++---------- physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 | 29 ++---- physics/SFC_Models/Land/Noahmp/noahmpdrv.meta | 19 +--- 3 files changed, 53 insertions(+), 88 deletions(-) diff --git a/physics/SFC_Models/Land/Noahmp/module_sf_noahmplsm.F90 b/physics/SFC_Models/Land/Noahmp/module_sf_noahmplsm.F90 index 8086831e9..9e9dfed91 100644 --- a/physics/SFC_Models/Land/Noahmp/module_sf_noahmplsm.F90 +++ b/physics/SFC_Models/Land/Noahmp/module_sf_noahmplsm.F90 @@ -423,9 +423,9 @@ subroutine noahmp_sflx (parameters, & smceq , & ! in : vegetation/soil characteristics sfctmp , sfcprs , psfc , uu , vv , q2, garea1 , & ! in : forcing qc , soldn , lwdn,thsfc_loc, prslkix,prsik1x,prslk1x,& ! in : forcing - varf , psl_gwd_z0m_factor, & ! in : small scale oro std + varf , gwd_z0m_factor, & ! in : turbulent orographic form drag pblhx , iz0tlnd , itime ,psi_opt ,& - prcpconv, prcpnonc, prcpshcv, prcpsnow, prcpgrpl, prcphail, & ! in : forcing + prcpconv, prcpnonc, prcpshcv, prcpsnow, prcpgrpl, prcphail, & ! in : forcing tbot , co2air , o2air , foln , ficeold , zlvl , & ! in : forcing ep_1 , ep_2 , epsm1 , cp , & ! in : constants albold , sneqvo , & ! in/out : @@ -437,7 +437,7 @@ subroutine noahmp_sflx (parameters, & cm , ch , tauss , & ! in/out : grain , gdd , pgs , & ! in/out smcwtd ,deeprech , rech , ustarx , & ! in/out : - z0wrf , z0hwrf , ts , & ! out : + z0wrf , z0hwrf , ts , & ! out : fsa , fsr , fira , fsh , ssoil , fcev , & ! out : fgev , fctr , ecan , etran , edir , trad , & ! out : tgb , tgv , t2mv , t2mb , q2v , q2b , & ! out : @@ -446,9 +446,9 @@ subroutine noahmp_sflx (parameters, & qsnbot , ponding , ponding1, ponding2, rssun , rssha , & ! out : albd , albi , albsnd , albsni , & ! out : bgap , wgap , chv , chb , emissi , & ! out : - shg , shc , shb , evg , evb , ghv , & ! out : - ghb , irg , irc , irb , tr , evc , & ! out : - chleaf , chuc , chv2 , chb2 , fpice , pahv , & + shg , shc , shb , evg , evb , ghv , & ! out : + ghb , irg , irc , irb , tr , evc , & ! out : + chleaf , chuc , chv2 , chb2 , fpice , pahv , & pahg , pahb , pah , esnow , canhs , laisun , & laisha , rb , qsfcveg , qsfcbare & #ifdef CCPP @@ -494,8 +494,8 @@ subroutine noahmp_sflx (parameters, & real (kind=kind_phys) , intent(in) :: prslk1x !< in exner function real (kind=kind_phys) , intent(in) :: garea1 !< in exner function - real (kind=kind_phys) , intent(in) :: varf !< small scale oro std - real (kind=kind_phys) , intent(in) :: psl_gwd_z0m_factor ! + real (kind=kind_phys) , intent(in) :: varf !< sub-grid orography standard deviation [m] + real (kind=kind_phys) , intent(in) :: gwd_z0m_factor ! turbulent orographic form drag roughness length factor real (kind=kind_phys) , intent(in) :: pblhx !< pbl height integer , intent(in) :: iz0tlnd !< z0t option integer , intent(in) :: itime !< @@ -835,7 +835,7 @@ subroutine noahmp_sflx (parameters, & fveg ,shdfac, pahv ,pahg ,pahb , & !in qsnow ,dzsnso ,lat ,canliq ,canice ,iloc, jloc , & !in thsfc_loc, prslkix,prsik1x,prslk1x,garea1, & !in - varf,psl_gwd_z0m_factor , & !in + varf ,gwd_z0m_factor , & !in pblhx ,iz0tlnd, itime ,psi_opt, ep_1, ep_2, epsm1,cp, & z0wrf ,z0hwrf , & !out imelt ,snicev ,snliqv ,epore ,t2m ,fsno , & !out @@ -1680,7 +1680,7 @@ subroutine energy (parameters,ice ,vegtyp ,ist ,nsnow ,nsoil , & !in fveg ,shdfac, pahv ,pahg ,pahb , & !in qsnow ,dzsnso ,lat ,canliq ,canice ,iloc , jloc, & !in thsfc_loc, prslkix,prsik1x,prslk1x,garea1, & !in - varf,psl_gwd_z0m_factor , & !in + varf,gwd_z0m_factor , & !in pblhx , iz0tlnd, itime,psi_opt,ep_1, ep_2, epsm1, cp, & z0wrf ,z0hwrf , & !out imelt ,snicev ,snliqv ,epore ,t2m ,fsno , & !out @@ -1762,8 +1762,8 @@ subroutine energy (parameters,ice ,vegtyp ,ist ,nsnow ,nsoil , & !in real (kind=kind_phys) , intent(in) :: prslk1x !< in exner function real (kind=kind_phys) , intent(in) :: garea1 !< - real (kind=kind_phys) , intent(in) :: varf - real (kind=kind_phys) , intent(in) :: psl_gwd_z0m_factor + real (kind=kind_phys) , intent(in) :: varf !< sub-grid orography standard deviation [m] + real (kind=kind_phys) , intent(in) :: gwd_z0m_factor !< turbulent orographic form drag roughness length factor real (kind=kind_phys) , intent(in) :: pblhx !< pbl height real (kind=kind_phys) , intent(in) :: ep_1 !< real (kind=kind_phys) , intent(in) :: ep_2 !< @@ -2020,8 +2020,6 @@ subroutine energy (parameters,ice ,vegtyp ,ist ,nsnow ,nsoil , & !in chuc = 0. chv2 = 0. rb = 0. - laisun = 0. - laisha = 0. cdmnv = 0.0 ezpdv = 0.0 @@ -2259,7 +2257,7 @@ subroutine energy (parameters,ice ,vegtyp ,ist ,nsnow ,nsoil , & !in foln ,co2air ,o2air ,btran ,sfcprs , & !in rhsur ,iloc ,jloc ,q2 ,pahv ,pahg , & !in thsfc_loc, prslkix,prsik1x,prslk1x, garea1, & !in - varf , psl_gwd_z0m_factor, & !in + varf , gwd_z0m_factor, & !in pblhx ,iz0tlnd ,itime ,psi_opt ,ep_1, ep_2, epsm1, cp, & eah ,tah ,tv ,tgv ,cmv, ustarx , & !inout #ifdef CCPP @@ -2273,8 +2271,7 @@ subroutine energy (parameters,ice ,vegtyp ,ist ,nsnow ,nsoil , & !in csigmaf1, & !out !jref:start qc ,qsfc ,psfc , & !in - q2v ,chv2 ,chleaf ,chuc , & - rb) !out + q2v ,chv2, chleaf, chuc) !inout ! new coupling code @@ -2298,7 +2295,7 @@ subroutine energy (parameters,ice ,vegtyp ,ist ,nsnow ,nsoil , & !in emg ,stc ,df ,rsurf ,latheag , & !in gammag ,rhsur ,iloc ,jloc ,q2 ,pahb , & !in thsfc_loc, prslkix,prsik1x,prslk1x,vegtyp,fveg,shdfac,garea1, & !in - varf ,psl_gwd_z0m_factor, & !in + varf ,gwd_z0m_factor, & !in pblhx ,iz0tlnd ,itime ,psi_opt ,ep_1, ep_2, epsm1, cp, & #ifdef CCPP tgb ,cmb ,chb, ustarx,errmsg ,errflg , & !inout @@ -3712,7 +3709,7 @@ subroutine vege_flux(parameters,nsnow ,nsoil ,isnow ,vegtyp ,veg , & foln ,co2air ,o2air ,btran ,sfcprs , & !in rhsur ,iloc ,jloc ,q2 ,pahv ,pahg , & !in thsfc_loc, prslkix,prsik1x,prslk1x, garea1, & !in - varf ,psl_gwd_z0m_factor, & !in + varf ,gwd_z0m_factor, & !in pblhx ,iz0tlnd ,itime ,psi_opt ,ep_1, ep_2, epsm1, cp, & eah ,tah ,tv ,tg ,cm,ustarx,& !inout #ifdef CCPP @@ -3725,8 +3722,7 @@ subroutine vege_flux(parameters,nsnow ,nsoil ,isnow ,vegtyp ,veg , & t2mv ,psnsun ,psnsha ,canhs , & !out csigmaf1, & !out qc ,qsfc ,psfc , & !in - q2v ,cah2 ,chleaf ,chuc , & !inout - rb) !out + q2v ,cah2 ,chleaf ,chuc ) !inout ! -------------------------------------------------------------------------------------------------- ! use newton-raphson iteration to solve for vegetation (tv) and @@ -3763,8 +3759,8 @@ subroutine vege_flux(parameters,nsnow ,nsoil ,isnow ,vegtyp ,veg , & real (kind=kind_phys), intent(in) :: dt !< time step (s) real (kind=kind_phys), intent(in) :: fsno !< snow fraction - real (kind=kind_phys) , intent(in) :: varf ! - real (kind=kind_phys) , intent(in) :: psl_gwd_z0m_factor ! + real (kind=kind_phys) , intent(in) :: varf !< sub-grid orography standard deviation [m] + real (kind=kind_phys) , intent(in) :: gwd_z0m_factor !< turbulent orographic form drag roughness length factor real (kind=kind_phys) , intent(in) :: pblhx !< pbl height real (kind=kind_phys) , intent(in) :: ep_1 !< real (kind=kind_phys) , intent(in) :: ep_2 !< @@ -3852,7 +3848,6 @@ subroutine vege_flux(parameters,nsnow ,nsoil ,isnow ,vegtyp ,veg , & real (kind=kind_phys), intent(out) :: chuc !< under canopy exchange coefficient real (kind=kind_phys), intent(out) :: canhs !< canopy heat storage change (w/m2) real (kind=kind_phys), intent(out) :: q2v !< - real (kind=kind_phys), intent(out) :: rb !< bulk leaf boundary layer resistance (s/m) real (kind=kind_phys) :: cah !< sensible heat conductance, canopy air to zlvl air (m/s) real (kind=kind_phys) :: u10v !< 10 m wind speed in eastward dir (m/s) real (kind=kind_phys) :: v10v !< 10 m wind speed in eastward dir (m/s) @@ -3869,6 +3864,7 @@ subroutine vege_flux(parameters,nsnow ,nsoil ,isnow ,vegtyp ,veg , & real (kind=kind_phys) :: z0mo !roughness length for intermediate output only (m) real (kind=kind_phys) :: z0h !roughness length, sensible heat (m) real (kind=kind_phys) :: z0hg !roughness length, sensible heat (m) + real (kind=kind_phys) :: rb !bulk leaf boundary layer resistance (s/m) real (kind=kind_phys) :: ramc !aerodynamic resistance for momentum (s/m) real (kind=kind_phys) :: rahc !aerodynamic resistance for sensible heat (s/m) real (kind=kind_phys) :: rawc !aerodynamic resistance for water vapor (s/m) @@ -4137,7 +4133,7 @@ subroutine vege_flux(parameters,nsnow ,nsoil ,isnow ,vegtyp ,veg , & call sfcdif3(parameters,iloc ,jloc ,iter ,sfctmp ,qair ,ur , & !in zlvl ,tah ,thsfc_loc,prslkix,prsik1x ,prslk1x ,z0m , & !in z0h, zpd ,snowh ,shdfac ,garea1 , & !in - varf,psl_gwd_z0m_factor, & !in + varf,gwd_z0m_factor, & !in ustarx ,fm ,fh ,fm2 ,fh2 , & !inout fv ,cm ,ch ) !out @@ -4447,7 +4443,7 @@ subroutine bare_flux (parameters,nsnow ,nsoil ,isnow ,dt ,sag , & emg ,stc ,df ,rsurf ,lathea , & !in gamma ,rhsur ,iloc ,jloc ,q2 ,pahb , & !in thsfc_loc, prslkix,prsik1x,prslk1x,vegtyp,fveg,shdfac,garea1, & !in - varf,psl_gwd_z0m_factor, & !in + varf,gwd_z0m_factor, & !in pblhx , iz0tlnd , itime ,psi_opt,ep_1,ep_2,epsm1,cp ,& #ifdef CCPP tgb ,cm ,ch,ustarx,errmsg ,errflg , & !inout @@ -4502,8 +4498,8 @@ subroutine bare_flux (parameters,nsnow ,nsoil ,isnow ,dt ,sag , & real (kind=kind_phys), intent(in) :: rhsur !< raltive humidity in surface soil/snow air space (-) real (kind=kind_phys), intent(in) :: fsno !< snow fraction - real (kind=kind_phys), intent(in) :: varf ! - real (kind=kind_phys), intent(in) :: psl_gwd_z0m_factor ! + real (kind=kind_phys), intent(in) :: varf !< sub-grid orography standard deviation [m] + real (kind=kind_phys), intent(in) :: gwd_z0m_factor !< turbulent orographic form drag roughness length factor real (kind=kind_phys), intent(in) :: pblhx !< pbl height (m) real (kind=kind_phys), intent(in) :: ep_1 !< real (kind=kind_phys), intent(in) :: ep_2 !< @@ -4747,7 +4743,7 @@ subroutine bare_flux (parameters,nsnow ,nsoil ,isnow ,dt ,sag , & call sfcdif3(parameters,iloc ,jloc ,iter ,sfctmp ,qair ,ur , & !in zlvl ,tgb ,thsfc_loc,prslkix,prsik1x ,prslk1x ,z0m , & !in z0h, zpd,snowh ,shdfac ,garea1 , & !in - varf,psl_gwd_z0m_factor, & !in + varf,gwd_z0m_factor, & !in ustarx ,fm ,fh ,fm2 ,fh2 , & !inout fv ,cm ,ch ) !out @@ -5454,7 +5450,7 @@ end subroutine sfcdif2 subroutine sfcdif3(parameters,iloc ,jloc ,iter ,sfctmp ,qair ,ur , & !in zlvl ,tgb ,thsfc_loc,prslkix,prsik1x ,prslk1x ,z0m , & !in z0h,zpd ,snowh ,fveg ,garea1 , & !in - varf,psl_gwd_z0m_factor, & !in + varf,gwd_z0m_factor, & !in ustarx ,fm ,fh ,fm2 ,fh2 , & !inout fv ,cm ,ch ) !out @@ -5484,8 +5480,8 @@ subroutine sfcdif3(parameters,iloc ,jloc ,iter ,sfctmp ,qair ,ur real (kind=kind_phys), intent(in ) :: snowh !< snow depth [m] real (kind=kind_phys), intent(in ) :: fveg !< fractional vegetation cover real (kind=kind_phys), intent(in ) :: garea1 !< grid area [km2] - real (kind=kind_phys), intent(in ) :: varf ! standard deviation org [m] - real (kind=kind_phys), intent(in ) :: psl_gwd_z0m_factor ! z0m factor in psl tofd + real (kind=kind_phys), intent(in ) :: varf !< sub-grid orography standard deviation [m] + real (kind=kind_phys), intent(in ) :: gwd_z0m_factor !< turbulent orographic form drag roughness length factor real (kind=kind_phys), intent(inout) :: ustarx !< friction velocity [m/s] real (kind=kind_phys), intent(inout) :: fm !< momentum stability correction, weighted by prior iters real (kind=kind_phys), intent(inout) :: fh !< sen heat stability correction, weighted by prior iters @@ -5540,7 +5536,7 @@ subroutine sfcdif3(parameters,iloc ,jloc ,iter ,sfctmp ,qair ,ur endif call gfs_stability (zlvlb, zvfun1, gdx, tv1, thv1, ur, z0m, z0h, tvs, grav, thsfc_loc, & - varf,psl_gwd_z0m_factor,rb1, fm,fh,fm10,fh2,cm,ch,stress1,fv) + varf,gwd_z0m_factor,rb1, fm,fh,fm10,fh2,cm,ch,stress1,fv) end subroutine sfcdif3 @@ -5550,7 +5546,7 @@ subroutine gfs_stability & ! --- inputs: ( z1, zvfun, gdx, tv1, thv1, wind, z0max, ztmax, tvs, grav, & thsfc_loc, & - varf,psl_gwd_z0m_factor, & + varf,gwd_z0m_factor, & ! --- outputs: rb, fm, fh, fm10, fh2, cm, ch, stress, ustar) @@ -5570,8 +5566,8 @@ subroutine gfs_stability & real(kind=kind_phys), intent(in) :: ztmax ! thermal roughness length real(kind=kind_phys), intent(in) :: tvs ! surface virtual temperature real(kind=kind_phys), intent(in) :: grav ! local gravity -real(kind=kind_phys), intent(in) :: varf ! turbulent scale oro std -real(kind=kind_phys), intent(in) :: psl_gwd_z0m_factor ! tofd factor +real(kind=kind_phys), intent(in) :: varf ! turbulent orographic standard deviation [m] +real(kind=kind_phys), intent(in) :: gwd_z0m_factor ! turbulent orographic form drag roughness length factor logical, intent(in) :: thsfc_loc ! use local theta reference flag real(kind=kind_phys), intent(out) :: rb ! bulk richardson number [-] @@ -5630,11 +5626,10 @@ subroutine gfs_stability & real(kind=kind_phys) :: zolmax real(kind=kind_phys) xkzo -! tofd - real(kind=kind_phys) :: cf, zf, fri, fphim - real(kind=kind_phys), parameter :: varf_min = 50.0 - real(kind=kind_phys), parameter :: varf_max = 500.0 -!!! real(kind=kind_phys), parameter :: psl_gwd_z0m_factor = 0.003 +! +real(kind=kind_phys) :: cf, zf, fri, fphim +real(kind=kind_phys), parameter :: varf_min = 50.0 +real(kind=kind_phys), parameter :: varf_max = 500.0 z1i = one / z1 ! inverse of model height @@ -5755,13 +5750,15 @@ subroutine gfs_stability & endif ! end of if (dtv >= 0 ) then loop ! -! form drag coefficient +! compute the effect of orographic form drag : koo et al. (2018,jgr, eqs. 1 and 2) ! - if ( varf.gt.varf_min .and. psl_gwd_z0m_factor.gt.0.0 ) then - zf = min( min(varf,varf_max)*psl_gwd_z0m_factor,z1 ) - fri = min( max( 1.-rb,0. ), 1.) - fphim = log( ( z1 + zf) / zf ) - cf = ca*ca / (fphim*fphim) * fri + if ( varf.gt.varf_min .and. gwd_z0m_factor.gt.0.0_kind_phys ) then + tem1 = min(varf, varf_max) + zf = tem1 * gwd_z0m_factor ! effective roughness length + zf = min(zf, z1) + fri = min( max( 1.0_kind_phys-rb,0.0_kind_phys ), 1.0_kind_phys) ! a function of ther bulk Richardson number + fphim = log( ( z1 + zf) / zf ) ! integrated profile function for momentum + cf = ca*ca / (fphim*fphim) * fri ! exchange coefficient for momentum else cf = 0. endif @@ -5777,7 +5774,7 @@ subroutine gfs_stability & tem1 = 0.00001_kind_phys/z1 ! minimum exhange coef (?) cm = max(cm, tem1) ch = max(ch, tem1) - stress = (cm + cf)* wind * wind ! cf for tofd 10.15) or (10.19) in Arya + stress = (cm + cf)* wind * wind ustar = sqrt(stress) ! friction velocity return diff --git a/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 b/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 index 90cc14a8d..93f8719b9 100644 --- a/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 +++ b/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 @@ -137,7 +137,7 @@ subroutine noahmpdrv_run & rainn_mp, rainc_mp, snow_mp, graupel_mp, ice_mp, rhonewsn1,& con_hvap, con_cp, con_jcal, rhoh2o, con_eps, con_epsm1, & con_fvirt, con_rd, con_hfus, thsfc_loc, cpllnd, cpllnd2atm,& - nmtvr,mntvar,psl_gwd_z0m_factor, & + mntvar,gwd_z0m_factor, & ! --- in/outs: weasd, snwdph, tskin, tprcp, srflag, smc, stc, slc, & @@ -158,7 +158,7 @@ subroutine noahmpdrv_run & sncovr1, qsurf, gflux, drain, evap, hflx, ep, runoff, & cmm, chh, evbs, evcw, sbsno, pah, ecan, etran, edir, snowc,& stm, snohf,smcwlt2, smcref2, wet1, t2mmp, q2mp,zvfun, & - ztmax, rca, errmsg, errflg, & + ztmax, errmsg, errflg, & canopy_heat_storage_ccpp, & rainfall_ccpp, & sw_absorbed_total_ccpp, & @@ -288,7 +288,6 @@ subroutine noahmpdrv_run & integer , intent(in) :: iopt_stc ! option for snow/soil temperature time scheme (only layer 1) integer , intent(in) :: iopt_trs ! option for thermal roughness scheme integer , intent(in) :: iopt_diag ! option for surface diagnose approach - integer , intent(in) :: nmtvr ! number of subgrid scale oroghic data real(kind=kind_phys), dimension(:) , intent(in) :: xlatin ! latitude real(kind=kind_phys), dimension(:) , intent(in) :: xcoszin ! cosine of zenith angle integer , intent(in) :: iyrlen ! year length [days] @@ -300,7 +299,7 @@ subroutine noahmpdrv_run & real(kind=kind_phys), dimension(:) , intent(in) :: graupel_mp ! microphysics graupel [mm] real(kind=kind_phys), dimension(:) , intent(in) :: ice_mp ! microphysics ice/hail [mm] real(kind=kind_phys), dimension(:,:) , intent(in) :: mntvar ! subgrid orographic statistics data - real(kind=kind_phys) , intent(in) :: psl_gwd_z0m_factor ! psl tofd zom factor + real(kind=kind_phys) , intent(in) :: gwd_z0m_factor ! turbulent orographic form drag roughness length factor real(kind=kind_phys), dimension(:) , intent(in) :: rhonewsn1 ! precipitation ice density (kg/m^3) real(kind=kind_phys) , intent(in) :: con_hvap ! latent heat condensation [J/kg] real(kind=kind_phys) , intent(in) :: con_cp ! specific heat air [J/kg/K] @@ -404,8 +403,6 @@ subroutine noahmpdrv_run & real(kind=kind_phys), dimension(:) , intent(out) :: q2mp ! combined q2m from tiles real(kind=kind_phys), dimension(:) , intent(out) :: zvfun ! real(kind=kind_phys), dimension(:) , intent(out) :: ztmax ! thermal roughness length - real(kind=kind_phys), dimension(:) , intent(out) :: rca ! total canopy/stomatal resistance (s/m) - character(len=*) , intent(out) :: errmsg integer , intent(out) :: errflg @@ -639,7 +636,7 @@ subroutine noahmpdrv_run & real (kind=kind_phys) :: cq2 real (kind=kind_phys) :: qfx real (kind=kind_phys) :: wspd1 ! wind speed with all components - real (kind=kind_phys) :: varf_grid ! std deviation orography + real (kind=kind_phys) :: varf_grid ! sub-grid orography standard deviation real (kind=kind_phys) :: pblhx ! height of pbl integer :: mnice @@ -956,10 +953,6 @@ subroutine noahmpdrv_run & ch_vegetated = 0.0 ch_bare_ground = ch_noahmp canopy_heat_storage = 0.0 - lai_sunlit = 0.0 - lai_shaded = 0.0 - rs_sunlit = 0.0 - rs_shaded = 0.0 else ! not glacier @@ -977,7 +970,7 @@ subroutine noahmpdrv_run & spec_humidity_forcing ,area_grid ,cloud_water_forcing , & sw_radiation_forcing ,radiation_lw_forcing ,thsfc_loc , & prslkix ,prsik1x ,prslk1x , & - varf_grid,psl_gwd_z0m_factor , & + varf_grid,gwd_z0m_factor , & pblhx ,iz0tlnd ,itime , & psi_opt , & precip_convective , & @@ -1070,16 +1063,6 @@ subroutine noahmpdrv_run & zorl (i) = z0_total * 100.0 ! convert to cm ztmax (i) = z0h_total - !LAI-scale canopy resistance based on weighted sunlit shaded fraction - if(rs_sunlit .le. 0.0 .or. rs_shaded .le. 0.0 .or. & - lai_sunlit .eq. 0.0 .or. lai_shaded .eq. 0.0) then - rca(i) = parameters%rsmax - else !calculate LAI-scale canopy conductance (1/Rs) - rca(i) = ((1.0/(rs_sunlit+leaf_air_resistance)*lai_sunlit) + & - ((1.0/(rs_shaded+leaf_air_resistance))*lai_shaded)) - rca(i) = max((1.0/rca(i)),parameters%rsmin) !resistance - end if - smc (i,:) = soil_moisture_vol slc (i,:) = soil_liquid_vol snowxy (i) = float(snow_levels) @@ -1222,7 +1205,7 @@ subroutine noahmpdrv_run & call gfs_stability & (zf(i), zvfun(i), gdx, virtual_temperature, vptemp,wind(i), z0_total, z0h_total, & tvs1, con_g, thsfc_loc, & - varf_grid, psl_gwd_z0m_factor, & + varf_grid, gwd_z0m_factor, & rb1(i), fm1(i), fh1(i), fm101(i), fh21(i), cm(i), ch(i), stress1(i), ustar1(i)) rmol1(i) = undefined !not used in GFS sfcdif -> to satsify output diff --git a/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta b/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta index 3e24624fa..f6b57f406 100644 --- a/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta +++ b/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta @@ -649,13 +649,6 @@ dimensions = () type = logical intent = in -[nmtvr] - standard_name = number_of_statistical_measures_of_subgrid_orography - long_name = number of statistical measures of subgrid height_above_mean_sea_level - units = count - dimensions = () - type = integer - intent = in [mntvar] standard_name = statistical_measures_of_subgrid_orography_collection_array long_name = array of statistical measures of subgrid height_above_mean_sea_level @@ -664,9 +657,9 @@ type = real kind = kind_phys intent = in -[psl_gwd_z0m_factor] +[gwd_z0m_factor] standard_name = momentum_roughness_factor_in_turbulent_form_drag - long_name = multiplication of Z0m in PSL turbulent form drag + long_name = multiplication of orograhic standard deviation units = count dimensions = () type = real @@ -1383,14 +1376,6 @@ type = real kind = kind_phys intent = out -[rca] - standard_name = aerodynamic_resistance_in_canopy - long_name = canopy resistance - units = s m-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = out [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP