Skip to content

Commit a1e2d76

Browse files
authored
add variable TSK_RURAL for BEP/BEM runs with Noah to prevent possible model failure when aggregated TSK is disaggregated (#538)
TYPE: bug fix KEYWORDS: Noah LSM, urban models SOURCE: Alberto Martilli (CIEMAT, Spain), Michael Barlage, Wei Wang (NCAR) DESCRIPTION OF CHANGES: Add variable TSK_RURAL for BEP/BEM runs with Noah to prevent possible model failure when aggregated TSK is disaggregated. When running BEP or BEM urban models with the Noah LSM, TSK as it exits module_sf_noahdrv is the combined urban/rural skin temperature. During the next timestep, this TSK is disaggregated to a "rural" TSK, which is then used by Noah. The disaggregation is not consistent since it does not use urban/rural emissivities. Beyond this inconsistency, Martilli reported the disaggregation procedure can also produce negative fourth-roots in rare cases with an eventual NaN crash. Fix: introduce a TSK_RURAL that will be used by BEP and BEM to save this rural TSK between timesteps and avoid disaggregation. LIST OF MODIFIED FILES: M Registry/Registry.EM_COMMON M Registry/Registry.EM_COMMON.tladj M dyn_em/module_first_rk_step_part1.F M phys/module_sf_noahdrv.F M phys/module_surface_driver.F TESTS CONDUCTED: - Noah-only (no urban) simulations are unchanged - Noah with BEP results for HFX and TSK are shown below.
1 parent c46c890 commit a1e2d76

File tree

5 files changed

+29
-23
lines changed

5 files changed

+29
-23
lines changed

Diff for: Registry/Registry.EM_COMMON

+3-2
Original file line numberDiff line numberDiff line change
@@ -802,6 +802,7 @@ state real dfi_SMFR3D ilj misc 1 Z r "SMFR3D_df
802802
state real dfi_KEEPFR3DFLAG ilj misc 1 Z r "KEEPFR3DFLAG_dfi" "FLAG - 1. FROZEN SOIL YES, 0 - NO" ""
803803

804804
# urban state variables
805+
state real TSK_RURAL ij misc 1 - rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "TSK_RURAL" "TSK for rural fraction" "K"
805806
state real TR_URB2D ij misc 1 - rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "TR_URB" "URBAN ROOF SKIN TEMPERATURE" "K"
806807
state real TGR_URB2D ij misc 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "TGR_URB" "URBAN GREEN ROOF SKIN TEMPERATURE" "K"
807808
state real TB_URB2D ij misc 1 - rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "TB_URB" "URBAN WALL SKIN TEMPERATURE" "K"
@@ -2715,8 +2716,8 @@ package idealscmsfcscheme sf_sfclay_physics==89 - -
27152716
package sfclayscheme sf_sfclay_physics==91 - -
27162717

27172718
package noahucmscheme sf_urban_physics==1 - state:trb_urb4d,tw1_urb4d,tw2_urb4d,tgb_urb4d,sfw1_urb3d,sfw2_urb3d,sfr_urb3d,sfg_urb3d,a_u_bep,a_v_bep,a_t_bep,a_q_bep,a_e_bep,b_u_bep,b_v_bep,b_t_bep,b_q_bep,b_e_bep,dlg_bep,dl_u_bep,sf_bep,vl_bep,mh_urb2d,stdh_urb2d,lf_urb2d,lp_urb2d,hgt_urb2d,lb_urb2d,tgr_urb2d,cmcr_urb2d,drelr_urb2d,drelb_urb2d,drelg_urb2d,flxhumr_urb2d,flxhumb_urb2d,flxhumg_urb2d,tgrl_urb3d,smr_urb3d,cmgr_sfcdif,chgr_sfcdif,trl_urb3d,tgl_urb3d,tbl_urb3d
2718-
package bepscheme sf_urban_physics==2 - state:a_u_bep,a_v_bep,a_t_bep,a_q_bep,a_e_bep,b_u_bep,b_v_bep,b_t_bep,b_q_bep,b_e_bep,dlg_bep,dl_u_bep,sf_bep,vl_bep,trb_urb4d,tw1_urb4d,tw2_urb4d,tgb_urb4d,sfw1_urb3d,sfw2_urb3d,sfr_urb3d,sfg_urb3d,hi_urb2d,lp_urb2d,hgt_urb2d,lb_urb2d,trl_urb3d,tgl_urb3d,tbl_urb3d
2719-
package bep_bemscheme sf_urban_physics==3 - state:a_u_bep,a_v_bep,a_t_bep,a_q_bep,a_e_bep,b_u_bep,b_v_bep,b_t_bep,b_q_bep,b_e_bep,dlg_bep,dl_u_bep,sf_bep,vl_bep,trb_urb4d,tw1_urb4d,tw2_urb4d,tgb_urb4d,tlev_urb3d,qlev_urb3d,tw1lev_urb3d,tw2lev_urb3d,tglev_urb3d,tflev_urb3d,sf_ac_urb3d,lf_ac_urb3d,cm_ac_urb3d,sfvent_urb3d,lfvent_urb3d,sfwin1_urb3d,sfwin2_urb3d,sfw1_urb3d,sfw2_urb3d,sfr_urb3d,sfg_urb3d,hi_urb2d,lp_urb2d,hgt_urb2d,lb_urb2d,trl_urb3d,tgl_urb3d,tbl_urb3d
2719+
package bepscheme sf_urban_physics==2 - state:a_u_bep,a_v_bep,a_t_bep,a_q_bep,a_e_bep,b_u_bep,b_v_bep,b_t_bep,b_q_bep,b_e_bep,dlg_bep,dl_u_bep,sf_bep,vl_bep,trb_urb4d,tw1_urb4d,tw2_urb4d,tgb_urb4d,sfw1_urb3d,sfw2_urb3d,sfr_urb3d,sfg_urb3d,hi_urb2d,lp_urb2d,hgt_urb2d,lb_urb2d,trl_urb3d,tgl_urb3d,tbl_urb3d,tsk_rural
2720+
package bep_bemscheme sf_urban_physics==3 - state:a_u_bep,a_v_bep,a_t_bep,a_q_bep,a_e_bep,b_u_bep,b_v_bep,b_t_bep,b_q_bep,b_e_bep,dlg_bep,dl_u_bep,sf_bep,vl_bep,trb_urb4d,tw1_urb4d,tw2_urb4d,tgb_urb4d,tlev_urb3d,qlev_urb3d,tw1lev_urb3d,tw2lev_urb3d,tglev_urb3d,tflev_urb3d,sf_ac_urb3d,lf_ac_urb3d,cm_ac_urb3d,sfvent_urb3d,lfvent_urb3d,sfwin1_urb3d,sfwin2_urb3d,sfw1_urb3d,sfw2_urb3d,sfr_urb3d,sfg_urb3d,hi_urb2d,lp_urb2d,hgt_urb2d,lb_urb2d,trl_urb3d,tgl_urb3d,tbl_urb3d,tsk_rural
27202721

27212722
package slabscheme sf_surface_physics==1 - -
27222723
package lsmscheme sf_surface_physics==2 - state:flx4,fvb,fbur,fgsn,smcrel,xlaidyn

Diff for: Registry/Registry.EM_COMMON.tladj

+3-2
Original file line numberDiff line numberDiff line change
@@ -802,6 +802,7 @@ state real dfi_SMFR3D ilj misc 1 Z r "SMFR3D_df
802802
state real dfi_KEEPFR3DFLAG ilj misc 1 Z r "KEEPFR3DFLAG_dfi" "FLAG - 1. FROZEN SOIL YES, 0 - NO" ""
803803

804804
# urban state variables
805+
state real TSK_RURAL ij misc 1 - rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "TSK_RURAL" "TSK for rural fraction" "K"
805806
state real TR_URB2D ij misc 1 - rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "TR_URB" "URBAN ROOF SKIN TEMPERATURE" "K"
806807
state real TGR_URB2D ij misc 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "TGR_URB" "URBAN GREEN ROOF SKIN TEMPERATURE" "K"
807808
state real TB_URB2D ij misc 1 - rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "TB_URB" "URBAN WALL SKIN TEMPERATURE" "K"
@@ -2715,8 +2716,8 @@ package idealscmsfcscheme sf_sfclay_physics==89 - -
27152716
package sfclayscheme sf_sfclay_physics==91 - -
27162717

27172718
package noahucmscheme sf_urban_physics==1 - state:trb_urb4d,tw1_urb4d,tw2_urb4d,tgb_urb4d,sfw1_urb3d,sfw2_urb3d,sfr_urb3d,sfg_urb3d,a_u_bep,a_v_bep,a_t_bep,a_q_bep,a_e_bep,b_u_bep,b_v_bep,b_t_bep,b_q_bep,b_e_bep,dlg_bep,dl_u_bep,sf_bep,vl_bep,mh_urb2d,stdh_urb2d,lf_urb2d,lp_urb2d,hgt_urb2d,lb_urb2d,tgr_urb2d,cmcr_urb2d,drelr_urb2d,drelb_urb2d,drelg_urb2d,flxhumr_urb2d,flxhumb_urb2d,flxhumg_urb2d,tgrl_urb3d,smr_urb3d,cmgr_sfcdif,chgr_sfcdif,trl_urb3d,tgl_urb3d,tbl_urb3d
2718-
package bepscheme sf_urban_physics==2 - state:a_u_bep,a_v_bep,a_t_bep,a_q_bep,a_e_bep,b_u_bep,b_v_bep,b_t_bep,b_q_bep,b_e_bep,dlg_bep,dl_u_bep,sf_bep,vl_bep,trb_urb4d,tw1_urb4d,tw2_urb4d,tgb_urb4d,sfw1_urb3d,sfw2_urb3d,sfr_urb3d,sfg_urb3d,hi_urb2d,lp_urb2d,hgt_urb2d,lb_urb2d,trl_urb3d,tgl_urb3d,tbl_urb3d
2719-
package bep_bemscheme sf_urban_physics==3 - state:a_u_bep,a_v_bep,a_t_bep,a_q_bep,a_e_bep,b_u_bep,b_v_bep,b_t_bep,b_q_bep,b_e_bep,dlg_bep,dl_u_bep,sf_bep,vl_bep,trb_urb4d,tw1_urb4d,tw2_urb4d,tgb_urb4d,tlev_urb3d,qlev_urb3d,tw1lev_urb3d,tw2lev_urb3d,tglev_urb3d,tflev_urb3d,sf_ac_urb3d,lf_ac_urb3d,cm_ac_urb3d,sfvent_urb3d,lfvent_urb3d,sfwin1_urb3d,sfwin2_urb3d,sfw1_urb3d,sfw2_urb3d,sfr_urb3d,sfg_urb3d,hi_urb2d,lp_urb2d,hgt_urb2d,lb_urb2d,trl_urb3d,tgl_urb3d,tbl_urb3d
2719+
package bepscheme sf_urban_physics==2 - state:a_u_bep,a_v_bep,a_t_bep,a_q_bep,a_e_bep,b_u_bep,b_v_bep,b_t_bep,b_q_bep,b_e_bep,dlg_bep,dl_u_bep,sf_bep,vl_bep,trb_urb4d,tw1_urb4d,tw2_urb4d,tgb_urb4d,sfw1_urb3d,sfw2_urb3d,sfr_urb3d,sfg_urb3d,hi_urb2d,lp_urb2d,hgt_urb2d,lb_urb2d,trl_urb3d,tgl_urb3d,tbl_urb3d,tsk_rural
2720+
package bep_bemscheme sf_urban_physics==3 - state:a_u_bep,a_v_bep,a_t_bep,a_q_bep,a_e_bep,b_u_bep,b_v_bep,b_t_bep,b_q_bep,b_e_bep,dlg_bep,dl_u_bep,sf_bep,vl_bep,trb_urb4d,tw1_urb4d,tw2_urb4d,tgb_urb4d,tlev_urb3d,qlev_urb3d,tw1lev_urb3d,tw2lev_urb3d,tglev_urb3d,tflev_urb3d,sf_ac_urb3d,lf_ac_urb3d,cm_ac_urb3d,sfvent_urb3d,lfvent_urb3d,sfwin1_urb3d,sfwin2_urb3d,sfw1_urb3d,sfw2_urb3d,sfr_urb3d,sfg_urb3d,hi_urb2d,lp_urb2d,hgt_urb2d,lb_urb2d,trl_urb3d,tgl_urb3d,tbl_urb3d,tsk_rural
27202721

27212722
package slabscheme sf_surface_physics==1 - -
27222723
package lsmscheme sf_surface_physics==2 - state:flx4,fvb,fbur,fgsn,smcrel,xlaidyn

Diff for: dyn_em/module_first_rk_step_part1.F

+1
Original file line numberDiff line numberDiff line change
@@ -629,6 +629,7 @@ SUBROUTINE first_rk_step_part1 ( grid , config_flags &
629629
& ,SF_URBAN_PHYSICS=config_flags%sf_urban_physics &
630630
& ,NUM_URBAN_LAYERS=config_flags%num_urban_layers & !multi-layer urban
631631
& ,NUM_URBAN_HI=config_flags%num_urban_hi & !multi-layer urban
632+
& ,TSK_RURAL=grid%tsk_rural & !multi-layer urban
632633
& ,TRB_URB4D=grid%trb_urb4d,TW1_URB4D=grid%tw1_urb4d & !multi-layer urban
633634
& ,TW2_URB4D=grid%tw2_urb4d,TGB_URB4D=grid%tgb_urb4d & !multi-layer urban
634635
& ,TLEV_URB3D=grid%tlev_urb3d & !multi-layer urban

Diff for: phys/module_sf_noahdrv.F

+18-19
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ SUBROUTINE lsm(DZ8W,QV3D,P8W3D,T3D,TSK, &
7777
FRC_URB2D,UTYPE_URB2D, & !O
7878
num_urban_layers, & !I multi-layer urban
7979
num_urban_hi, & !I multi-layer urban
80+
tsk_rural_bep, & !H multi-layer urban
8081
trb_urb4d,tw1_urb4d,tw2_urb4d,tgb_urb4d, & !H multi-layer urban
8182
tlev_urb3d,qlev_urb3d, & !H multi-layer urban
8283
tw1lev_urb3d,tw2lev_urb3d, & !H multi-layer urban
@@ -569,6 +570,7 @@ SUBROUTINE lsm(DZ8W,QV3D,P8W3D,T3D,TSK, &
569570
REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(IN ) ::XLAT, XLONG
570571
INTEGER, INTENT(IN ) :: NUM_URBAN_LAYERS
571572
INTEGER, INTENT(IN ) :: NUM_URBAN_HI
573+
REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: tsk_rural_bep
572574
REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: trb_urb4d
573575
REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: tw1_urb4d
574576
REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: tw2_urb4d
@@ -625,7 +627,6 @@ SUBROUTINE lsm(DZ8W,QV3D,P8W3D,T3D,TSK, &
625627
REAL, DIMENSION(its:ite,jts:jte) ::RS_ABS_URB
626628
REAL, DIMENSION(its:ite,jts:jte) ::GRDFLX_URB
627629
REAL :: SIGMA_SB,RL_UP_RURAL,RL_UP_TOT,RS_ABS_TOT,UMOM,VMOM
628-
REAL :: r1,r2,r3
629630
REAL :: CMR_URB, CHR_URB, CMC_URB, CHC_URB, CMGR_URB, CHGR_URB
630631
REAL :: frc_urb,lb_urb
631632
REAL :: check
@@ -663,6 +664,8 @@ SUBROUTINE lsm(DZ8W,QV3D,P8W3D,T3D,TSK, &
663664
FGSN = 0.0 !BSINGH - Initialized to 0.0
664665
SOILW = 0.0 !BSINGH - Initialized to 0.0
665666

667+
sigma_sb=5.67e-08
668+
666669
! MEK MAY 2007
667670
FDTLIW=DT/ROWLIW
668671
! MEK JUL2007
@@ -896,12 +899,9 @@ SUBROUTINE lsm(DZ8W,QV3D,P8W3D,T3D,TSK, &
896899
EMISSI = 0.98 !for VEGTYP=5
897900
IF ( FRC_URB2D(I,J) < 0.99 ) THEN
898901
if(sf_urban_physics.eq.1)then
899-
T1= ( TSK(I,J) -FRC_URB2D(I,J) * TS_URB2D (I,J) )/ (1-FRC_URB2D(I,J))
902+
T1= ( TSK(I,J) -FRC_URB2D(I,J) * TS_URB2D (I,J) )/ (1-FRC_URB2D(I,J))
900903
elseif((sf_urban_physics.eq.2).OR.(sf_urban_physics.eq.3))then
901-
r1= (tsk(i,j)**4.)
902-
r2= frc_urb2d(i,j)*(ts_urb2d(i,j)**4.)
903-
r3= (1.-frc_urb2d(i,j))
904-
t1= ((r1-r2)/r3)**.25
904+
T1=tsk_rural_bep(i,j)
905905
endif
906906
ELSE
907907
T1 = TSK(I,J)
@@ -1148,6 +1148,9 @@ SUBROUTINE lsm(DZ8W,QV3D,P8W3D,T3D,TSK, &
11481148
!
11491149
TSK(I,J)=T1
11501150
TSK_RURAL(I,J)=T1
1151+
IF(SF_URBAN_PHYSICS == 2 .or. SF_URBAN_PHYSICS == 3) THEN
1152+
TSK_RURAL_BEP(I,J)=T1
1153+
END IF
11511154
HFX(I,J)=SHEAT
11521155
HFX_RURAL(I,J)=SHEAT
11531156
! MEk Jul07 add potential evap accum
@@ -1557,8 +1560,6 @@ SUBROUTINE lsm(DZ8W,QV3D,P8W3D,T3D,TSK, &
15571560
ENDIF
15581561
15591562
if((sf_urban_physics.eq.2).OR.(sf_urban_physics.eq.3))then !Bep begin
1560-
! fix the value of the Stefan-Boltzmann constant
1561-
sigma_sb=5.67e-08
15621563
do j=jts,jte
15631564
do i=its,ite
15641565
UMOM_URB(I,J)=0.
@@ -1606,7 +1607,7 @@ SUBROUTINE lsm(DZ8W,QV3D,P8W3D,T3D,TSK, &
16061607
! emiss(i,j)=(1.-frc_urb2d(i,j))*emiss_rural(i,j)+frc_urb2d(i,j)*emiss_urb(i,j)
16071608
! using the emissivity and the total longwave upward radiation estimate the averaged skin temperature
16081609
IF (FRC_URB2D(I,J).GT.0.) THEN
1609-
rl_up_rural=-emiss_rural(i,j)*sigma_sb*(tsk_rural(i,j)**4.)-(1.-emiss_rural(i,j))*glw(i,j)
1610+
rl_up_rural=-emiss_rural(i,j)*sigma_sb*(tsk_rural(i,j)**4.)-(1.-emissi)*glw(i,j)
16101611
rl_up_tot=(1.-frc_urb2d(i,j))*rl_up_rural+frc_urb2d(i,j)*rl_up_urb(i,j)
16111612
emiss(i,j)=(1.-frc_urb2d(i,j))*emiss_rural(i,j)+frc_urb2d(i,j)*emiss_urb(i,j)
16121613
ts_urb2d(i,j)=(max(0.,(-rl_up_urb(i,j)-(1.-emiss_urb(i,j))*glw(i,j))/emiss_urb(i,j)/sigma_sb))**0.25
@@ -2258,6 +2259,7 @@ SUBROUTINE lsm_mosaic(DZ8W,QV3D,P8W3D,T3D,TSK, &
22582259
FRC_URB2D,UTYPE_URB2D, & !O
22592260
num_urban_layers, & !I multi-layer urban
22602261
num_urban_hi, & !I multi-layer urban
2262+
tsk_rural_bep, & !H multi-layer urban
22612263
trb_urb4d,tw1_urb4d,tw2_urb4d,tgb_urb4d, & !H multi-layer urban
22622264
tlev_urb3d,qlev_urb3d, & !H multi-layer urban
22632265
tw1lev_urb3d,tw2lev_urb3d, & !H multi-layer urban
@@ -2748,6 +2750,7 @@ SUBROUTINE lsm_mosaic(DZ8W,QV3D,P8W3D,T3D,TSK, &
27482750
REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(IN ) ::XLAT, XLONG
27492751
INTEGER, INTENT(IN ) :: NUM_URBAN_LAYERS
27502752
INTEGER, INTENT(IN ) :: NUM_URBAN_HI
2753+
REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: tsk_rural_bep
27512754
REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: trb_urb4d
27522755
REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: tw1_urb4d
27532756
REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: tw2_urb4d
@@ -2804,7 +2807,6 @@ SUBROUTINE lsm_mosaic(DZ8W,QV3D,P8W3D,T3D,TSK, &
28042807
REAL, DIMENSION(its:ite,jts:jte) ::RS_ABS_URB
28052808
REAL, DIMENSION(its:ite,jts:jte) ::GRDFLX_URB
28062809
REAL :: SIGMA_SB,RL_UP_RURAL,RL_UP_TOT,RS_ABS_TOT,UMOM,VMOM
2807-
REAL :: r1,r2,r3
28082810
REAL :: CMR_URB, CHR_URB, CMC_URB, CHC_URB, CMGR_URB, CHGR_URB
28092811
REAL :: frc_urb,lb_urb
28102812
REAL :: check
@@ -4110,15 +4112,12 @@ SUBROUTINE lsm_mosaic(DZ8W,QV3D,P8W3D,T3D,TSK, &
41104112
ALBBRD =0.2 !0.2
41114113
EMISSI = 0.98 !for VEGTYP=5
41124114
IF ( FRC_URB2D(I,J) < 0.99 ) THEN
4113-
if(sf_urban_physics.eq.1)then
4114-
T1= ( TSK(I,J) -FRC_URB2D(I,J) * TS_URB2D (I,J) )/ (1-FRC_URB2D(I,J))
4115-
elseif((sf_urban_physics.eq.2).OR.(sf_urban_physics.eq.3))then
4116-
r1= (tsk(i,j)**4.)
4117-
r2= frc_urb2d(i,j)*(ts_urb2d(i,j)**4.)
4118-
r3= (1.-frc_urb2d(i,j))
4119-
t1= ((r1-r2)/r3)**.25
4120-
endif
4121-
ELSE
4115+
if(sf_urban_physics.eq.1)then
4116+
T1= ( TSK(I,J) -FRC_URB2D(I,J) * TS_URB2D (I,J) )/ (1-FRC_URB2D(I,J))
4117+
elseif((sf_urban_physics.eq.2).OR.(sf_urban_physics.eq.3))then
4118+
T1=tsk_rural_bep(i,j)
4119+
endif
4120+
ELSE
41224121
T1 = TSK(I,J)
41234122
ENDIF
41244123
ENDIF

Diff for: phys/module_surface_driver.F

+4
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,7 @@ SUBROUTINE surface_driver( &
241241
& ,sf_urban_physics,gmt,xlat,xlong,julday &
242242
& ,num_urban_layers & !multi-layer urban
243243
& ,num_urban_hi & !multi-layer urban
244+
& ,tsk_rural & !multi-layer urban
244245
& ,trb_urb4d,tw1_urb4d,tw2_urb4d,tgb_urb4d & !multi-layer urban
245246
& ,tlev_urb3d,qlev_urb3d & !multi-layer urban
246247
& ,tw1lev_urb3d,tw2lev_urb3d & !multi-layer urban
@@ -887,6 +888,7 @@ SUBROUTINE surface_driver( &
887888
REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(IN ) ::XLAT, XLONG
888889
INTEGER, INTENT(IN ):: NUM_URBAN_LAYERS
889890
INTEGER, INTENT(IN ):: NUM_URBAN_HI
891+
REAL, OPTIONAL, DIMENSION( ims:ime, jms:jme ), INTENT(INOUT) :: tsk_rural
890892
REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: trb_urb4d
891893
REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: tw1_urb4d
892894
REAL, OPTIONAL, DIMENSION( ims:ime, 1:num_urban_layers, jms:jme ), INTENT(INOUT) :: tw2_urb4d
@@ -2610,6 +2612,7 @@ SUBROUTINE surface_driver( &
26102612
FRC_URB2D, UTYPE_URB2D, & !I urban
26112613
num_urban_layers, & !I multi-layer urban
26122614
num_urban_hi, & !I multi-layer urban
2615+
tsk_rural, & !H multi-layer urban
26132616
trb_urb4d,tw1_urb4d,tw2_urb4d,tgb_urb4d, & !H multi-layer urban
26142617
tlev_urb3d,qlev_urb3d, & !H multi-layer urban
26152618
tw1lev_urb3d,tw2lev_urb3d, & !H multi-layer urban
@@ -2714,6 +2717,7 @@ SUBROUTINE surface_driver( &
27142717
FRC_URB2D, UTYPE_URB2D, & !I urban
27152718
num_urban_layers, & !I multi-layer urban
27162719
num_urban_hi, & !I multi-layer urban
2720+
tsk_rural, & !H multi-layer urban
27172721
trb_urb4d,tw1_urb4d,tw2_urb4d,tgb_urb4d, & !H multi-layer urban
27182722
tlev_urb3d,qlev_urb3d, & !H multi-layer urban
27192723
tw1lev_urb3d,tw2lev_urb3d, & !H multi-layer urban

0 commit comments

Comments
 (0)