diff --git a/Registry/Registry.EM_COMMON b/Registry/Registry.EM_COMMON index a6c2d8f771..70063302a8 100644 --- a/Registry/Registry.EM_COMMON +++ b/Registry/Registry.EM_COMMON @@ -2907,7 +2907,7 @@ package nolsmscheme sf_surface_physics==0 - - package slabscheme sf_surface_physics==1 - - package lsmscheme sf_surface_physics==2 - state:flx4,fvb,fbur,fgsn,smcrel,xlaidyn package ruclsmscheme sf_surface_physics==3 - state:smfr3d,keepfr3dflag,soilt1,rhosnf,snowfallac,precipfr,acrunoff -package noahmpscheme sf_surface_physics==4 - state:isnowxy,tvxy,tgxy,canliqxy,canicexy,eahxy,tahxy,cmxy,chxy,fwetxy,sneqvoxy,alboldxy,qsnowxy,wslakexy,zwtxy,waxy,wtxy,tsnoxy,zsnsoxy,snicexy,snliqxy,lfmassxy,rtmassxy,stmassxy,woodxy,stblcpxy,fastcpxy,xsaixy,taussxy,t2mvxy,t2mbxy,q2mvxy,q2mbxy,tradxy,neexy,gppxy,nppxy,fvegxy,qinxy,runsfxy,runsbxy,ecanxy,edirxy,etranxy,fsaxy,firaxy,aparxy,psnxy,savxy,sagxy,rssunxy,rsshaxy,bgapxy,wgapxy,tgvxy,tgbxy,chvxy,chbxy,shgxy,shcxy,shbxy,evgxy,evbxy,ghvxy,ghbxy,irgxy,ircxy,irbxy,trxy,evcxy,chleafxy,chucxy,chv2xy,chb2xy,chstarxy,smoiseq,smcwtdxy,rechxy,deeprechxy,fdepthxy,areaxy,rivercondxy,riverbedxy,eqzwt,pexpxy,qrfxy,qrfsxy,qspringxy,qspringsxy,qslatxy,stepwtd,rechclim,gddxy,grainxy,croptype,planting,harvest,season_gdd,cropcat,pgsxy,soilcomp,soilcl1,soilcl2,soilcl3,soilcl4 +package noahmpscheme sf_surface_physics==4 - state:isnowxy,tvxy,tgxy,canliqxy,canicexy,eahxy,tahxy,cmxy,chxy,fwetxy,sneqvoxy,alboldxy,qsnowxy,qrainxy,wslakexy,zwtxy,waxy,wtxy,tsnoxy,zsnsoxy,snicexy,snliqxy,lfmassxy,rtmassxy,stmassxy,woodxy,stblcpxy,fastcpxy,xsaixy,taussxy,t2mvxy,t2mbxy,q2mvxy,q2mbxy,tradxy,neexy,gppxy,nppxy,fvegxy,qinxy,runsfxy,runsbxy,ecanxy,edirxy,etranxy,fsaxy,firaxy,aparxy,psnxy,savxy,sagxy,rssunxy,rsshaxy,bgapxy,wgapxy,tgvxy,tgbxy,chvxy,chbxy,shgxy,shcxy,shbxy,evgxy,evbxy,ghvxy,ghbxy,irgxy,ircxy,irbxy,trxy,evcxy,chleafxy,chucxy,chv2xy,chb2xy,chstarxy,smoiseq,smcwtdxy,rechxy,deeprechxy,fdepthxy,areaxy,rivercondxy,riverbedxy,eqzwt,pexpxy,qrfxy,qrfsxy,qspringxy,qspringsxy,qslatxy,stepwtd,rechclim,gddxy,grainxy,croptype,planting,harvest,season_gdd,cropcat,pgsxy,soilcomp,soilcl1,soilcl2,soilcl3,soilcl4 package clmscheme sf_surface_physics==5 - state:numc,nump,sabv,sabg,lwup,lhsoi,lhveg,lhtran,snl,snowdp,wtc,wtp,h2osno,t_grnd,t_veg,h2ocan,h2ocan_col,t2m_max,t2m_min,t2clm,t_ref2m,h2osoi_liq_s1,h2osoi_liq_s2,h2osoi_liq_s3,h2osoi_liq_s4,h2osoi_liq_s5,h2osoi_liq1,h2osoi_liq2,h2osoi_liq3,h2osoi_liq4,h2osoi_liq5,h2osoi_liq6,h2osoi_liq7,h2osoi_liq8,h2osoi_liq9,h2osoi_liq10,h2osoi_ice_s1,h2osoi_ice_s2,h2osoi_ice_s3,h2osoi_ice_s4,h2osoi_ice_s5,h2osoi_ice1,h2osoi_ice2,h2osoi_ice3,h2osoi_ice4,h2osoi_ice5,h2osoi_ice6,h2osoi_ice7,h2osoi_ice8,h2osoi_ice9,h2osoi_ice10,t_soisno_s1,t_soisno_s2,t_soisno_s3,t_soisno_s4,t_soisno_s5,t_soisno1,t_soisno2,t_soisno3,t_soisno4,t_soisno5,t_soisno6,t_soisno7,t_soisno8,t_soisno9,t_soisno10,dzsnow1,dzsnow2,dzsnow3,dzsnow4,dzsnow5,snowrds1,snowrds2,snowrds3,snowrds4,snowrds5,t_lake1,t_lake2,t_lake3,t_lake4,t_lake5,t_lake6,t_lake7,t_lake8,t_lake9,t_lake10,h2osoi_vol1,h2osoi_vol2,h2osoi_vol3,h2osoi_vol4,h2osoi_vol5,h2osoi_vol6,h2osoi_vol7,h2osoi_vol8,h2osoi_vol9,h2osoi_vol10,albedosubgrid,lhsubgrid,hfxsubgrid,lwupsubgrid,q2subgrid,sabvsubgrid,sabgsubgrid,nrasubgrid,swupsubgrid package ctsmscheme sf_surface_physics==6 - - package pxlsmscheme sf_surface_physics==7 - state:t2_ndg_new,q2_ndg_new,t2_ndg_old,q2_ndg_old,t2obs,q2obs,vegf_px,imperv,canfra,lai_px,wwlt_px,wfc_px,wsat_px,clay_px,csand_px,fmsand_px diff --git a/Registry/Registry.NMM b/Registry/Registry.NMM index bd9849bc9c..04a2beb162 100644 --- a/Registry/Registry.NMM +++ b/Registry/Registry.NMM @@ -1128,6 +1128,7 @@ state real fwetxy ij - 1 - i02rhd=(interp_mask_land state real sneqvoxy ij - 1 - i02rhd=(interp_mask_land_field:lu_index)u=(UpNear) "sneqvo" "snow mass at last time step" "mm" state real alboldxy ij - 1 - i02rhd=(interp_mask_land_field:lu_index)u=(UpNear) "albold" "snow albedo at last timestep" "-" state real qsnowxy ij - 1 - i02rhd=(interp_mask_land_field:lu_index)u=(UpNear) "qsnowxy" "snowfall on the ground" "mm/s" +state real qrainxy ij - 1 - i02rhd=(interp_mask_land_field:lu_index)u=(UpNear) "qrainxy" "rainfall on the ground" "mm/s" state real wslakexy ij - 1 - i02rhd=(interp_mask_land_field:lu_index)u=(UpNear) "wslake" "lake water storage" "mm" state real zwtxy ij - 1 - i02rhd=(interp_mask_land_field:lu_index)u=(UpNear) "zwt" "water table depth" "m" state real waxy ij - 1 - i02rhd=(interp_mask_land_field:lu_index)u=(UpNear) "wa" "water in the acquifer" "mm" @@ -1846,7 +1847,7 @@ package slabscheme sf_surface_physics==1 - - package lsmscheme sf_surface_physics==2 - state:flx4,fvb,fbur,fgsn package ruclsmscheme sf_surface_physics==3 - state:ACRUNOFF -package noahmpscheme sf_surface_physics==4 - state:isnowxy,tvxy,tgxy,canliqxy,canicexy,eahxy,tahxy,cmxy,chxy,fwetxy,sneqvoxy,alboldxy,qsnowxy,wslakexy,zwtxy,waxy,wtxy,tsnoxy,zsnsoxy,snicexy,snliqxy,lfmassxy,rtmassxy,stmassxy,woodxy,stblcpxy,fastcpxy,xsaixy,taussxy,t2mvxy,t2mbxy,q2mvxy,q2mbxy,tradxy,neexy,gppxy,nppxy,fvegxy,qinxy,runsfxy,runsbxy,ecanxy,edirxy,etranxy,fsaxy,firaxy,aparxy,psnxy,savxy,sagxy,rssunxy,rsshaxy,bgapxy,wgapxy,tgvxy,tgbxy,chvxy,chbxy,shgxy,shcxy,shbxy,evgxy,evbxy,ghvxy,ghbxy,irgxy,ircxy,irbxy,trxy,evcxy,chleafxy,chucxy,chv2xy,chb2xy,chstarxy,smoiseq,smcwtdxy,rechxy,deeprechxy,fdepthxy,areaxy,rivercondxy,riverbedxy,eqzwt,pexpxy,qrfxy,qrfsxy,qspringxy,qspringsxy,qslatxy,stepwtd,gddxy,grainxy,croptype,planting,harvest,season_gdd,cropcat,pgsxy,soilcomp,soilcl1,soilcl2,soilcl3,soilcl4,gecros_state +package noahmpscheme sf_surface_physics==4 - state:isnowxy,tvxy,tgxy,canliqxy,canicexy,eahxy,tahxy,cmxy,chxy,fwetxy,sneqvoxy,alboldxy,qsnowxy,qrainxy,wslakexy,zwtxy,waxy,wtxy,tsnoxy,zsnsoxy,snicexy,snliqxy,lfmassxy,rtmassxy,stmassxy,woodxy,stblcpxy,fastcpxy,xsaixy,taussxy,t2mvxy,t2mbxy,q2mvxy,q2mbxy,tradxy,neexy,gppxy,nppxy,fvegxy,qinxy,runsfxy,runsbxy,ecanxy,edirxy,etranxy,fsaxy,firaxy,aparxy,psnxy,savxy,sagxy,rssunxy,rsshaxy,bgapxy,wgapxy,tgvxy,tgbxy,chvxy,chbxy,shgxy,shcxy,shbxy,evgxy,evbxy,ghvxy,ghbxy,irgxy,ircxy,irbxy,trxy,evcxy,chleafxy,chucxy,chv2xy,chb2xy,chstarxy,smoiseq,smcwtdxy,rechxy,deeprechxy,fdepthxy,areaxy,rivercondxy,riverbedxy,eqzwt,pexpxy,qrfxy,qrfsxy,qspringxy,qspringsxy,qslatxy,stepwtd,gddxy,grainxy,croptype,planting,harvest,season_gdd,cropcat,pgsxy,soilcomp,soilcl1,soilcl2,soilcl3,soilcl4,gecros_state package clmscheme sf_surface_physics==5 - - package gfdlslab sf_surface_physics==88 - - diff --git a/Registry/registry.noahmp b/Registry/registry.noahmp index daf0511f41..0cb04f8645 100644 --- a/Registry/registry.noahmp +++ b/Registry/registry.noahmp @@ -12,6 +12,7 @@ state real fwetxy ij - 1 - i02rhd=(interp_mask_fiel state real sneqvoxy ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "sneqvo" "snow mass at last time step" "mm" state real alboldxy ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "albold" "snow albedo at last timestep" "-" state real qsnowxy ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "qsnowxy" "snowfall on the ground" "mm/s" +state real qrainxy ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "qrainxy" "rainfall on the ground" "mm/s" state real wslakexy ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "wslake" "lake water storage" "mm" state real zwtxy ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "zwt" "water table depth" "m" state real waxy ij - 1 - i02rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "wa" "water in the acquifer" "mm" diff --git a/dyn_em/module_first_rk_step_part1.F b/dyn_em/module_first_rk_step_part1.F index 51d77ec230..6b376666ca 100644 --- a/dyn_em/module_first_rk_step_part1.F +++ b/dyn_em/module_first_rk_step_part1.F @@ -787,7 +787,8 @@ SUBROUTINE first_rk_step_part1 ( grid , config_flags & & ,canicexy=grid%canicexy ,canliqxy=grid%canliqxy, eahxy=grid%eahxy & & , tahxy=grid%tahxy , cmxy=grid%cmxy , chxy=grid%chxy & & , fwetxy=grid%fwetxy ,sneqvoxy=grid%sneqvoxy,alboldxy=grid%alboldxy & - & , qsnowxy=grid%qsnowxy ,wslakexy=grid%wslakexy, zwtxy=grid%zwtxy & + & , qsnowxy=grid%qsnowxy ,qrainxy=grid%qrainxy ,wslakexy=grid%wslakexy & + & , zwtxy=grid%zwtxy & & , waxy=grid%waxy , wtxy=grid%wtxy , tsnoxy=grid%tsnoxy & & , zsnsoxy=grid%zsnsoxy , snicexy=grid%snicexy , snliqxy=grid%snliqxy & & ,lfmassxy=grid%lfmassxy ,rtmassxy=grid%rtmassxy,stmassxy=grid%stmassxy & diff --git a/dyn_em/start_em.F b/dyn_em/start_em.F index 08f6f39bbf..efb5457bb1 100644 --- a/dyn_em/start_em.F +++ b/dyn_em/start_em.F @@ -1101,7 +1101,7 @@ SUBROUTINE start_domain_em ( grid, allowed_to_read & grid%ISNOWXY, grid%ZSNSOXY, grid%TSNOXY, & ! Optional Noah-MP grid%SNICEXY, grid%SNLIQXY, grid%TVXY, grid%TGXY, grid%CANICEXY, & ! Optional Noah-MP grid%CANLIQXY, grid%EAHXY, grid%TAHXY, grid%CMXY, & ! Optional Noah-MP - grid%CHXY, grid%FWETXY, grid%SNEQVOXY, grid%ALBOLDXY, grid%QSNOWXY, & ! Optional Noah-MP + grid%CHXY, grid%FWETXY, grid%SNEQVOXY, grid%ALBOLDXY,grid%QSNOWXY,grid%QRAINXY,& ! Optional Noah-MP grid%WSLAKEXY, grid%ZWTXY, grid%WAXY, grid%WTXY, grid%LFMASSXY, grid%RTMASSXY, & ! Optional Noah-MP grid%STMASSXY, grid%WOODXY, grid%STBLCPXY, grid%FASTCPXY, & ! Optional Noah-MP grid%GRAINXY, grid%GDDXY, & ! Optional Noah-MP diff --git a/dyn_nmm/module_PHYSICS_CALLS.F b/dyn_nmm/module_PHYSICS_CALLS.F index 65e07ace5a..315710eb60 100644 --- a/dyn_nmm/module_PHYSICS_CALLS.F +++ b/dyn_nmm/module_PHYSICS_CALLS.F @@ -1562,7 +1562,8 @@ SUBROUTINE TURBL(NTSD,DT,NPHS,RESTRT & & ,canicexy=grid%canicexy ,canliqxy=grid%canliqxy, eahxy=grid%eahxy & & , tahxy=grid%tahxy , cmxy=grid%cmxy , chxy=grid%chxy & & , fwetxy=grid%fwetxy ,sneqvoxy=grid%sneqvoxy,alboldxy=grid%alboldxy & - & , qsnowxy=grid%qsnowxy ,wslakexy=grid%wslakexy, zwtxy=grid%zwtxy & + & , qsnowxy=grid%qsnowxy ,qrainxy=grid%qrainxy ,wslakexy=grid%wslakexy & + & , zwtxy=grid%zwtxy & & , waxy=grid%waxy , wtxy=grid%wtxy , tsnoxy=grid%tsnoxy & & , zsnsoxy=grid%zsnsoxy , snicexy=grid%snicexy , snliqxy=grid%snliqxy & & ,lfmassxy=grid%lfmassxy ,rtmassxy=grid%rtmassxy,stmassxy=grid%stmassxy & diff --git a/dyn_nmm/start_domain_nmm.F b/dyn_nmm/start_domain_nmm.F index 53025d959c..f4da783889 100644 --- a/dyn_nmm/start_domain_nmm.F +++ b/dyn_nmm/start_domain_nmm.F @@ -2187,7 +2187,7 @@ END SUBROUTINE med_set_egrid_locs & CANLIQXY=grid%CANLIQXY, EAHXY=grid%EAHXY, & ! Optional Noah-MP & TAHXY=grid%TAHXY, CMXY=grid%CMXY, & ! Optional Noah-MP & CHXY=grid%CHXY, FWETXY=grid%FWETXY, SNEQVOXY=grid%SNEQVOXY, & ! Optional Noah-MP - & ALBOLDXY=grid%ALBOLDXY, QSNOWXY=grid%QSNOWXY, & ! Optional Noah-MP + & ALBOLDXY=grid%ALBOLDXY, QSNOWXY=grid%QSNOWXY, QRAINXY=grid%QRAINXY,& ! Optional Noah-MP & WSLAKEXY=grid%WSLAKEXY, ZWTXY=grid%ZWTXY, WAXY=grid%WAXY, & ! Optional Noah-MP & WTXY=grid%WTXY, LFMASSXY=grid%LFMASSXY, RTMASSXY=grid%RTMASSXY, & ! Optional Noah-MP & STMASSXY=grid%STMASSXY, WOODXY=grid%WOODXY, & ! Optional Noah-MP diff --git a/phys/module_physics_init.F b/phys/module_physics_init.F index cc37d864b8..7004580840 100644 --- a/phys/module_physics_init.F +++ b/phys/module_physics_init.F @@ -114,7 +114,7 @@ SUBROUTINE phy_init ( id, config_flags, DT, restart, zfull, zhalf, & ISNOWXY, ZSNSOXY, TSNOXY, & ! Optional Noah-MP SNICEXY, SNLIQXY, TVXY, TGXY, CANICEXY, & ! Optional Noah-MP CANLIQXY, EAHXY, TAHXY, CMXY, & ! Optional Noah-MP - CHXY, FWETXY, SNEQVOXY, ALBOLDXY, QSNOWXY, & ! Optional Noah-MP + CHXY, FWETXY, SNEQVOXY, ALBOLDXY,QSNOWXY,QRAINXY,& ! Optional Noah-MP WSLAKEXY, ZWTXY, WAXY, WTXY, LFMASSXY, RTMASSXY, & ! Optional Noah-MP STMASSXY, WOODXY, STBLCPXY, FASTCPXY, & ! Optional Noah-MP GRAINXY, GDDXY, & ! Optional Noah-MP @@ -506,6 +506,7 @@ SUBROUTINE phy_init ( id, config_flags, DT, restart, zfull, zhalf, & REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: SNEQVOXY REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: ALBOLDXY REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: QSNOWXY + REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: QRAINXY REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: WSLAKEXY REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: ZWTXY REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: WAXY @@ -1344,7 +1345,7 @@ SUBROUTINE phy_init ( id, config_flags, DT, restart, zfull, zhalf, & ISNOWXY, ZSNSOXY, TSNOXY, & SNICEXY, SNLIQXY, TVXY, TGXY, CANICEXY, & CANLIQXY, EAHXY, TAHXY, CMXY, & - CHXY, FWETXY, SNEQVOXY, ALBOLDXY, QSNOWXY, & + CHXY, FWETXY, SNEQVOXY,ALBOLDXY,QSNOWXY,QRAINXY,& WSLAKEXY, ZWTXY, WAXY, WTXY, LFMASSXY, RTMASSXY,& STMASSXY, WOODXY, STBLCPXY, FASTCPXY, & GRAINXY, GDDXY, & ! Noah-MP Crop model @@ -2351,7 +2352,7 @@ SUBROUTINE bl_init(STEPBL,BLDT,DT,RUBLTEN,RVBLTEN,RTHBLTEN, & ISNOWXY, ZSNSOXY, TSNOXY, & SNICEXY, SNLIQXY, TVXY, TGXY, CANICEXY, & CANLIQXY, EAHXY, TAHXY, CMXY, & - CHXY, FWETXY, SNEQVOXY, ALBOLDXY, QSNOWXY, & + CHXY, FWETXY, SNEQVOXY,ALBOLDXY,QSNOWXY,QRAINXY,& WSLAKEXY, ZWTXY, WAXY, WTXY, LFMASSXY, RTMASSXY,& STMASSXY, WOODXY, STBLCPXY, FASTCPXY, & GRAINXY, GDDXY, & ! Noah-MP Crop model @@ -2646,6 +2647,7 @@ SUBROUTINE bl_init(STEPBL,BLDT,DT,RUBLTEN,RVBLTEN,RTHBLTEN, & REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: SNEQVOXY REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: ALBOLDXY REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: QSNOWXY + REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: QRAINXY REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: WSLAKEXY REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: ZWTXY REAL, OPTIONAL, DIMENSION(ims:ime,jms:jme) :: WAXY @@ -3181,7 +3183,7 @@ SUBROUTINE bl_init(STEPBL,BLDT,DT,RUBLTEN,RVBLTEN,RTHBLTEN, & TSLB,SMOIS,SH2O,DZS, FNDSOILW, FNDSNOWH, & TSK,isnowxy ,tvxy ,tgxy ,canicexy ,TMN,XICE, & canliqxy ,eahxy ,tahxy ,cmxy ,chxy , & - fwetxy ,sneqvoxy ,alboldxy ,qsnowxy ,wslakexy ,zwtxy ,waxy , & + fwetxy ,sneqvoxy ,alboldxy ,qsnowxy ,qrainxy,wslakexy, zwtxy, waxy, & wtxy ,tsnoxy ,zsnsoxy ,snicexy ,snliqxy ,lfmassxy ,rtmassxy , & stmassxy ,woodxy ,stblcpxy ,fastcpxy ,xsaixy ,lai , & grainxy ,gddxy , & diff --git a/phys/module_sf_noahmpdrv.F b/phys/module_sf_noahmpdrv.F index f77b959845..04f1c63c58 100644 --- a/phys/module_sf_noahmpdrv.F +++ b/phys/module_sf_noahmpdrv.F @@ -28,7 +28,7 @@ SUBROUTINE noahmplsm(ITIMESTEP, YR, JULIAN, COSZIN,XLAT,XLONG, & ! IN Z0, ZNT, & ! IN/OUT LSM eqv ISNOWXY, TVXY, TGXY, CANICEXY, CANLIQXY, EAHXY, & ! IN/OUT Noah MP only TAHXY, CMXY, CHXY, FWETXY, SNEQVOXY, ALBOLDXY, & ! IN/OUT Noah MP only - QSNOWXY, WSLAKEXY, ZWTXY, WAXY, WTXY, TSNOXY, & ! IN/OUT Noah MP only + QSNOWXY, QRAINXY, WSLAKEXY, ZWTXY, WAXY, WTXY, TSNOXY, & ! IN/OUT Noah MP only ZSNSOXY, SNICEXY, SNLIQXY, LFMASSXY, RTMASSXY, STMASSXY, & ! IN/OUT Noah MP only WOODXY, STBLCPXY, FASTCPXY, XLAIXY, XSAIXY, TAUSSXY, & ! IN/OUT Noah MP only SMOISEQ, SMCWTDXY,DEEPRECHXY, RECHXY, GRAINXY, GDDXY,PGSXY, & ! IN/OUT Noah MP only @@ -194,6 +194,7 @@ SUBROUTINE noahmplsm(ITIMESTEP, YR, JULIAN, COSZIN,XLAT,XLONG, & ! IN REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: SNEQVOXY ! snow mass at last time step(mm h2o) REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: ALBOLDXY ! snow albedo at last time step (-) REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: QSNOWXY ! snowfall on the ground [mm/s] + REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: QRAINXY ! rainfall on the ground [mm/s] REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: WSLAKEXY ! lake water storage [mm] REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: ZWTXY ! water table depth [m] REAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: WAXY ! water in the "aquifer" [mm] @@ -327,6 +328,7 @@ SUBROUTINE noahmplsm(ITIMESTEP, YR, JULIAN, COSZIN,XLAT,XLONG, & ! IN REAL :: SNEQVO ! snow mass at last time step(mm h2o) REAL :: ALBOLD ! snow albedo at last time step (-) REAL :: QSNOW ! snowfall on the ground [mm/s] + REAL :: QRAIN ! rainfall on the ground [mm/s] REAL :: WSLAKE ! lake water storage [mm] REAL :: ZWT ! water table depth [m] REAL :: WA ! water in the "aquifer" [mm] @@ -611,6 +613,7 @@ SUBROUTINE noahmplsm(ITIMESTEP, YR, JULIAN, COSZIN,XLAT,XLONG, & ! IN SNEQVO = SNEQVOXY(I,J) ! SWE previous timestep ALBOLD = ALBOLDXY(I,J) ! albedo previous timestep, for snow aging QSNOW = QSNOWXY (I,J) ! snow falling on ground + QRAIN = QRAINXY (I,J) ! rain falling on ground WSLAKE = WSLAKEXY(I,J) ! lake water storage (can be neg.) (mm) ZWT = ZWTXY (I,J) ! depth to water table [m] WA = WAXY (I,J) ! water storage in aquifer [mm] @@ -858,6 +861,7 @@ SUBROUTINE noahmplsm(ITIMESTEP, YR, JULIAN, COSZIN,XLAT,XLONG, & ! IN ALBOLD , SNEQVO , & ! IN/OUT : STC , SMH2O , SMC , TAH , EAH , FWET , & ! IN/OUT : CANLIQ , CANICE , TV , TG , QSFC1D , QSNOW , & ! IN/OUT : + QRAIN , & ! IN/OUT : ISNOW , ZSNSO , SNDPTH , SWE , SNICE , SNLIQ , & ! IN/OUT : ZWT , WA , WT , WSLAKE , LFMASS , RTMASS , & ! IN/OUT : STMASS , WOOD , STBLCP , FASTCP , PLAI , PSAI , & ! IN/OUT : @@ -933,6 +937,7 @@ SUBROUTINE noahmplsm(ITIMESTEP, YR, JULIAN, COSZIN,XLAT,XLONG, & ! IN SNEQVOXY (I,J) = SNEQVO ALBOLDXY (I,J) = ALBOLD QSNOWXY (I,J) = QSNOW + QRAINXY (I,J) = QRAIN WSLAKEXY (I,J) = WSLAKE ZWTXY (I,J) = ZWT WAXY (I,J) = WA @@ -1086,6 +1091,7 @@ SUBROUTINE TRANSFER_MP_PARAMETERS(VEGTYPE,SOILTYPE,SLOPETYPE,SOILCOLOR,CROPTYPE, parameters%DEN = DEN_TABLE(VEGTYPE) !tree density (no. of trunks per m2) parameters%RC = RC_TABLE(VEGTYPE) !tree crown radius (m) parameters%MFSNO = MFSNO_TABLE(VEGTYPE) !snowmelt m parameter () + parameters%SCFFAC = SCFFAC_TABLE(VEGTYPE) !snow cover factor (m) (originally hard-coded 2.5*z0 in SCF formulation) parameters%SAIM = SAIM_TABLE(VEGTYPE,:) !monthly stem area index, one-sided parameters%LAIM = LAIM_TABLE(VEGTYPE,:) !monthly leaf area index, one-sided parameters%SLA = SLA_TABLE(VEGTYPE) !single-side leaf area per Kg [m2/kg] @@ -1200,7 +1206,9 @@ SUBROUTINE TRANSFER_MP_PARAMETERS(VEGTYPE,SOILTYPE,SLOPETYPE,SOILCOLOR,CROPTYPE, parameters%FSATMX = FSATMX_TABLE parameters%Z0SNO = Z0SNO_TABLE parameters%SSI = SSI_TABLE - parameters%SWEMX = SWEMX_TABLE + parameters%SNOW_RET_FAC = SNOW_RET_FAC_TABLE + parameters%SNOW_EMIS = SNOW_EMIS_TABLE + parameters%SWEMX = SWEMX_TABLE parameters%TAU0 = TAU0_TABLE parameters%GRAIN_GROWTH = GRAIN_GROWTH_TABLE parameters%EXTRA_GROWTH = EXTRA_GROWTH_TABLE @@ -1383,7 +1391,7 @@ SUBROUTINE NOAHMP_INIT ( MMINLU, SNOW , SNOWH , CANWAT , ISLTYP , IVGTYP, XLAT TSLB , SMOIS , SH2O , DZS , FNDSOILW , FNDSNOWH , & TSK, isnowxy , tvxy ,tgxy ,canicexy , TMN, XICE, & canliqxy ,eahxy ,tahxy ,cmxy ,chxy , & - fwetxy ,sneqvoxy ,alboldxy ,qsnowxy ,wslakexy ,zwtxy ,waxy , & + fwetxy ,sneqvoxy ,alboldxy ,qsnowxy, qrainxy,wslakexy ,zwtxy, waxy , & wtxy ,tsnoxy ,zsnsoxy ,snicexy ,snliqxy ,lfmassxy ,rtmassxy , & stmassxy ,woodxy ,stblcpxy ,fastcpxy ,xsaixy ,lai , & grainxy ,gddxy , & @@ -1463,6 +1471,7 @@ SUBROUTINE NOAHMP_INIT ( MMINLU, SNOW , SNOWH , CANWAT , ISLTYP , IVGTYP, XLAT REAL, DIMENSION(ims:ime,jms:jme), INTENT(INOUT) :: sneqvoxy !snow mass at last time step(mm h2o) REAL, DIMENSION(ims:ime,jms:jme), INTENT(INOUT) :: alboldxy !snow albedo at last time step (-) REAL, DIMENSION(ims:ime,jms:jme), INTENT(INOUT) :: qsnowxy !snowfall on the ground [mm/s] + REAL, DIMENSION(ims:ime,jms:jme), INTENT(INOUT) :: qrainxy !rainfall on the ground [mm/s] REAL, DIMENSION(ims:ime,jms:jme), INTENT(INOUT) :: wslakexy !lake water storage [mm] REAL, DIMENSION(ims:ime,jms:jme), INTENT(INOUT) :: zwtxy !water table depth [m] REAL, DIMENSION(ims:ime,jms:jme), INTENT(INOUT) :: waxy !water in the "aquifer" [mm] @@ -1559,7 +1568,7 @@ SUBROUTINE NOAHMP_INIT ( MMINLU, SNOW , SNOWH , CANWAT , ISLTYP , IVGTYP, XLAT ENDIF - ! Check if snow/snowh are consistent and cap SWE at 2000mm; + ! Check if snow/snowh are consistent and cap SWE at 5000mm; ! the Noah-MP code does it internally but if we don't do it here, problems ensue DO J = jts,jtf DO I = its,itf @@ -1568,9 +1577,9 @@ SUBROUTINE NOAHMP_INIT ( MMINLU, SNOW , SNOWH , CANWAT , ISLTYP , IVGTYP, XLAT ,i,j,snow(i,j),snowh(i,j) CALL wrf_message(err_message) ENDIF - IF ( SNOW( i,j ) > 2000. ) THEN - SNOWH(I,J) = SNOWH(I,J) * 2000. / SNOW(I,J) ! SNOW in mm and SNOWH in m - SNOW (I,J) = 2000. ! cap SNOW at 2000, maintain density + IF ( SNOW( i,j ) > 5000. ) THEN + SNOWH(I,J) = SNOWH(I,J) * 5000. / SNOW(I,J) ! SNOW in mm and SNOWH in m + SNOW (I,J) = 5000. ! cap SNOW at 5000, maintain density ENDIF ENDDO ENDDO @@ -1672,6 +1681,7 @@ SUBROUTINE NOAHMP_INIT ( MMINLU, SNOW , SNOWH , CANWAT , ISLTYP , IVGTYP, XLAT sneqvoxy (I,J) = 0.0 alboldxy (I,J) = 0.65 qsnowxy (I,J) = 0.0 + qrainxy (I,J) = 0.0 wslakexy (I,J) = 0.0 if(iopt_run.ne.5) then diff --git a/phys/module_sf_noahmplsm.F b/phys/module_sf_noahmplsm.F index 9686a403c6..6526fe567b 100644 --- a/phys/module_sf_noahmplsm.F +++ b/phys/module_sf_noahmplsm.F @@ -142,7 +142,8 @@ MODULE MODULE_SF_NOAHMPLSM ! 2 -> BATS: when SFCTMP SFCTMP < TFRZ ! 4 -> Use WRF microphysics output - + ! 5 -> Use wetbulb temperature (Wang et al., 2019 GRL) C.He, 12/18/2020 + INTEGER :: OPT_TBOT ! options for lower boundary condition of soil temperature ! 1 -> zero heat flux from bottom (ZBOT and TBOT not used) ! **2 -> TBOT at ZBOT (8m) read from a file (original Noah) @@ -219,6 +220,7 @@ MODULE MODULE_SF_NOAHMPLSM REAL :: DEN !tree density (no. of trunks per m2) REAL :: RC !tree crown radius (m) REAL :: MFSNO !snowmelt m parameter () + REAL :: SCFFAC !snow cover factor (m) (originally hard-coded 2.5*z0 in SCF formulation) REAL :: SAIM(12) !monthly stem area index, one-sided REAL :: LAIM(12) !monthly leaf area index, one-sided REAL :: SLA !single-side leaf area per Kg [m2/kg] @@ -291,6 +293,8 @@ MODULE MODULE_SF_NOAHMPLSM REAL :: FSATMX !maximum surface saturated fraction (global mean) REAL :: Z0SNO !snow surface roughness length (m) (0.002) REAL :: SSI !liquid water holding capacity for snowpack (m3/m3) + REAL :: SNOW_RET_FAC !snowpack water release timescale factor (1/s) + REAL :: SNOW_EMIS !snow emissivity REAL :: SWEMX !new snow mass to fully cover old snow (mm) REAL :: TAU0 !tau0 from Yang97 eqn. 10a REAL :: GRAIN_GROWTH !growth from vapor diffusion Yang97 eqn. 10b @@ -394,6 +398,7 @@ SUBROUTINE NOAHMP_SFLX (parameters, & ALBOLD , SNEQVO , & ! IN/OUT : STC , SH2O , SMC , TAH , EAH , FWET , & ! IN/OUT : CANLIQ , CANICE , TV , TG , QSFC , QSNOW , & ! IN/OUT : + QRAIN , & ! IN/OUT : ISNOW , ZSNSO , SNOWH , SNEQV , SNICE , SNLIQ , & ! IN/OUT : ZWT , WA , WT , WSLAKE , LFMASS , RTMASS , & ! IN/OUT : STMASS , WOOD , STBLCP , FASTCP , LAI , SAI , & ! IN/OUT : @@ -477,6 +482,7 @@ SUBROUTINE NOAHMP_SFLX (parameters, & ! input/output : need arbitary intial values REAL , INTENT(INOUT) :: QSNOW !snowfall [mm/s] + REAL , INTENT(INOUT) :: QRAIN !rain at ground srf (mm/s) [+] REAL , INTENT(INOUT) :: FWET !wetted or snowed fraction of canopy (-) REAL , INTENT(INOUT) :: SNEQVO !snow mass at last time step (mm) REAL , INTENT(INOUT) :: EAH !canopy air vapor pressure (pa) @@ -665,7 +671,6 @@ SUBROUTINE NOAHMP_SFLX (parameters, & REAL :: QINTS !interception (loading) rate for snowfall (mm/s) REAL :: QDRIPS !drip (unloading) rate for intercepted snow (mm/s) REAL :: QTHROS !throughfall of snowfall (mm/s) - REAL :: QRAIN !rain at ground srf (mm/s) [+] REAL :: SNOWHIN !snow depth increasing rate (m/s) REAL :: LATHEAV !latent heat vap./sublimation (j/kg) REAL :: LATHEAG !latent heat vap./sublimation (j/kg) @@ -925,6 +930,15 @@ SUBROUTINE ATM (parameters,SFCPRS ,SFCTMP ,Q2 , REAL :: PRCP_FROZEN !total frozen precipitation [mm/s] ! MB/AN : v3.7 REAL, PARAMETER :: RHO_GRPL = 500.0 ! graupel bulk density [kg/m3] ! MB/AN : v3.7 REAL, PARAMETER :: RHO_HAIL = 917.0 ! hail bulk density [kg/m3] ! MB/AN : v3.7 +! wet-bulb scheme Wang et al., 2019 GRL, C.He, 12/18/2020 + REAL :: ESATAIR ! saturated vapor pressure of air + REAL :: LATHEA ! latent heat of vapor/sublimation + REAL :: GAMMA_b ! (cp*p)/(eps*L) + REAL :: TDC ! air temperature [C] + REAL :: TWET ! wetbulb temperature + INTEGER :: ITER + INTEGER, PARAMETER :: NITER = 10 ! iterations for Twet calculation + ! -------------------------------------------------------------------------------------------------- !jref: seems like PAIR should be P1000mb?? @@ -1014,6 +1028,23 @@ SUBROUTINE ATM (parameters,SFCPRS ,SFCTMP ,Q2 , ENDIF +! wet-bulb scheme (Wang et al., 2019 GRL), C.He, 12/18/2020 + IF(OPT_SNF == 5) THEN + TDC = MIN( 50., MAX(-50.,(SFCTMP-TFRZ)) ) !Kelvin to degree Celsius with limit -50 to +50 + IF (SFCTMP > TFRZ) THEN + LATHEA = HVAP + ELSE + LATHEA = HSUB + END IF + GAMMA_b = CPAIR*SFCPRS/(0.622*LATHEA) + TWET = TDC - 5. ! first guess wetbulb temperature + DO ITER = 1, NITER + ESATAIR = 610.8 * EXP((17.27*TWET)/(237.3+TWET)) + TWET = TWET - (ESATAIR-EAIR)/ GAMMA_b ! Wang et al., 2019 GRL Eq.2 + END DO + FPICE = 1.0/(1.0+6.99E-5*exp(2.0*(TWET+3.97))) ! Wang et al., 2019 GRL Eq. 1 + ENDIF + RAIN = PRCP * (1.-FPICE) SNOW = PRCP * FPICE @@ -1831,7 +1862,8 @@ SUBROUTINE ENERGY (parameters,ICE ,VEGTYP ,IST ,NSNOW ,NSOIL , & !in IF(SNOWH.GT.0.) THEN BDSNO = SNEQV / SNOWH FMELT = (BDSNO/100.)**parameters%MFSNO - FSNO = TANH( SNOWH /(2.5* Z0 * FMELT)) + !FSNO = TANH( SNOWH /(2.5* Z0 * FMELT)) + FSNO = TANH( SNOWH /(parameters%SCFFAC * FMELT)) ! C.He: bring hard-coded 2.5*z0 to MPTABLE tunable parameter SCFFAC ENDIF ! ground roughness length @@ -1900,9 +1932,9 @@ SUBROUTINE ENERGY (parameters,ICE ,VEGTYP ,IST ,NSNOW ,NSOIL , & !in EMV = 1. - EXP(-(ELAI+ESAI)/1.0) IF (ICE == 1) THEN - EMG = 0.98*(1.-FSNO) + 1.0*FSNO + EMG = 0.98*(1.-FSNO) + parameters%SNOW_EMIS*FSNO ! move hard-coded snow emissivity as a global parameter to MPTABLE ELSE - EMG = parameters%EG(IST)*(1.-FSNO) + 1.0*FSNO + EMG = parameters%EG(IST)*(1.-FSNO) + parameters%SNOW_EMIS*FSNO END IF ! soil moisture factor controlling stomatal resistance @@ -4333,7 +4365,8 @@ SUBROUTINE RAGRB(parameters,ITER ,VAI ,RHOAIR ,HG ,TAH , & !in TMPRB = CWPC*50. / (1. - EXP(-CWPC/2.)) RB = TMPRB * SQRT(parameters%DLEAF/UC) - RB = MAX(RB,100.0) + RB = MIN(MAX(RB, 5.0),50.0) ! limit RB to 5~50 +! RB = MAX(RB,100.0) ! typically RB<50,so this leads to constant RB of 100 ! RB = 200 END SUBROUTINE RAGRB @@ -5494,6 +5527,7 @@ SUBROUTINE PHASECHANGE (parameters,NSNOW ,NSOIL ,ISNOW ,DT ,FACT , SNEQV = MAX(0.,TEMP1-XM(1)) PROPOR = SNEQV/TEMP1 SNOWH = MAX(0.,PROPOR * SNOWH) + SNOWH = MIN(MAX(SNOWH,SNEQV/500.0),SNEQV/50.0) ! limit adjustment to a reasonable density HEATR = HM(1) - HFUS*(TEMP1-SNEQV)/DT IF (HEATR > 0.) THEN XM(1) = HEATR*DT/HFUS @@ -6330,10 +6364,12 @@ SUBROUTINE COMBINE (parameters,NSNOW ,NSOIL ,ILOC ,JLOC , & !in IF(J /= 0) THEN SNLIQ(J+1) = SNLIQ(J+1) + SNLIQ(J) SNICE(J+1) = SNICE(J+1) + SNICE(J) + DZSNSO(J+1) = DZSNSO(J+1) + DZSNSO(J) ELSE IF (ISNOW_OLD < -1) THEN ! MB/KM: change to ISNOW SNLIQ(J-1) = SNLIQ(J-1) + SNLIQ(J) SNICE(J-1) = SNICE(J-1) + SNICE(J) + DZSNSO(J-1) = DZSNSO(J-1) + DZSNSO(J) ELSE IF(SNICE(J) >= 0.) THEN PONDING1 = SNLIQ(J) ! ISNOW WILL GET SET TO ZERO BELOW; PONDING1 WILL GET @@ -6741,6 +6777,7 @@ SUBROUTINE COMPACT (parameters,NSNOW ,NSOIL ,DT ,STC ,SNICE , & !in ! The change in DZ due to compaction DZSNSO(J) = DZSNSO(J)*(1.+PDZDTC) + DZSNSO(J) = max(DZSNSO(J),SNICE(J)/DENICE + SNLIQ(J)/DENH2O) END IF ! Pressure of overlying snow @@ -6803,6 +6840,7 @@ SUBROUTINE SNOWH2O (parameters,NSNOW ,NSOIL ,DT ,QSNFRO ,QSNSUB , & !in REAL, DIMENSION(-NSNOW+1:0) :: EPORE !effective porosity = porosity - VOL_ICE REAL :: PROPOR, TEMP REAL :: PONDING1, PONDING2 + REAL, PARAMETER :: max_liq_mass_fraction = 0.4 ! ---------------------------------------------------------------------- !for the case when SNEQV becomes '0' after 'COMBINE' @@ -6825,6 +6863,7 @@ SUBROUTINE SNOWH2O (parameters,NSNOW ,NSOIL ,DT ,QSNFRO ,QSNSUB , & !in SNEQV = SNEQV - QSNSUB*DT + QSNFRO*DT PROPOR = SNEQV/TEMP SNOWH = MAX(0.,PROPOR * SNOWH) + SNOWH = MIN(MAX(SNOWH,SNEQV/500.0),SNEQV/50.0) ! limit adjustment to a reasonable density IF(SNEQV < 0.) THEN SICE(1) = SICE(1) + SNEQV/(DZSNSO(1)*1000.) @@ -6876,11 +6915,22 @@ SUBROUTINE SNOWH2O (parameters,NSNOW ,NSOIL ,DT ,QSNFRO ,QSNSUB , & !in SNLIQ(J) = SNLIQ(J) + QIN VOL_LIQ(J) = SNLIQ(J)/(DZSNSO(J)*DENH2O) QOUT = MAX(0.,(VOL_LIQ(J)-parameters%SSI*EPORE(J))*DZSNSO(J)) + IF(J == 0) THEN + QOUT = MAX((VOL_LIQ(J)- EPORE(J))*DZSNSO(J) , parameters%SNOW_RET_FAC*DT*QOUT) + END IF QOUT = QOUT*DENH2O SNLIQ(J) = SNLIQ(J) - QOUT + IF((SNLIQ(J)/(SNICE(J)+SNLIQ(J))) > max_liq_mass_fraction) THEN + QOUT = QOUT + (SNLIQ(J) - max_liq_mass_fraction/(1.0 - max_liq_mass_fraction)*SNICE(J)) + SNLIQ(J) = max_liq_mass_fraction/(1.0 - max_liq_mass_fraction)*SNICE(J) + ENDIF QIN = QOUT END DO + DO J = ISNOW+1, 0 + DZSNSO(J) = MAX(DZSNSO(J),SNLIQ(J)/DENH2O + SNICE(J)/DENICE) + END DO + ! Liquid water from snow bottom to soil QSNBOT = QOUT / DT ! mm/s @@ -9119,7 +9169,7 @@ subroutine noahmp_options(idveg ,iopt_crs ,iopt_btr ,iopt_run ,iopt_sfc ! 1 -> semi-implicit; 2 -> full implicit (original Noah) INTEGER, INTENT(IN) :: iopt_rsf !surface resistance (1->Sakaguchi/Zeng; 2->Seller; 3->mod Sellers; 4->1+snow) INTEGER, INTENT(IN) :: iopt_soil !soil parameters set-up option - INTEGER, INTENT(IN) :: iopt_pedo !pedo-transfer function + INTEGER, INTENT(IN) :: iopt_pedo !pedo-transfer function (1->Saxton and Rawls) INTEGER, INTENT(IN) :: iopt_crop !crop model option (0->none; 1->Liu et al.; 2->Gecros) ! ------------------------------------------------------------------------------------------------- @@ -9178,6 +9228,7 @@ MODULE NOAHMP_TABLES REAL :: DEN_TABLE(MVT) !tree density (no. of trunks per m2) REAL :: RC_TABLE(MVT) !tree crown radius (m) REAL :: MFSNO_TABLE(MVT) !snowmelt curve parameter () + REAL :: SCFFAC_TABLE(MVT) !snow cover factor (m) (replace original hard-coded 2.5*z0 in SCF formulation) REAL :: SAIM_TABLE(MVT,12) !monthly stem area index, one-sided REAL :: LAIM_TABLE(MVT,12) !monthly leaf area index, one-sided REAL :: SLA_TABLE(MVT) !single-side leaf area per Kg [m2/kg] @@ -9269,6 +9320,8 @@ MODULE NOAHMP_TABLES REAL :: FSATMX_TABLE !maximum surface saturated fraction (global mean) REAL :: Z0SNO_TABLE !snow surface roughness length (m) (0.002) REAL :: SSI_TABLE !liquid water holding capacity for snowpack (m3/m3) (0.03) + REAL :: SNOW_RET_FAC_TABLE !snowpack water release timescale factor (1/s) + REAL :: SNOW_EMIS_TABLE!snow emissivity REAL :: SWEMX_TABLE !new snow mass to fully cover old snow (mm) REAL :: TAU0_TABLE !tau0 from Yang97 eqn. 10a REAL :: GRAIN_GROWTH_TABLE !growth from vapor diffusion Yang97 eqn. 10b @@ -9412,7 +9465,7 @@ subroutine read_mp_veg_parameters(DATASET_IDENTIFIER) LAI_JUL,LAI_AUG,LAI_SEP,LAI_OCT,LAI_NOV,LAI_DEC REAL, DIMENSION(MVT) :: RHOL_VIS, RHOL_NIR, RHOS_VIS, RHOS_NIR, & TAUL_VIS, TAUL_NIR, TAUS_VIS, TAUS_NIR - REAL, DIMENSION(MVT) :: CH2OP, DLEAF, Z0MVT, HVT, HVB, DEN, RC, MFSNO, XL, CWPVT, C3PSN, KC25, AKC, KO25, AKO, & + REAL, DIMENSION(MVT) :: CH2OP, DLEAF, Z0MVT, HVT, HVB, DEN, RC, MFSNO, SCFFAC, XL, CWPVT, C3PSN, KC25, AKC, KO25, AKO, & AVCMX, AQE, LTOVRC, DILEFC, DILEFW, RMF25 , SLA , FRAGR , TMIN , VCMX25, TDLEF , & BP, MP, QE25, RMS25, RMR25, ARM, FOLNMX, WDPOOL, WRRAT, MRP, NROOT, RGL, RS, HS, TOPT, RSMAX, & SLAREA, EPS1, EPS2, EPS3, EPS4, EPS5 @@ -9420,7 +9473,7 @@ subroutine read_mp_veg_parameters(DATASET_IDENTIFIER) NAMELIST / noahmp_usgs_veg_categories / VEG_DATASET_DESCRIPTION, NVEG NAMELIST / noahmp_usgs_parameters / ISURBAN, ISWATER, ISBARREN, ISICE, ISCROP, EBLFOREST, NATURAL, & LOW_DENSITY_RESIDENTIAL, HIGH_DENSITY_RESIDENTIAL, HIGH_INTENSITY_INDUSTRIAL, & - CH2OP, DLEAF, Z0MVT, HVT, HVB, DEN, RC, MFSNO, XL, CWPVT, C3PSN, KC25, AKC, KO25, AKO, AVCMX, AQE, & + CH2OP, DLEAF, Z0MVT, HVT, HVB, DEN, RC, MFSNO, SCFFAC, XL, CWPVT, C3PSN, KC25, AKC, KO25, AKO, AVCMX, AQE, & LTOVRC, DILEFC, DILEFW, RMF25 , SLA , FRAGR , TMIN , VCMX25, TDLEF , BP, MP, QE25, RMS25, RMR25, ARM, & FOLNMX, WDPOOL, WRRAT, MRP, NROOT, RGL, RS, HS, TOPT, RSMAX, & SAI_JAN, SAI_FEB, SAI_MAR, SAI_APR, SAI_MAY, SAI_JUN,SAI_JUL,SAI_AUG,SAI_SEP,SAI_OCT,SAI_NOV,SAI_DEC, & @@ -9430,7 +9483,7 @@ subroutine read_mp_veg_parameters(DATASET_IDENTIFIER) NAMELIST / noahmp_modis_veg_categories / VEG_DATASET_DESCRIPTION, NVEG NAMELIST / noahmp_modis_parameters / ISURBAN, ISWATER, ISBARREN, ISICE, ISCROP, EBLFOREST, NATURAL, & LOW_DENSITY_RESIDENTIAL, HIGH_DENSITY_RESIDENTIAL, HIGH_INTENSITY_INDUSTRIAL, & - CH2OP, DLEAF, Z0MVT, HVT, HVB, DEN, RC, MFSNO, XL, CWPVT, C3PSN, KC25, AKC, KO25, AKO, AVCMX, AQE, & + CH2OP, DLEAF, Z0MVT, HVT, HVB, DEN, RC, MFSNO, SCFFAC, XL, CWPVT, C3PSN, KC25, AKC, KO25, AKO, AVCMX, AQE, & LTOVRC, DILEFC, DILEFW, RMF25 , SLA , FRAGR , TMIN , VCMX25, TDLEF , BP, MP, QE25, RMS25, RMR25, ARM, & FOLNMX, WDPOOL, WRRAT, MRP, NROOT, RGL, RS, HS, TOPT, RSMAX, & SAI_JAN, SAI_FEB, SAI_MAR, SAI_APR, SAI_MAY, SAI_JUN,SAI_JUL,SAI_AUG,SAI_SEP,SAI_OCT,SAI_NOV,SAI_DEC, & @@ -9446,6 +9499,7 @@ subroutine read_mp_veg_parameters(DATASET_IDENTIFIER) DEN_TABLE = -1.E36 RC_TABLE = -1.E36 MFSNO_TABLE = -1.E36 + SCFFAC_TABLE = -1.E36 RHOL_TABLE = -1.E36 RHOS_TABLE = -1.E36 TAUL_TABLE = -1.E36 @@ -9541,6 +9595,7 @@ subroutine read_mp_veg_parameters(DATASET_IDENTIFIER) DEN_TABLE(1:NVEG) = DEN(1:NVEG) RC_TABLE(1:NVEG) = RC(1:NVEG) MFSNO_TABLE(1:NVEG) = MFSNO(1:NVEG) + SCFFAC_TABLE(1:NVEG) = SCFFAC(1:NVEG) XL_TABLE(1:NVEG) = XL(1:NVEG) CWPVT_TABLE(1:NVEG) = CWPVT(1:NVEG) C3PSN_TABLE(1:NVEG) = C3PSN(1:NVEG) @@ -9780,12 +9835,12 @@ subroutine read_mp_global_parameters() integer :: ierr logical :: file_named - REAL :: CO2,O2,TIMEAN,FSATMX,Z0SNO,SSI, & + REAL :: CO2,O2,TIMEAN,FSATMX,Z0SNO,SSI,SNOW_RET_FAC,SNOW_EMIS,& SWEMX,TAU0,GRAIN_GROWTH,EXTRA_GROWTH,DIRT_SOOT,& BATS_COSZ,BATS_VIS_NEW,BATS_NIR_NEW,BATS_VIS_AGE,BATS_NIR_AGE,BATS_VIS_DIR,BATS_NIR_DIR,& RSURF_SNOW,RSURF_EXP - NAMELIST / noahmp_global_parameters / CO2,O2,TIMEAN,FSATMX,Z0SNO,SSI, & + NAMELIST / noahmp_global_parameters / CO2,O2,TIMEAN,FSATMX,Z0SNO,SSI,SNOW_RET_FAC,SNOW_EMIS,& SWEMX,TAU0,GRAIN_GROWTH,EXTRA_GROWTH,DIRT_SOOT,& BATS_COSZ,BATS_VIS_NEW,BATS_NIR_NEW,BATS_VIS_AGE,BATS_NIR_AGE,BATS_VIS_DIR,BATS_NIR_DIR,& RSURF_SNOW,RSURF_EXP @@ -9798,7 +9853,9 @@ subroutine read_mp_global_parameters() FSATMX_TABLE = -1.E36 Z0SNO_TABLE = -1.E36 SSI_TABLE = -1.E36 - SWEMX_TABLE = -1.E36 +SNOW_RET_FAC_TABLE = -1.E36 + SNOW_EMIS_TABLE = -1.E36 + SWEMX_TABLE = -1.E36 TAU0_TABLE = -1.E36 GRAIN_GROWTH_TABLE = -1.E36 EXTRA_GROWTH_TABLE = -1.E36 @@ -9834,6 +9891,8 @@ subroutine read_mp_global_parameters() FSATMX_TABLE = FSATMX Z0SNO_TABLE = Z0SNO SSI_TABLE = SSI +SNOW_RET_FAC_TABLE = SNOW_RET_FAC + SNOW_EMIS_TABLE = SNOW_EMIS SWEMX_TABLE = SWEMX TAU0_TABLE = TAU0 GRAIN_GROWTH_TABLE = GRAIN_GROWTH diff --git a/phys/module_surface_driver.F b/phys/module_surface_driver.F index 1f3f74da07..3c53622249 100644 --- a/phys/module_surface_driver.F +++ b/phys/module_surface_driver.F @@ -61,7 +61,7 @@ SUBROUTINE surface_driver( & & ,soilcomp , soilcl1, soilcl2, soilcl3, soilcl4 & & ,isnowxy ,tvxy ,tgxy ,canicexy ,canliqxy ,eahxy & & ,tahxy ,cmxy ,chxy ,fwetxy ,sneqvoxy ,alboldxy & - & ,qsnowxy ,wslakexy ,zwtxy ,waxy ,wtxy ,tsnoxy & + & ,qsnowxy ,qrainxy ,wslakexy ,zwtxy ,waxy, wtxy,tsnoxy & & ,zsnsoxy ,snicexy ,snliqxy ,lfmassxy ,rtmassxy ,stmassxy & & ,woodxy ,stblcpxy ,fastcpxy ,xsaixy ,taussxy & & ,grainxy ,gddxy ,cropcat ,pgsxy & @@ -892,7 +892,7 @@ SUBROUTINE surface_driver( & REAL, OPTIONAL, DIMENSION(ims:ime ,-2:0, jms:jme), INTENT(INOUT) :: TSNOXY, SNICEXY, SNLIQXY REAL, OPTIONAL, DIMENSION(ims:ime , jms:jme), INTENT(INOUT) :: & TVXY, TGXY,CANICEXY,CANLIQXY, EAHXY, TAHXY, CMXY, CHXY, FWETXY,SNEQVOXY,ALBOLDXY, & - QSNOWXY,WSLAKEXY, ZWTXY, WAXY, WTXY,LFMASSXY,RTMASSXY,STMASSXY, WOODXY,STBLCPXY,FASTCPXY, & + QSNOWXY, QRAINXY, WSLAKEXY,ZWTXY, WAXY, WTXY,LFMASSXY,RTMASSXY,STMASSXY, WOODXY,STBLCPXY,FASTCPXY, & GRAINXY, GDDXY, & XSAIXY, TAUSSXY, T2MVXY, T2MBXY, Q2MVXY, Q2MBXY, TRADXY, NEEXY, GPPXY, & NPPXY, FVEGXY, RUNSFXY, RUNSBXY, ECANXY, EDIRXY, ETRANXY, FSAXY, FIRAXY, APARXY, PSNXY, & @@ -3096,7 +3096,7 @@ SUBROUTINE surface_driver( & Z0, ZNT, & ! IN/OUT LSM eqv ISNOWXY, TVXY, TGXY, CANICEXY, CANLIQXY, EAHXY, & TAHXY, CMXY, CHXY, FWETXY, SNEQVOXY, ALBOLDXY, & - QSNOWXY, WSLAKEXY, ZWTXY, WAXY, WTXY, TSNOXY, & + QSNOWXY, QRAINXY, WSLAKEXY, ZWTXY,WAXY, WTXY, TSNOXY, & ZSNSOXY, SNICEXY, SNLIQXY, LFMASSXY, RTMASSXY, STMASSXY, & WOODXY, STBLCPXY, FASTCPXY, LAI, XSAIXY, TAUSSXY, & SMOISEQ, SMCWTDXY,DEEPRECHXY, RECHXY, GRAINXY, GDDXY,PGSXY, & ! IN/OUT Noah MP only diff --git a/run/MPTABLE.TBL b/run/MPTABLE.TBL index be26e9b248..0c2f7f32f2 100644 --- a/run/MPTABLE.TBL +++ b/run/MPTABLE.TBL @@ -53,7 +53,11 @@ HVB = 1.00, 0.10, 0.10, 0.10, 0.10, 0.15, 0.05, 0.10, 0.10, 0.10, 11.5, 7.00, 8.00, 8.50, 10.0, 0.00, 0.05, 0.10, 0.00, 0.10, 0.10, 0.10, 0.10, 0.00, 0.10, 0.00, 0.00, DEN = 0.01, 25.0, 25.0, 25.0, 25.0, 25.0, 100., 10.0, 10.0, 0.02, 0.10, 0.28, 0.02, 0.28, 0.10, 0.01, 10.0, 0.10, 0.01, 1.00, 1.00, 1.00, 1.00, 0.00, 0.01, 0.01, 0.01, RC = 1.00, 0.08, 0.08, 0.08, 0.08, 0.08, 0.03, 0.12, 0.12, 3.00, 1.40, 1.20, 3.60, 1.20, 1.40, 0.01, 0.10, 1.40, 0.01, 0.30, 0.30, 0.30, 0.30, 0.00, 0.01, 0.01, 0.01, - MFSNO = 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, +!MFSNO = 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, +! C. He 12/17/2020: optimized MFSNO values dependent on land type based on evaluation with SNOTEL SWE and MODIS SCF, surface albedo + MFSNO = 4.00, 3.00, 3.00, 3.00, 4.00, 4.00, 2.00, 2.00, 2.00, 2.00, 1.00, 1.00, 1.00, 1.00, 1.00, 3.00, 3.00, 3.00, 3.00, 3.50, 3.50, 3.50, 3.50, 2.50, 3.50, 3.50, 3.50, +! C. He 12/17/2020: optimized snow cover factor (m) in SCF formulation to replace original constant 2.5*z0,z0=0.002m, based on evaluation with SNOTEL SWE and MODIS SCF, surface albedo + SCFFAC= 0.021, 0.007, 0.007, 0.007, 0.013, 0.013, 0.010, 0.009, 0.008, 0.010, 0.005, 0.005, 0.005, 0.005, 0.005, 0.015, 0.010, 0.010, 0.008, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, ! Row 1: Vis ! Row 2: Near IR @@ -76,8 +80,8 @@ TAUS_NIR=0.00, 0.380, 0.380, 0.380, 0.380, 0.380, 0.380, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.000, 0.380, 0.001, 0.000, 0.380, 0.001, 0.001, 0.001, 0.000, 0.001, 0.000, 0.000, XL = 0.000, -0.30, -0.30, -0.30, -0.30, -0.30, -0.30, 0.010, 0.250, 0.010, 0.250, 0.010, 0.010, 0.010, 0.250, 0.000, -0.30, 0.250, 0.000, -0.30, 0.250, 0.250, 0.250, 0.000, 0.250, 0.000, 0.000, -! CWPVT = 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, - CWPVT = 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, + ! make CWPVT vegetation dependent according to J. Goudriaan, Crop Micrometeorology: A Simulation Study (Simulation monographs), 1977). C. He, 12/17/2020 + CWPVT = 0.18, 1.67, 1.67, 1.67, 1.67, 0.5, 5.0, 1.0, 2.0, 1.0, 0.67, 0.18, 0.67, 0.18, 0.29, 0.18, 1.67, 0.67, 0.18, 1.67, 0.67, 1.00, 0.18, 0.18, 0.18, 0.18, 0.18, C3PSN = 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, KC25 = 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, AKC = 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, @@ -197,7 +201,11 @@ HVB = 8.50, 8.00, 7.00, 11.5, 10.0, 0.10, 0.10, 0.10, 0.10, 0.05, 0.10, 0.10, 1.00, 0.10, 0.00, 0.00, 0.00, 0.30, 0.20, 0.10, DEN = 0.28, 0.02, 0.28, 0.10, 0.10, 10.0, 10.0, 10.0, 0.02, 100., 5.05, 25.0, 0.01, 25.0, 0.00, 0.01, 0.01, 1.00, 1.00, 1.00, RC = 1.20, 3.60, 1.20, 1.40, 1.40, 0.12, 0.12, 0.12, 3.00, 0.03, 0.75, 0.08, 1.00, 0.08, 0.00, 0.01, 0.01, 0.30, 0.30, 0.30, - MFSNO = 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, +!MFSNO = 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, 2.50, +! C. He 12/17/2020: optimized MFSNO values dependent on land type based on evaluation with SNOTEL SWE and MODIS SCF, surface albedo + MFSNO = 1.00, 1.00, 1.00, 1.00, 1.00, 2.00, 2.00, 2.00, 2.00, 2.00, 3.00, 3.00, 4.00, 4.00, 2.50, 3.00, 3.00, 3.50, 3.50, 3.50, +! C. He 12/17/2020: optimized snow cover factor (m) in SCF formulation to replace original constant 2.5*z0,z0=0.002m, based on evaluation with SNOTEL SWE and MODIS SCF, surface albedo + SCFFAC = 0.005, 0.005, 0.005, 0.005, 0.005, 0.008, 0.008, 0.010, 0.010, 0.010, 0.010, 0.007, 0.021, 0.013, 0.015, 0.008, 0.015, 0.015, 0.015, 0.015, ! Row 1: Vis ! Row 2: Near IR @@ -220,8 +228,8 @@ TAUS_NIR=0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.380, 0.1905, 0.380, 0.000, 0.380, 0.000, 0.000, 0.000, 0.001, 0.001, 0.001, XL = 0.010, 0.010, 0.010, 0.250, 0.250, 0.010, 0.010, 0.010, 0.010, -0.30, -0.025, -0.30, 0.000, -0.30, 0.000, 0.000, 0.000, 0.250, 0.250, 0.250, -! CWPVT = 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, - CWPVT = 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, 0.18, +! make CWPVT vegetation dependent according to J. Goudriaan, Crop Micrometeorology: A Simulation Study (Simulation monographs), 1977). C. He, 12/17/2020 + CWPVT = 0.18, 0.67, 0.18, 0.67, 0.29, 1.0, 2.0, 1.3, 1.0, 5.0, 1.17, 1.67, 1.67, 1.67, 0.18, 0.18, 0.18, 0.67, 1.0, 0.18, C3PSN = 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, KC25 = 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, AKC = 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, @@ -327,6 +335,8 @@ Z0SNO = 0.002 !snow surface roughness length (m) (0.002) SSI = 0.03 !liquid water holding capacity for snowpack (m3/m3) (0.03) + SNOW_RET_FAC = 5.e-5 !snowpack water release timescale factor (1/s) + SNOW_EMIS = 0.95 !snow emissivity (bring from hard-coded value of 1.0 to here) SWEMX = 1.00 !new snow mass to fully cover old snow (mm) !equivalent to 10mm depth (density = 100 kg/m3) TAU0 = 1.e6 !tau0 from Yang97 eqn. 10a diff --git a/wrftladj/module_physics_init_ad.F b/wrftladj/module_physics_init_ad.F index efe5a82159..a8920f6df6 100644 --- a/wrftladj/module_physics_init_ad.F +++ b/wrftladj/module_physics_init_ad.F @@ -65,7 +65,7 @@ SUBROUTINE A_PHY_INIT(id, config_flags, dt, restart, zfull, zhalf, & & , rthndgdten, rphndgdten, rqvndgdten, rmundgdten, fgdt, stepfg, & & cugd_tten, cugd_ttens, cugd_qvten, cugd_qvtens, cugd_qcten, isnowxy& & , zsnsoxy, tsnoxy, snicexy, snliqxy, tvxy, tgxy, canicexy, canliqxy& -& , eahxy, tahxy, cmxy, chxy, fwetxy, sneqvoxy, alboldxy, qsnowxy, & +& , eahxy, tahxy, cmxy, chxy, fwetxy, sneqvoxy, alboldxy, qsnowxy, qrainxy,& & wslakexy, zwtxy, waxy, wtxy, lfmassxy, rtmassxy, stmassxy, woodxy, & & stblcpxy, fastcpxy, xsaixy, t2mvxy, t2mbxy, chstarxy, dzr, dzb, dzg& & , tr_urb2d, tb_urb2d, tg_urb2d, tc_urb2d, qc_urb2d, xxxr_urb2d, & @@ -208,6 +208,7 @@ SUBROUTINE A_PHY_INIT(id, config_flags, dt, restart, zfull, zhalf, & REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: sneqvoxy REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: alboldxy REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: qsnowxy + REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: qrainxy REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: wslakexy REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: zwtxy REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: waxy @@ -493,7 +494,7 @@ SUBROUTINE A_PHY_INIT(id, config_flags, dt, restart, zfull, zhalf, & & xland, xice, sfcevp, grdflx, TRIM(mminlu_loc), isnowxy, & & zsnsoxy, tsnoxy, snicexy, snliqxy, tvxy, tgxy, canicexy, & & canliqxy, eahxy, tahxy, cmxy, chxy, fwetxy, sneqvoxy, & -& alboldxy, qsnowxy, wslakexy, zwtxy, waxy, wtxy, lfmassxy, & +& alboldxy, qsnowxy, qrainxy, wslakexy, zwtxy, waxy, wtxy, lfmassxy,& & rtmassxy, stmassxy, woodxy, stblcpxy, fastcpxy, xsaixy, & & t2mvxy, t2mbxy, chstarxy, allowed_to_read, & & start_of_simulation, te_temf, cf3d_temf, wm_temf, dzr, dzb& @@ -559,7 +560,7 @@ SUBROUTINE BL_INIT_B(stepbl, bldt, dt, rublten, rubltenb, rvblten, & & mavail, snowh, sh2o, snoalb, fndsoilw, fndsnowh, rdmaxalb, znt, & & xland, xice, sfcevp, grdflx, mminlu, isnowxy, zsnsoxy, tsnoxy, & & snicexy, snliqxy, tvxy, tgxy, canicexy, canliqxy, eahxy, tahxy, cmxy& -& , chxy, fwetxy, sneqvoxy, alboldxy, qsnowxy, wslakexy, zwtxy, waxy, & +& , chxy, fwetxy, sneqvoxy, alboldxy, qsnowxy, qrainxy, wslakexy, zwtxy, waxy,& & wtxy, lfmassxy, rtmassxy, stmassxy, woodxy, stblcpxy, fastcpxy, & & xsaixy, t2mvxy, t2mbxy, chstarxy, allowed_to_read, & & start_of_simulation, te_temf, cf3d_temf, wm_temf, dzr, dzb, dzg, & @@ -644,6 +645,7 @@ SUBROUTINE BL_INIT_B(stepbl, bldt, dt, rublten, rubltenb, rvblten, & REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: sneqvoxy REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: alboldxy REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: qsnowxy + REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: qrainxy REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: wslakexy REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: zwtxy REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: waxy diff --git a/wrftladj/module_physics_init_tl.F b/wrftladj/module_physics_init_tl.F index 35199ba51a..1ff4edd5db 100644 --- a/wrftladj/module_physics_init_tl.F +++ b/wrftladj/module_physics_init_tl.F @@ -68,7 +68,7 @@ SUBROUTINE G_PHY_INIT(id, config_flags, dt, restart, zfull, zhalf, & & , rthndgdten, rphndgdten, rqvndgdten, rmundgdten, fgdt, stepfg, & & cugd_tten, cugd_ttens, cugd_qvten, cugd_qvtens, cugd_qcten, isnowxy& & , zsnsoxy, tsnoxy, snicexy, snliqxy, tvxy, tgxy, canicexy, canliqxy& -& , eahxy, tahxy, cmxy, chxy, fwetxy, sneqvoxy, alboldxy, qsnowxy, & +& , eahxy, tahxy, cmxy, chxy, fwetxy, sneqvoxy, alboldxy, qsnowxy, qrainxy,& & wslakexy, zwtxy, waxy, wtxy, lfmassxy, rtmassxy, stmassxy, woodxy, & & stblcpxy, fastcpxy, xsaixy, t2mvxy, t2mbxy, chstarxy, dzr, dzb, dzg& & , tr_urb2d, tb_urb2d, tg_urb2d, tc_urb2d, qc_urb2d, xxxr_urb2d, & @@ -211,6 +211,7 @@ SUBROUTINE G_PHY_INIT(id, config_flags, dt, restart, zfull, zhalf, & REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: sneqvoxy REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: alboldxy REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: qsnowxy + REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: qrainxy REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: wslakexy REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: zwtxy REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: waxy @@ -640,7 +641,7 @@ SUBROUTINE G_PHY_INIT(id, config_flags, dt, restart, zfull, zhalf, & & rdmaxalb, znt, xland, xice, sfcevp, grdflx, TRIM(mminlu_loc& & ), isnowxy, zsnsoxy, tsnoxy, snicexy, snliqxy, tvxy, tgxy, & & canicexy, canliqxy, eahxy, tahxy, cmxy, chxy, fwetxy, & -& sneqvoxy, alboldxy, qsnowxy, wslakexy, zwtxy, waxy, wtxy, & +& sneqvoxy, alboldxy, qsnowxy, qrainxy, wslakexy, zwtxy, waxy, wtxy, & & lfmassxy, rtmassxy, stmassxy, woodxy, stblcpxy, fastcpxy, & & xsaixy, t2mvxy, t2mbxy, chstarxy, allowed_to_read, & & start_of_simulation, te_temf, cf3d_temf, wm_temf, dzr, dzb& @@ -724,7 +725,7 @@ SUBROUTINE BL_INIT_D(stepbl, bldt, dt, rublten, rubltend, rvblten, & & , smfr3d, mavail, snowh, sh2o, snoalb, fndsoilw, fndsnowh, rdmaxalb& & , znt, xland, xice, sfcevp, grdflx, mminlu, isnowxy, zsnsoxy, tsnoxy& & , snicexy, snliqxy, tvxy, tgxy, canicexy, canliqxy, eahxy, tahxy, & -& cmxy, chxy, fwetxy, sneqvoxy, alboldxy, qsnowxy, wslakexy, zwtxy, & +& cmxy, chxy, fwetxy, sneqvoxy, alboldxy, qsnowxy, qrainxy, wslakexy, zwtxy,& & waxy, wtxy, lfmassxy, rtmassxy, stmassxy, woodxy, stblcpxy, fastcpxy& & , xsaixy, t2mvxy, t2mbxy, chstarxy, allowed_to_read, & & start_of_simulation, te_temf, cf3d_temf, wm_temf, dzr, dzb, dzg, & @@ -810,6 +811,7 @@ SUBROUTINE BL_INIT_D(stepbl, bldt, dt, rublten, rubltend, rvblten, & REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: sneqvoxy REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: alboldxy REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: qsnowxy + REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: qrainxy REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: wslakexy REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: zwtxy REAL, DIMENSION(ims:ime, jms:jme), OPTIONAL :: waxy diff --git a/wrftladj/start_em_ad.F b/wrftladj/start_em_ad.F index e0287142d0..c492b5a64e 100644 --- a/wrftladj/start_em_ad.F +++ b/wrftladj/start_em_ad.F @@ -591,7 +591,7 @@ SUBROUTINE a_start_domain_em ( grid, allowed_to_read & grid%ISNOWXY, grid%ZSNSOXY, grid%TSNOXY, & ! Optional Noah-MP grid%SNICEXY, grid%SNLIQXY, grid%TVXY, grid%TGXY, grid%CANICEXY, & ! Optional Noah-MP grid%CANLIQXY, grid%EAHXY, grid%TAHXY, grid%CMXY, & ! Optional Noah-MP - grid%CHXY, grid%FWETXY, grid%SNEQVOXY, grid%ALBOLDXY, grid%QSNOWXY, & ! Optional Noah-MP + grid%CHXY, grid%FWETXY, grid%SNEQVOXY,grid%ALBOLDXY,grid%QSNOWXY,grid%QRAINXY, & ! Optional Noah-MP grid%WSLAKEXY, grid%ZWTXY, grid%WAXY, grid%WTXY, grid%LFMASSXY, grid%RTMASSXY, & ! Optional Noah-MP grid%STMASSXY, grid%WOODXY, grid%STBLCPXY, grid%FASTCPXY, & ! Optional Noah-MP grid%XSAIXY, & ! Optional Noah-MP diff --git a/wrftladj/start_em_tl.F b/wrftladj/start_em_tl.F index 6f2ce0d3ba..817f37fac9 100644 --- a/wrftladj/start_em_tl.F +++ b/wrftladj/start_em_tl.F @@ -463,7 +463,7 @@ SUBROUTINE g_start_domain_em ( grid, allowed_to_read & grid%ISNOWXY, grid%ZSNSOXY, grid%TSNOXY, & ! Optional Noah-MP grid%SNICEXY, grid%SNLIQXY, grid%TVXY, grid%TGXY, grid%CANICEXY, & ! Optional Noah-MP grid%CANLIQXY, grid%EAHXY, grid%TAHXY, grid%CMXY, & ! Optional Noah-MP - grid%CHXY, grid%FWETXY, grid%SNEQVOXY, grid%ALBOLDXY, grid%QSNOWXY, & ! Optional Noah-MP + grid%CHXY, grid%FWETXY, grid%SNEQVOXY,grid%ALBOLDXY,grid%QSNOWXY,grid%QRAINXY, & ! Optional Noah-MP grid%WSLAKEXY, grid%ZWTXY, grid%WAXY, grid%WTXY, grid%LFMASSXY, grid%RTMASSXY, & ! Optional Noah-MP grid%STMASSXY, grid%WOODXY, grid%STBLCPXY, grid%FASTCPXY, & ! Optional Noah-MP grid%XSAIXY, & ! Optional Noah-MP