diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index 771e53b04..8fbaae737 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -180,8 +180,6 @@ 'physics/physics/sfc_cice.f', 'physics/physics/sfc_diff.f', 'physics/physics/sfc_drv.f', - 'physics/physics/sfc_noah_wrfv4_interstitial.F90', - 'physics/physics/sfc_noah_wrfv4.F90', 'physics/physics/sfc_noahmp_drv.F90', 'physics/physics/flake_driver.F90', 'physics/physics/sfc_nst.f', diff --git a/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90 index 5a6ee2898..7067b6431 100644 --- a/ccpp/data/GFS_typedefs.F90 +++ b/ccpp/data/GFS_typedefs.F90 @@ -242,7 +242,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: weasdl (:) => null() !< weasd over land real (kind=kind_phys), pointer :: snodi (:) => null() !< snow depth over ice real (kind=kind_phys), pointer :: weasdi (:) => null() !< weasd over ice -! real (kind=kind_phys), pointer :: hprim (:) => null() !< topographic standard deviation in m real (kind=kind_phys), pointer :: hprime (:,:) => null() !< orographic metrics real (kind=kind_phys), pointer :: z0base (:) => null() !< background or baseline surface roughness length in m real (kind=kind_phys), pointer :: semisbase(:) => null() !< background surface emissivity @@ -348,9 +347,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: smoiseq (:,:) => null() !< real (kind=kind_phys), pointer :: zsnsoxy (:,:) => null() !< -! -- In/Out for HWRF NOAH LSM - real (kind=kind_phys), pointer :: snotime (:) => null() - !--- NSSTM variables (only allocated when [Model%nstf_name(1) > 0]) real (kind=kind_phys), pointer :: tref (:) => null() !< nst_fld%Tref - Reference Temperature real (kind=kind_phys), pointer :: z_c (:) => null() !< nst_fld%z_c - Sub layer cooling thickness @@ -841,7 +837,6 @@ module GFS_typedefs integer :: lsm_noah=1 !< flag for NOAH land surface model integer :: lsm_noahmp=2 !< flag for NOAH land surface model integer :: lsm_ruc=3 !< flag for RUC land surface model - integer :: lsm_noah_wrfv4 = 4 !< flag for NOAH land surface from WRF v4.0 integer :: lsoil !< number of soil layers integer :: ivegsrc !< ivegsrc = 0 => USGS, !< ivegsrc = 1 => IGBP (20 category) @@ -1812,7 +1807,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: alb1d(:) => null() !< real (kind=kind_phys), pointer :: alpha(:,:) => null() !< real (kind=kind_phys), pointer :: bexp1d(:) => null() !< - real (kind=kind_phys), pointer :: canopy_save(:) => null() !< real (kind=kind_phys), pointer :: cd(:) => null() !< real (kind=kind_phys), pointer :: cd_ice(:) => null() !< real (kind=kind_phys), pointer :: cd_land(:) => null() !< @@ -1825,7 +1819,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: chh_ice(:) => null() !< real (kind=kind_phys), pointer :: chh_land(:) => null() !< real (kind=kind_phys), pointer :: chh_water(:) => null() !< - real (kind=kind_phys), pointer :: chk_land(:) => null() !< real (kind=kind_phys), pointer :: clcn(:,:) => null() !< real (kind=kind_phys), pointer :: cldf(:) => null() !< real (kind=kind_phys), pointer :: cldsa(:,:) => null() !< @@ -1835,7 +1828,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: clouds(:,:,:) => null() !< real (kind=kind_phys), pointer :: clw(:,:,:) => null() !< real (kind=kind_phys), pointer :: clx(:,:) => null() !< - real (kind=kind_phys), pointer :: cmc(:) => null() !< real (kind=kind_phys), pointer :: cmm_ice(:) => null() !< real (kind=kind_phys), pointer :: cmm_land(:) => null() !< real (kind=kind_phys), pointer :: cmm_water(:) => null() !< @@ -1856,10 +1848,8 @@ module GFS_typedefs real (kind=kind_phys), pointer :: delr(:,:) => null() !< real (kind=kind_phys), pointer :: dlength(:) => null() !< real (kind=kind_phys), pointer :: dqdt(:,:,:) => null() !< - real (kind=kind_phys), pointer :: dqsdt2(:) => null() !< real (kind=kind_phys), pointer :: dqsfc1(:) => null() !< real (kind=kind_phys), pointer :: drain(:) => null() !< - real (kind=kind_phys), pointer :: drain_in_m_sm1(:) => null() !< real (kind=kind_phys), pointer :: dtdt(:,:) => null() !< real (kind=kind_phys), pointer :: dtsfc1(:) => null() !< real (kind=kind_phys), pointer :: dtzm(:) => null() !< @@ -1894,8 +1884,6 @@ module GFS_typedefs logical, pointer :: flag_cice(:) => null() !< logical, pointer :: flag_guess(:) => null() !< logical, pointer :: flag_iter(:) => null() !< - logical, pointer :: flag_lsm(:) => null() !< - logical, pointer :: flag_lsm_glacier(:)=> null() !< real (kind=kind_phys), pointer :: ffmm_ice(:) => null() !< real (kind=kind_phys), pointer :: ffmm_land(:) => null() !< real (kind=kind_phys), pointer :: ffmm_water(:) => null() !< @@ -2001,8 +1989,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: qss_ice(:) => null() !< real (kind=kind_phys), pointer :: qss_land(:) => null() !< real (kind=kind_phys), pointer :: qss_water(:) => null() !< - real (kind=kind_phys), pointer :: qs1(:) => null() !< - real (kind=kind_phys), pointer :: qv1(:) => null() !< logical :: radar_reset !< real (kind=kind_phys) :: raddt !< real (kind=kind_phys), pointer :: rainmp(:) => null() !< @@ -2017,9 +2003,7 @@ module GFS_typedefs logical :: max_hourly_reset !< logical :: ext_diag_thompson_reset !< real (kind=kind_phys), pointer :: rhc(:,:) => null() !< - real (kind=kind_phys), pointer :: rho1(:) => null() !< real (kind=kind_phys), pointer :: runoff(:) => null() !< - real (kind=kind_phys), pointer :: runoff_in_m_sm1(:) => null() !< real (kind=kind_phys), pointer :: save_q(:,:,:) => null() !< real (kind=kind_phys), pointer :: save_t(:,:) => null() !< real (kind=kind_phys), pointer :: save_tcp(:,:) => null() !< @@ -2034,34 +2018,21 @@ module GFS_typedefs real (kind=kind_phys), pointer :: sigmafrac(:,:) => null() !< real (kind=kind_phys), pointer :: sigmatot(:,:) => null() !< logical :: skip_macro !< - real (kind=kind_phys), pointer :: slc_save(:,:) => null() !< - real (kind=kind_phys), pointer :: smcmax(:) => null() !< - real (kind=kind_phys), pointer :: smc_save(:,:) => null() !< real (kind=kind_phys), pointer :: snowc(:) => null() !< -! real (kind=kind_phys), pointer :: snowd_ice(:) => null() !< - real (kind=kind_phys), pointer :: snowd_land_save(:) => null() !< - real (kind=kind_phys), pointer :: snow_depth(:) => null() !< real (kind=kind_phys), pointer :: snohf(:) => null() !< - real (kind=kind_phys), pointer :: snohf_snow(:) => null() !< - real (kind=kind_phys), pointer :: snohf_frzgra(:) => null() !< - real (kind=kind_phys), pointer :: snohf_snowmelt(:) => null() !< real (kind=kind_phys), pointer :: snowmp(:) => null() !< real (kind=kind_phys), pointer :: snowmt(:) => null() !< - real (kind=kind_phys), pointer :: soilm_in_m(:) => null() !< - real (kind=kind_phys), pointer :: stc_save(:,:) => null() !< real (kind=kind_phys), pointer :: stress(:) => null() !< real (kind=kind_phys), pointer :: stress_ice(:) => null() !< real (kind=kind_phys), pointer :: stress_land(:) => null() !< real (kind=kind_phys), pointer :: stress_water(:) => null() !< real (kind=kind_phys), pointer :: t2mmp(:) => null() !< real (kind=kind_phys), pointer :: theta(:) => null() !< - real (kind=kind_phys), pointer :: th1(:) => null() !< real (kind=kind_phys), pointer :: tlvl(:,:) => null() !< real (kind=kind_phys), pointer :: tlyr(:,:) => null() !< real (kind=kind_phys), pointer :: tprcp_ice(:) => null() !< real (kind=kind_phys), pointer :: tprcp_land(:) => null() !< real (kind=kind_phys), pointer :: tprcp_water(:) => null() !< - real (kind=kind_phys), pointer :: tprcp_rate_land(:) => null() !< integer :: tracers_start_index !< integer :: tracers_total !< integer :: tracers_water !< @@ -2069,8 +2040,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: trans(:) => null() !< real (kind=kind_phys), pointer :: tseal(:) => null() !< real (kind=kind_phys), pointer :: tsfa(:) => null() !< -! real (kind=kind_phys), pointer :: tsfc_ice(:) => null() !< - real (kind=kind_phys), pointer :: tsfc_land_save(:) => null() !< real (kind=kind_phys), pointer :: tsfc_water(:) => null() !< real (kind=kind_phys), pointer :: tsfg(:) => null() !< real (kind=kind_phys), pointer :: tsurf_ice(:) => null() !< @@ -2086,10 +2055,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: w_upi(:,:) => null() !< real (kind=kind_phys), pointer :: wcbmax(:) => null() !< -! real (kind=kind_phys), pointer :: weasd_water(:) => null() !< -! real (kind=kind_phys), pointer :: weasd_land(:) => null() !< - real (kind=kind_phys), pointer :: weasd_land_save(:) => null() !< -! real (kind=kind_phys), pointer :: weasd_ice(:) => null() !< real (kind=kind_phys), pointer :: wind(:) => null() !< real (kind=kind_phys), pointer :: work1(:) => null() !< real (kind=kind_phys), pointer :: work2(:) => null() !< @@ -2354,7 +2319,6 @@ subroutine sfcprop_create (Sfcprop, IM, Model) allocate (Sfcprop%weasdl (IM)) allocate (Sfcprop%snodi (IM)) allocate (Sfcprop%weasdi (IM)) -! allocate (Sfcprop%hprim (IM)) allocate (Sfcprop%hprime (IM,Model%nmtvr)) allocate(Sfcprop%albdirvis_lnd (IM)) allocate(Sfcprop%albdirnir_lnd (IM)) @@ -2384,7 +2348,6 @@ subroutine sfcprop_create (Sfcprop, IM, Model) Sfcprop%weasdl = clear_val Sfcprop%snodi = clear_val Sfcprop%weasdi = clear_val -! Sfcprop%hprim = clear_val Sfcprop%hprime = clear_val Sfcprop%albdirvis_lnd = clear_val Sfcprop%albdirnir_lnd = clear_val @@ -2458,7 +2421,6 @@ subroutine sfcprop_create (Sfcprop, IM, Model) allocate (Sfcprop%albdifvis_ice (IM)) allocate (Sfcprop%albdirnir_ice (IM)) allocate (Sfcprop%albdifnir_ice (IM)) -! allocate (Sfcprop%sfalb_ice (IM)) endif if (Model%lsm == Model%lsm_ruc) then allocate (Sfcprop%sfalb_lnd (IM)) @@ -2484,7 +2446,6 @@ subroutine sfcprop_create (Sfcprop, IM, Model) Sfcprop%albdifvis_ice = clear_val Sfcprop%albdirnir_ice = clear_val Sfcprop%albdifnir_ice = clear_val -! Sfcprop%sfalb_ice = clear_val endif if (Model%lsm == Model%lsm_ruc) then Sfcprop%sfalb_lnd = clear_val @@ -2566,106 +2527,98 @@ subroutine sfcprop_create (Sfcprop, IM, Model) ! if (Model%lsm == Model%lsm_noahmp ) then - allocate (Sfcprop%snowxy (IM)) - allocate (Sfcprop%tvxy (IM)) - allocate (Sfcprop%tgxy (IM)) - allocate (Sfcprop%canicexy (IM)) - allocate (Sfcprop%canliqxy (IM)) - allocate (Sfcprop%eahxy (IM)) - allocate (Sfcprop%tahxy (IM)) - allocate (Sfcprop%cmxy (IM)) - allocate (Sfcprop%chxy (IM)) - allocate (Sfcprop%fwetxy (IM)) - allocate (Sfcprop%sneqvoxy (IM)) - allocate (Sfcprop%alboldxy (IM)) - allocate (Sfcprop%qsnowxy (IM)) - allocate (Sfcprop%wslakexy (IM)) - allocate (Sfcprop%zwtxy (IM)) - allocate (Sfcprop%waxy (IM)) - allocate (Sfcprop%wtxy (IM)) - allocate (Sfcprop%lfmassxy (IM)) - allocate (Sfcprop%rtmassxy (IM)) - allocate (Sfcprop%stmassxy (IM)) - allocate (Sfcprop%woodxy (IM)) - allocate (Sfcprop%stblcpxy (IM)) - allocate (Sfcprop%fastcpxy (IM)) - allocate (Sfcprop%xsaixy (IM)) - allocate (Sfcprop%xlaixy (IM)) - allocate (Sfcprop%taussxy (IM)) - allocate (Sfcprop%smcwtdxy (IM)) - allocate (Sfcprop%deeprechxy (IM)) - allocate (Sfcprop%rechxy (IM)) - allocate (Sfcprop%snicexy (IM, Model%lsnow_lsm_lbound:Model%lsnow_lsm_ubound)) - allocate (Sfcprop%snliqxy (IM, Model%lsnow_lsm_lbound:Model%lsnow_lsm_ubound)) - allocate (Sfcprop%tsnoxy (IM, Model%lsnow_lsm_lbound:Model%lsnow_lsm_ubound)) - allocate (Sfcprop%smoiseq (IM, Model%lsoil_lsm)) - allocate (Sfcprop%zsnsoxy (IM, Model%lsnow_lsm_lbound:Model%lsoil_lsm)) - - Sfcprop%snowxy = clear_val - Sfcprop%tvxy = clear_val - Sfcprop%tgxy = clear_val - Sfcprop%canicexy = clear_val - Sfcprop%canliqxy = clear_val - Sfcprop%eahxy = clear_val - Sfcprop%tahxy = clear_val - Sfcprop%cmxy = clear_val - Sfcprop%chxy = clear_val - Sfcprop%fwetxy = clear_val - Sfcprop%sneqvoxy = clear_val - Sfcprop%alboldxy = clear_val - Sfcprop%qsnowxy = clear_val - Sfcprop%wslakexy = clear_val - Sfcprop%zwtxy = clear_val - Sfcprop%waxy = clear_val - Sfcprop%wtxy = clear_val - Sfcprop%lfmassxy = clear_val - Sfcprop%rtmassxy = clear_val - Sfcprop%stmassxy = clear_val - Sfcprop%woodxy = clear_val - Sfcprop%stblcpxy = clear_val - Sfcprop%fastcpxy = clear_val - Sfcprop%xsaixy = clear_val - Sfcprop%xlaixy = clear_val - Sfcprop%taussxy = clear_val - Sfcprop%smcwtdxy = clear_val - Sfcprop%deeprechxy = clear_val - Sfcprop%rechxy = clear_val - - Sfcprop%snicexy = clear_val - Sfcprop%snliqxy = clear_val - Sfcprop%tsnoxy = clear_val - Sfcprop%smoiseq = clear_val - Sfcprop%zsnsoxy = clear_val - - allocate(Sfcprop%draincprv (IM)) - allocate(Sfcprop%drainncprv (IM)) - allocate(Sfcprop%diceprv (IM)) - allocate(Sfcprop%dsnowprv (IM)) - allocate(Sfcprop%dgraupelprv(IM)) - - Sfcprop%draincprv = clear_val - Sfcprop%drainncprv = clear_val - Sfcprop%diceprv = clear_val - Sfcprop%dsnowprv = clear_val - Sfcprop%dgraupelprv = clear_val - - endif + allocate (Sfcprop%snowxy (IM)) + allocate (Sfcprop%tvxy (IM)) + allocate (Sfcprop%tgxy (IM)) + allocate (Sfcprop%canicexy (IM)) + allocate (Sfcprop%canliqxy (IM)) + allocate (Sfcprop%eahxy (IM)) + allocate (Sfcprop%tahxy (IM)) + allocate (Sfcprop%cmxy (IM)) + allocate (Sfcprop%chxy (IM)) + allocate (Sfcprop%fwetxy (IM)) + allocate (Sfcprop%sneqvoxy (IM)) + allocate (Sfcprop%alboldxy (IM)) + allocate (Sfcprop%qsnowxy (IM)) + allocate (Sfcprop%wslakexy (IM)) + allocate (Sfcprop%zwtxy (IM)) + allocate (Sfcprop%waxy (IM)) + allocate (Sfcprop%wtxy (IM)) + allocate (Sfcprop%lfmassxy (IM)) + allocate (Sfcprop%rtmassxy (IM)) + allocate (Sfcprop%stmassxy (IM)) + allocate (Sfcprop%woodxy (IM)) + allocate (Sfcprop%stblcpxy (IM)) + allocate (Sfcprop%fastcpxy (IM)) + allocate (Sfcprop%xsaixy (IM)) + allocate (Sfcprop%xlaixy (IM)) + allocate (Sfcprop%taussxy (IM)) + allocate (Sfcprop%smcwtdxy (IM)) + allocate (Sfcprop%deeprechxy (IM)) + allocate (Sfcprop%rechxy (IM)) + allocate (Sfcprop%snicexy (IM, Model%lsnow_lsm_lbound:Model%lsnow_lsm_ubound)) + allocate (Sfcprop%snliqxy (IM, Model%lsnow_lsm_lbound:Model%lsnow_lsm_ubound)) + allocate (Sfcprop%tsnoxy (IM, Model%lsnow_lsm_lbound:Model%lsnow_lsm_ubound)) + allocate (Sfcprop%smoiseq (IM, Model%lsoil_lsm)) + allocate (Sfcprop%zsnsoxy (IM, Model%lsnow_lsm_lbound:Model%lsoil_lsm)) + + Sfcprop%snowxy = clear_val + Sfcprop%tvxy = clear_val + Sfcprop%tgxy = clear_val + Sfcprop%canicexy = clear_val + Sfcprop%canliqxy = clear_val + Sfcprop%eahxy = clear_val + Sfcprop%tahxy = clear_val + Sfcprop%cmxy = clear_val + Sfcprop%chxy = clear_val + Sfcprop%fwetxy = clear_val + Sfcprop%sneqvoxy = clear_val + Sfcprop%alboldxy = clear_val + Sfcprop%qsnowxy = clear_val + Sfcprop%wslakexy = clear_val + Sfcprop%zwtxy = clear_val + Sfcprop%waxy = clear_val + Sfcprop%wtxy = clear_val + Sfcprop%lfmassxy = clear_val + Sfcprop%rtmassxy = clear_val + Sfcprop%stmassxy = clear_val + Sfcprop%woodxy = clear_val + Sfcprop%stblcpxy = clear_val + Sfcprop%fastcpxy = clear_val + Sfcprop%xsaixy = clear_val + Sfcprop%xlaixy = clear_val + Sfcprop%taussxy = clear_val + Sfcprop%smcwtdxy = clear_val + Sfcprop%deeprechxy = clear_val + Sfcprop%rechxy = clear_val + + Sfcprop%snicexy = clear_val + Sfcprop%snliqxy = clear_val + Sfcprop%tsnoxy = clear_val + Sfcprop%smoiseq = clear_val + Sfcprop%zsnsoxy = clear_val + + allocate(Sfcprop%draincprv (IM)) + allocate(Sfcprop%drainncprv (IM)) + allocate(Sfcprop%diceprv (IM)) + allocate(Sfcprop%dsnowprv (IM)) + allocate(Sfcprop%dgraupelprv(IM)) + + Sfcprop%draincprv = clear_val + Sfcprop%drainncprv = clear_val + Sfcprop%diceprv = clear_val + Sfcprop%dsnowprv = clear_val + Sfcprop%dgraupelprv = clear_val - ! HWRF NOAH LSM allocate and init when used - ! - if (Model%lsm == Model%lsm_noah_wrfv4 ) then - allocate(Sfcprop%snotime(IM)) - Sfcprop%snotime = clear_val - end if + endif - if (Model%do_myjsfc.or.Model%do_myjpbl.or.(Model%lsm == Model%lsm_noah_wrfv4)) then + if (Model%do_myjsfc .or. Model%do_myjpbl) then allocate(Sfcprop%z0base(IM)) Sfcprop%z0base = clear_val end if - !if (Model%lsm == Model%lsm_noah_wrfv4 .or. Model%lsm == Model%lsm_ruc) then - allocate(Sfcprop%semisbase(IM)) - Sfcprop%semisbase = clear_val - !end if + + allocate(Sfcprop%semisbase(IM)) + Sfcprop%semisbase = clear_val if (Model%lsm == Model%lsm_ruc) then ! For land surface models with different numbers of levels than the four NOAH levels @@ -4102,11 +4055,6 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%lsm = lsm Model%lsoil = lsoil - ! Consistency check for HWRF Noah LSM - if (Model%lsm == Model%lsm_noah_wrfv4 .and. Model%nscyc>0) then - write(0,*) 'Logic error: NOAH WRFv4 LSM cannot be used with surface data cycling at this point (fhcyc>0)' - stop - end if ! Flag to read leaf area index from input files (initial conditions) Model%rdlai = rdlai if (Model%rdlai .and. .not. Model%lsm == Model%lsm_ruc) then @@ -4134,18 +4082,13 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & end if Model%zs = (/-0.1_kind_phys, -0.4_kind_phys, -1.0_kind_phys, -2.0_kind_phys/) Model%dzs = (/ 0.1_kind_phys, 0.3_kind_phys, 0.6_kind_phys, 1.0_kind_phys/) - elseif (Model%lsm==Model%lsm_ruc .or. Model%lsm==Model%lsm_noah_wrfv4) then + elseif (Model%lsm==Model%lsm_ruc) then Model%zs = clear_val Model%dzs = clear_val end if ! *DH - if (Model%lsm==Model%lsm_noah_wrfv4) then - if (Model%lsoil_lsm/=4) then - write(0,*) 'Error in GFS_typedefs.F90, number of soil layers must be 4 for Noah_WRFv4' - stop - end if - elseif (Model%lsm==Model%lsm_ruc) then + if (Model%lsm==Model%lsm_ruc) then if (Model%lsoil_lsm/=9) then write(0,*) 'Error in GFS_typedefs.F90, number of soil layers must be 9 for RUC' stop @@ -4155,7 +4098,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & ! Set number of ice model layers Model%kice = kice - if (Model%lsm==Model%lsm_noah .or. Model%lsm==Model%lsm_noahmp .or. Model%lsm==Model%lsm_noah_wrfv4) then + if (Model%lsm==Model%lsm_noah .or. Model%lsm==Model%lsm_noahmp) then if (kice/=2) then write(0,*) 'Error in GFS_typedefs.F90, number of ice model layers must be 2 for Noah/NoahMP/Noah_WRFv4' stop @@ -4938,8 +4881,6 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & print *,'iopt_stc = ', Model%iopt_stc elseif (Model%lsm == Model%lsm_ruc) then print *,' RUC Land Surface Model used' - elseif (Model%lsm == Model%lsm_noah_wrfv4) then - print *,' NOAH WRFv4 Land Surface Model used' else print *,' Unsupported LSM type - job aborted - lsm=',Model%lsm stop @@ -7136,7 +7077,6 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%sigmafrac (IM,Model%levs)) allocate (Interstitial%sigmatot (IM,Model%levs)) allocate (Interstitial%snowc (IM)) -! allocate (Interstitial%snowd_ice (IM)) allocate (Interstitial%snohf (IM)) allocate (Interstitial%snowmt (IM)) allocate (Interstitial%stress (IM)) @@ -7152,7 +7092,6 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%trans (IM)) allocate (Interstitial%tseal (IM)) allocate (Interstitial%tsfa (IM)) -! allocate (Interstitial%tsfc_ice (IM)) allocate (Interstitial%tsfc_water (IM)) allocate (Interstitial%tsfg (IM)) allocate (Interstitial%tsurf_ice (IM)) @@ -7165,9 +7104,6 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%vdftra (IM,Model%levs,Interstitial%nvdiff)) !GJF first dimension was set as 'IX' in GFS_physics_driver allocate (Interstitial%vegf1d (IM)) allocate (Interstitial%wcbmax (IM)) -! allocate (Interstitial%weasd_ice (IM)) -! allocate (Interstitial%weasd_land (IM)) -! allocate (Interstitial%weasd_water (IM)) allocate (Interstitial%wind (IM)) allocate (Interstitial%work1 (IM)) allocate (Interstitial%work2 (IM)) @@ -7365,33 +7301,6 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%t2mmp (IM)) allocate (Interstitial%q2mp (IM)) end if - if (Model%lsm == Model%lsm_noah_wrfv4) then - allocate (Interstitial%canopy_save (IM)) - allocate (Interstitial%chk_land (IM)) - allocate (Interstitial%cmc (IM)) - allocate (Interstitial%dqsdt2 (IM)) - allocate (Interstitial%drain_in_m_sm1 (IM)) - allocate (Interstitial%flag_lsm (IM)) - allocate (Interstitial%flag_lsm_glacier(IM)) - allocate (Interstitial%qs1 (IM)) - allocate (Interstitial%qv1 (IM)) - allocate (Interstitial%rho1 (IM)) - allocate (Interstitial%runoff_in_m_sm1 (IM)) - allocate (Interstitial%slc_save (IM,Model%lsoil)) - allocate (Interstitial%smcmax (IM)) - allocate (Interstitial%smc_save (IM,Model%lsoil)) - allocate (Interstitial%snowd_land_save (IM)) - allocate (Interstitial%snow_depth (IM)) - allocate (Interstitial%snohf_snow (IM)) - allocate (Interstitial%snohf_frzgra (IM)) - allocate (Interstitial%snohf_snowmelt (IM)) - allocate (Interstitial%soilm_in_m (IM)) - allocate (Interstitial%stc_save (IM,Model%lsoil)) - allocate (Interstitial%th1 (IM)) - allocate (Interstitial%tprcp_rate_land (IM)) - allocate (Interstitial%tsfc_land_save (IM)) - allocate (Interstitial%weasd_land_save (IM)) - end if ! ! Set components that do not change Interstitial%frain = Model%dtf/Model%dtp @@ -7833,7 +7742,6 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%sigmafrac = clear_val Interstitial%sigmatot = clear_val Interstitial%snowc = clear_val -! Interstitial%snowd_ice = Model%huge Interstitial%snohf = clear_val Interstitial%snowmt = clear_val Interstitial%stress = clear_val @@ -7846,7 +7754,6 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%tprcp_water = Model%huge Interstitial%trans = clear_val Interstitial%tseal = clear_val -! Interstitial%tsfc_ice = Model%huge Interstitial%tsfc_water = Model%huge Interstitial%tsurf_ice = Model%huge Interstitial%tsurf_land = Model%huge @@ -7859,9 +7766,6 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%vegf1d = clear_val Interstitial%lndp_vgf = clear_val Interstitial%wcbmax = clear_val -! Interstitial%weasd_ice = Model%huge -! Interstitial%weasd_land = Model%huge -! Interstitial%weasd_water = Model%huge Interstitial%wind = Model%huge Interstitial%work1 = clear_val Interstitial%work2 = clear_val @@ -7942,33 +7846,6 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%t2mmp = clear_val Interstitial%q2mp = clear_val end if - if (Model%lsm == Model%lsm_noah_wrfv4) then - Interstitial%canopy_save = clear_val - Interstitial%chk_land = Model%huge - Interstitial%cmc = clear_val - Interstitial%dqsdt2 = clear_val - Interstitial%drain_in_m_sm1 = clear_val - Interstitial%flag_lsm = .false. - Interstitial%flag_lsm_glacier= .false. - Interstitial%qs1 = Model%huge - Interstitial%qv1 = Model%huge - Interstitial%rho1 = clear_val - Interstitial%runoff_in_m_sm1 = clear_val - Interstitial%slc_save = clear_val - Interstitial%smcmax = clear_val - Interstitial%smc_save = clear_val - Interstitial%snowd_land_save = Model%huge - Interstitial%snow_depth = clear_val - Interstitial%snohf_snow = clear_val - Interstitial%snohf_frzgra = clear_val - Interstitial%snohf_snowmelt = clear_val - Interstitial%soilm_in_m = clear_val - Interstitial%stc_save = clear_val - Interstitial%th1 = clear_val - Interstitial%tprcp_rate_land = Model%huge - Interstitial%tsfc_land_save = Model%huge - Interstitial%weasd_land_save = Model%huge - end if ! ! Set flag for resetting maximum hourly output fields Interstitial%max_hourly_reset = mod(Model%kdt-1, nint(Model%avg_max_length/Model%dtp)) == 0 diff --git a/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta index bbba06ca4..d8bad3b03 100644 --- a/ccpp/data/GFS_typedefs.meta +++ b/ccpp/data/GFS_typedefs.meta @@ -1317,14 +1317,6 @@ type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) -[snotime] - standard_name = time_since_last_snowfall - long_name = elapsed time since last snowfall - units = s - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) [albdirvis_lnd] standard_name = surface_albedo_direct_visible_over_land long_name = direct surface albedo visible band over land @@ -3568,12 +3560,6 @@ units = flag dimensions = () type = integer -[lsm_noah_wrfv4] - standard_name = identifier_for_noah_wrfv4_land_surface_scheme - long_name = flag for NOAH WRFv4 land surface model - units = flag - dimensions = () - type = integer [kice] standard_name = vertical_dimension_of_sea_ice long_name = vertical loop extent for ice levels, start at 1 @@ -7577,14 +7563,6 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys -[canopy_save] - standard_name = canopy_water_amount_save - long_name = canopy water amount before entering a physics scheme - units = kg m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) [cd] standard_name = surface_drag_coefficient_for_momentum_in_air long_name = surface exchange coeff for momentum @@ -7662,14 +7640,6 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys -[chk_land] - standard_name = surface_conductance_for_heat_and_moisture_in_air_over_land - long_name = surface conductance for heat & moisture over land - units = m s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) [cf_upi] standard_name = convective_cloud_fraction_for_microphysics long_name = convective cloud fraction for microphysics @@ -7819,14 +7789,6 @@ dimensions = (horizontal_loop_extent,4) type = real kind = kind_phys -[cmc] - standard_name = canopy_water_amount_in_m - long_name = canopy water amount in m - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) [clxss] standard_name = fraction_of_grid_box_with_subgrid_orography_higher_than_critical_height_small_scale long_name = frac. of grid box with by subgrid height_above_mean_sea_level higher than critical height small scale @@ -8067,14 +8029,6 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys -[dqsdt2] - standard_name = saturation_specific_humidity_slope - long_name = saturation specific humidity slope at lowest model layer - units = K-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) [dqsfc1] standard_name = instantaneous_surface_upward_latent_heat_flux long_name = surface upward latent heat flux @@ -8089,14 +8043,6 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys -[drain_in_m_sm1] - standard_name = subsurface_runoff_flux_in_m_sm1 - long_name = subsurface runoff flux in m s-1 - units = m s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) [dtdt] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = air temperature tendency due to model physics @@ -8381,20 +8327,6 @@ units = flag dimensions = (horizontal_loop_extent) type = logical -[flag_lsm] - standard_name = flag_for_calling_land_surface_model - long_name = flag for calling land surface model - units = flag - dimensions = (horizontal_loop_extent) - type = logical - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) -[flag_lsm_glacier] - standard_name = flag_for_calling_land_surface_model_glacier - long_name = flag for calling land surface model over glacier - units = flag - dimensions = (horizontal_loop_extent) - type = logical - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) [ffmm_water] standard_name = Monin_Obukhov_similarity_function_for_momentum_over_water long_name = Monin-Obukhov similarity function for momentum over water @@ -9172,22 +9104,6 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys -[qs1] - standard_name = saturation_specific_humidity_at_lowest_model_layer - long_name = saturation specific humidity at lowest model layer - units = kg kg-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) -[qv1] - standard_name = bounded_specific_humidity_at_lowest_model_layer_over_land - long_name = specific humidity at lowest model layer over land bounded between a nonzero epsilon and saturation - units = kg kg-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) [radar_reset] standard_name = flag_for_resetting_radar_reflectivity_calculation long_name = flag for resetting radar reflectivity calculation @@ -9298,14 +9214,6 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys -[runoff_in_m_sm1] - standard_name = surface_runoff_flux_in_m_sm1 - long_name = surface runoff flux in m s-1 - units = m s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) [save_q(:,:,index_of_ozone_mixing_ratio_in_tracer_concentration_array)] standard_name = ozone_mixing_ratio_save long_name = ozone mixing ratio before entering a physics scheme @@ -9472,30 +9380,6 @@ units = flag dimensions = () type = logical -[slc_save] - standard_name = volume_fraction_of_unfrozen_soil_moisture_save - long_name = liquid soil moisture before entering a physics scheme - units = frac - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil) - type = real - kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) -[smcmax] - standard_name = soil_porosity - long_name = volumetric soil porosity - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) -[smc_save] - standard_name = volume_fraction_of_soil_moisture_save - long_name = total soil moisture before entering a physics scheme - units = frac - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil) - type = real - kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) [snowc] standard_name = surface_snow_area_fraction long_name = surface snow area fraction @@ -9503,22 +9387,6 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys -[snowd_land_save] - standard_name = surface_snow_thickness_water_equivalent_over_land_save - long_name = water equivalent snow depth over land before entering a physics scheme - units = mm - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) -[snow_depth] - standard_name = actual_snow_depth - long_name = actual snow depth - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) [snohf] standard_name = snow_freezing_rain_upward_latent_heat_flux long_name = latent heat flux due to snow and frz rain @@ -9526,30 +9394,6 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys -[snohf_snow] - standard_name = latent_heat_flux_from_precipitating_snow - long_name = latent heat flux due to precipitating snow - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) -[snohf_frzgra] - standard_name = latent_heat_flux_from_freezing_rain - long_name = latent heat flux due to freezing rain - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) -[snohf_snowmelt] - standard_name = latent_heat_flux_due_to_snowmelt - long_name = latent heat flux due to snowmelt phase change - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) [snowmp] standard_name = lwe_thickness_of_snow_amount long_name = explicit snow fall on physics timestep @@ -9565,22 +9409,6 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys -[soilm_in_m] - standard_name = soil_moisture_content_in_m - long_name = soil moisture in meters - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) -[stc_save] - standard_name = soil_temperature_save - long_name = soil temperature before entering a physics scheme - units = K - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil) - type = real - kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) [stress] standard_name = surface_wind_stress long_name = surface wind stress @@ -9624,14 +9452,6 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys -[th1] - standard_name = potential_temperature_at_lowest_model_layer - long_name = potential_temperature_at_lowest_model_layer - units = K - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) [tlvl] standard_name = air_temperature_at_interface_for_radiation long_name = air temperature at vertical interface for radiation calculation @@ -9667,14 +9487,6 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys -[tprcp_rate_land] - standard_name = total_precipitation_rate_on_dynamics_timestep_over_land - long_name = total precipitation rate in each time step over land - units = kg m-2 s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) [tracers_start_index] standard_name = start_index_of_other_tracers long_name = beginning index of the non-water tracer species @@ -9721,14 +9533,6 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys -[tsfc_land_save] - standard_name = surface_skin_temperature_over_land_save - long_name = surface skin temperature over land before entering a physics scheme - units = K - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) [tsfg] standard_name = surface_ground_temperature_for_radiation long_name = surface ground temperature for radiation @@ -9827,14 +9631,6 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys -[weasd_land_save] - standard_name = water_equivalent_accumulated_snow_depth_over_land_save - long_name = water equiv of acc snow depth over land before entering a physics scheme - units = mm - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_noah_wrfv4_land_surface_scheme) [wind] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level diff --git a/ccpp/physics b/ccpp/physics index 530f597d3..6912955bc 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 530f597d34a4dab2bedf590480474e86a2e9bac1 +Subproject commit 6912955bcb4e0437f725fe88726c55954abb4b87 diff --git a/ccpp/suites/suite_FV3_HAFS_v0_hwrf.xml b/ccpp/suites/suite_FV3_HAFS_v0_hwrf.xml deleted file mode 100644 index fbe105f67..000000000 --- a/ccpp/suites/suite_FV3_HAFS_v0_hwrf.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - GFS_time_vary_pre - GFS_rrtmg_setup - GFS_rad_time_vary - GFS_phys_time_vary - - - - - GFS_suite_interstitial_rad_reset - GFS_rrtmg_pre - GFS_radiation_surface - rrtmg_lw_pre - rrtmg_lw - rrtmg_lw_post - rrtmg_sw_pre - rrtmg_sw - rrtmg_sw_post - GFS_rrtmg_post - - - - - GFS_suite_interstitial_phys_reset - GFS_suite_stateout_reset - get_prs_fv3 - GFS_suite_interstitial_1 - GFS_surface_generic_pre - GFS_surface_composites_pre - dcyc2t3 - GFS_surface_composites_inter - GFS_suite_interstitial_2 - - - - gfdl_sfc_layer - GFS_surface_loop_control_part1 - sfc_nst_pre - sfc_nst - sfc_nst_post - sfc_noah_wrfv4_pre - sfc_noah_wrfv4 - sfc_noah_wrfv4_post - sfc_sice - GFS_surface_loop_control_part2 - - - - GFS_surface_composites_post - sfc_diag - sfc_diag_post - GFS_surface_generic_post - GFS_PBL_generic_pre - hedmf - GFS_PBL_generic_post - GFS_GWD_generic_pre - cires_ugwp - cires_ugwp_post - GFS_GWD_generic_post - GFS_suite_stateout_update - ozphys_2015 - h2ophys - GFS_DCNV_generic_pre - get_phi_fv3 - GFS_suite_interstitial_3 - samfdeepcnv - GFS_DCNV_generic_post - GFS_SCNV_generic_pre - samfshalcnv - GFS_SCNV_generic_post - GFS_suite_interstitial_4 - cnvc90 - GFS_MP_generic_pre - mp_fer_hires - GFS_MP_generic_post - maximum_hourly_diagnostics - phys_tend - - - - - GFS_stochastics - - - - diff --git a/ccpp/suites/suite_FV3_HAFS_v0_hwrf_thompson.xml b/ccpp/suites/suite_FV3_HAFS_v0_hwrf_thompson.xml index 5d894c2f2..2bc2f8592 100644 --- a/ccpp/suites/suite_FV3_HAFS_v0_hwrf_thompson.xml +++ b/ccpp/suites/suite_FV3_HAFS_v0_hwrf_thompson.xml @@ -45,9 +45,7 @@ sfc_nst_pre sfc_nst sfc_nst_post - sfc_noah_wrfv4_pre - sfc_noah_wrfv4 - sfc_noah_wrfv4_post + noahmpdrv sfc_sice GFS_surface_loop_control_part2 diff --git a/io/FV3GFS_io.F90 b/io/FV3GFS_io.F90 index 6dfe29a46..7b1becf10 100644 --- a/io/FV3GFS_io.F90 +++ b/io/FV3GFS_io.F90 @@ -233,7 +233,7 @@ subroutine FV3GFS_GFS_checksum (Model, GFS_Data, Atm_block) temp2d(i,j,32) = GFS_Data(nb)%Sfcprop%f10m(ix) temp2d(i,j,33) = GFS_Data(nb)%Sfcprop%tprcp(ix) temp2d(i,j,34) = GFS_Data(nb)%Sfcprop%srflag(ix) - if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp .or. Model%lsm == Model%lsm_noah_wrfv4) then + if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp) then temp2d(i,j,35) = GFS_Data(nb)%Sfcprop%slc(ix,1) temp2d(i,j,36) = GFS_Data(nb)%Sfcprop%slc(ix,2) temp2d(i,j,37) = GFS_Data(nb)%Sfcprop%slc(ix,3) @@ -775,7 +775,7 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain, warm_sta allocate(sfc_name3(0:nvar_s3+nvar_s3mp)) allocate(sfc_var2(nx,ny,nvar_s2m+nvar_s2o+nvar_s2mp+nvar_s2r),sfc_var3ice(nx,ny,Model%kice)) - if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp .or. Model%lsm == Model%lsm_noah_wrfv4 .or. (.not.warm_start)) then + if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp .or. (.not.warm_start)) then allocate(sfc_var3(nx,ny,Model%lsoil,nvar_s3)) else if (Model%lsm == Model%lsm_ruc) then allocate(sfc_var3(nx,ny,Model%lsoil_lsm,nvar_s3)) @@ -947,7 +947,7 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain, warm_sta call register_axis(Sfc_restart, 'yaxis_1', 'Y') call register_axis(Sfc_restart, 'zaxis_1', dimension_length=Model%kice) - if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp .or. Model%lsm == Model%lsm_noah_wrfv4) then + if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp) then call register_axis(Sfc_restart, 'zaxis_2', dimension_length=Model%lsoil) else if(Model%lsm == Model%lsm_ruc) then call register_axis(Sfc_restart, 'zaxis_2', dimension_length=Model%lsoil_lsm) @@ -1031,7 +1031,7 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain, warm_sta endif ! if not allocated - if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp .or. Model%lsm == Model%lsm_noah_wrfv4 .or. (.not.warm_start)) then + if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp .or. (.not.warm_start)) then !--- names of the 3D variables to save sfc_name3(1) = 'stc' sfc_name3(2) = 'smc' @@ -1385,7 +1385,7 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain, warm_sta Sfcprop(nb)%rechxy(ix) = sfc_var2(i,j,nvar_s2m+47) endif - if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp .or. Model%lsm == Model%lsm_noah_wrfv4 .or. (.not.warm_start)) then + if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp .or. (.not.warm_start)) then !--- 3D variables do lsoil = 1,Model%lsoil Sfcprop(nb)%stc(ix,lsoil) = sfc_var3(i,j,lsoil,1) !--- stc @@ -1723,7 +1723,7 @@ subroutine sfc_prop_restart_write (Sfcprop, Atm_block, Model, fv_domain, timesta call write_data(Sfc_restart, 'zaxis_1', buffer) deallocate(buffer) - if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp .or. Model%lsm == Model%lsm_noah_wrfv4) then + if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp) then call register_axis(Sfc_restart, 'zaxis_2', dimension_length=Model%lsoil) call register_field(Sfc_restart, 'zaxis_2', 'double', (/'zaxis_2'/)) call register_variable_attribute(Sfc_restart, 'zaxis_2', 'cartesian_axis', 'Z', str_len=1) @@ -1770,7 +1770,7 @@ subroutine sfc_prop_restart_write (Sfcprop, Atm_block, Model, fv_domain, timesta allocate(sfc_name2(nvar2m+nvar2o+nvar2mp+nvar2r)) allocate(sfc_name3(0:nvar3+nvar3mp)) allocate(sfc_var2(nx,ny,nvar2m+nvar2o+nvar2mp+nvar2r)) - if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp .or. Model%lsm == Model%lsm_noah_wrfv4) then + if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp) then allocate(sfc_var3(nx,ny,Model%lsoil,nvar3)) elseif (Model%lsm == Model%lsm_ruc) then allocate(sfc_var3(nx,ny,Model%lsoil_lsm,nvar3)) @@ -1963,7 +1963,7 @@ subroutine sfc_prop_restart_write (Sfcprop, Atm_block, Model, fv_domain, timesta endif nullify(var2_p) - if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp .or. Model%lsm == Model%lsm_noah_wrfv4) then + if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp) then !--- names of the 3D variables to save sfc_name3(1) = 'stc' sfc_name3(2) = 'smc' @@ -2168,7 +2168,7 @@ subroutine sfc_prop_restart_write (Sfcprop, Atm_block, Model, fv_domain, timesta if (sfc_var3ice(i,j,k) < one) sfc_var3ice(i,j,k) = zero enddo - if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp .or. Model%lsm == Model%lsm_noah_wrfv4) then + if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp) then !--- 3D variables do lsoil = 1,Model%lsoil sfc_var3(i,j,lsoil,1) = Sfcprop(nb)%stc(ix,lsoil) !--- stc