Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added the capability to use climatological LAI in RUC LSM #356

Merged
merged 2 commits into from
Nov 21, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions physics/module_sf_ruclsm.F90
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ SUBROUTINE LSMRUC( &
Z3D,P8W,T3D,QV3D,QC3D,RHO3D, &
GLW,GSW,EMISS,CHKLOWQ, CHS, &
FLQC,FLHC,MAVAIL,CANWAT,VEGFRA,ALB,ZNT, &
Z0,SNOALB,ALBBCK, & !Z0,SNOALB,ALBBCK,LAI, &
Z0,SNOALB,ALBBCK,LAI, &
landusef, nlcat, & ! mosaic_lu, mosaic_soil, &
soilctop, nscat, &
QSFC,QSG,QVG,QCG,DEW,SOILT1,TSNAV, &
Expand Down Expand Up @@ -218,6 +218,7 @@ SUBROUTINE LSMRUC( &
CANWAT, & ! new
SNOALB, &
ALB, &
LAI, &
EMISS, &
MAVAIL, &
SFCEXC, &
Expand Down Expand Up @@ -269,7 +270,6 @@ SUBROUTINE LSMRUC( &
PC, &
SFCRUNOFF, &
UDRUNOFF, &
LAI, &
EMISSL, &
ZNTL, &
LMAVAIL, &
Expand Down
23 changes: 15 additions & 8 deletions physics/sfc_drv_ruc.F90
Original file line number Diff line number Diff line change
Expand Up @@ -139,11 +139,11 @@ end subroutine lsm_ruc_finalize
! DH* TODO - make order of arguments the same as in the metadata table
subroutine lsm_ruc_run & ! inputs
& ( iter, me, master, kdt, im, nlev, lsoil_ruc, lsoil, zs, &
& u1, v1, t1, q1, qc, soiltyp, vegtype, sigmaf, &
& u1, v1, t1, q1, qc, soiltyp, vegtype, sigmaf, laixy, &
& sfcemis, dlwflx, dswsfc, snet, delt, tg3, cm, ch, &
& prsl1, zf, ddvel, shdmin, shdmax, alvwf, alnwf, &
& snoalb, sfalb, flag_iter, flag_guess, isot, ivegsrc, fice, &
& smc, stc, slc, lsm_ruc, lsm, land, islimsk, &
& smc, stc, slc, lsm_ruc, lsm, land, islimsk, rdlai, &
& imp_physics, imp_physics_gfdl, imp_physics_thompson, &
& smcwlt2, smcref2, wspd, do_mynnsfclay, &
& con_cp, con_rv, con_rd, con_g, con_pi, con_hvap, con_fvirt,& ! constants
Expand Down Expand Up @@ -178,6 +178,8 @@ subroutine lsm_ruc_run & ! inputs
& ch, prsl1, ddvel, shdmin, shdmax, &
& snoalb, alvwf, alnwf, zf, qc, q1, wspd

real (kind=kind_phys), dimension(:), intent(in) :: laixy

real (kind=kind_phys), intent(in) :: delt
real (kind=kind_phys), intent(in) :: con_cp, con_rv, con_g, &
con_pi, con_rd, &
Expand All @@ -187,6 +189,8 @@ subroutine lsm_ruc_run & ! inputs
integer, dimension(im), intent(in) :: islimsk ! sea/land/ice mask (=0/1/2)
logical, intent(in) :: do_mynnsfclay

logical, intent(in) :: rdlai

! --- in/out:
integer, dimension(im), intent(inout) :: soiltyp, vegtype
real (kind=kind_phys), dimension(lsoil_ruc) :: dzs
Expand Down Expand Up @@ -317,6 +321,8 @@ subroutine lsm_ruc_run & ! inputs
zs, sh2o, smfrkeep, tslb, smois, wetness, & ! out
me, master, errmsg, errflg)

xlai = 0.

endif ! flag_init=.true.,iter=1
!-- end of initialization

Expand Down Expand Up @@ -516,10 +522,10 @@ subroutine lsm_ruc_run & ! inputs
ffrozp(i,j) = real(nint(srflag(i)),kind_phys)
endif

!tgs - for now set rdlai2d to .false., WRF has LAI maps, and RUC LSM
! uses rdlai2d = .true.
rdlai2d = .false.
!if( .not. rdlai2d) xlai = lai_data(vtype)
!tgs - rdlai is .false. when the LAI data is not available in the
! - INPUT/sfc_data.nc

rdlai2d = rdlai

conflx2(i,1,j) = zf(i) * 2. ! factor 2. is needed to get the height of
! atm. forcing inside RUC LSM (inherited
Expand Down Expand Up @@ -611,6 +617,8 @@ subroutine lsm_ruc_run & ! inputs
albbck(i,j) = max(0.01, 0.5 * (alvwf(i) + alnwf(i)))
alb(i,j) = sfalb(i)

if(rdlai2d) xlai(i,j) = laixy(i)

tbot(i,j) = tg3(i)

!> - 4. history (state) variables (h):
Expand Down Expand Up @@ -806,8 +814,7 @@ subroutine lsm_ruc_run & ! inputs
& chs(i,j), flqc(i,j), flhc(i,j), &
! --- input/outputs:
& wet(i,j), cmc(i,j), shdfac(i,j), alb(i,j), znt(i,j), &
& z0(i,j), snoalb1d(i,j), albbck(i,j), &
! & z0, snoalb1d, alb, xlai, &
& z0(i,j), snoalb1d(i,j), albbck(i,j), xlai(i,j), &
& landusef(i,:,j), nlcat, &
! --- mosaic_lu and mosaic_soil are moved to the namelist
! & mosaic_lu, mosaic_soil, &
Expand Down
14 changes: 14 additions & 0 deletions physics/sfc_drv_ruc.meta
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,12 @@
type = integer
intent = in
optional = F
[rdlai]
standard_name = flag_for_reading_leaf_area_index_from_input
long_name = flag for reading leaf area index from initial conditions for RUC LSM
units = flag
dimensions = ()
type = logical
[zs]
standard_name = depth_of_soil_levels_for_land_surface_model
long_name = depth of soil levels for land surface model
Expand Down Expand Up @@ -556,6 +562,14 @@
kind = kind_phys
intent = in
optional = F
[laixy]
standard_name = leaf_area_index
long_name = leaf area index
units = none
dimensions = (horizontal_dimension)
type = real
kind = kind_phys
optional = F
[sfalb]
standard_name = surface_diffused_shortwave_albedo
long_name = mean surface diffused sw albedo
Expand Down