Skip to content

Commit a176a59

Browse files
authored
bugfix for LCZ index in Noah-MP (#2202)
TYPE: bug fix KEYWORDS: Urban, Noah-MP, LCZ SOURCE: Martilli, Alberto (CIEMAT) DESCRIPTION OF CHANGES: Problem: If one uses Noah-MP and LCZ data, all the LCZ_1, LCZ_2, etc. are zero because they are not defined correctly for Noah-MP. Solution: This PR fixes the issue by using LCZ_*_TABLE instead so that LCZ are correctly defined in Noah-MP. LIST OF MODIFIED FILES: M phys/module_surface_driver.F TESTS CONDUCTED: 1. A one-month simulation was conducted for February 2018 over Atlanta to verify the change. 2. The Jenkins tests are all passing. RELEASE NOTE: This PR fixes an error associated with using LCZ categories in NoahMP. Prior to this fix, the LCZs were not correctly referenced, hence ignored in the NoahMP code.
1 parent 2639dcd commit a176a59

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

phys/module_surface_driver.F

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,7 @@ SUBROUTINE surface_driver( &
363363
USE module_sf_gfs
364364
USE module_sf_noahdrv ! danli mosaic, the " ,only : lsm " needs to be deleted
365365
USE module_sf_noahlsm, only : LCZ_1,LCZ_2,LCZ_3,LCZ_4,LCZ_5,LCZ_6,LCZ_7,LCZ_8,LCZ_9,LCZ_10,LCZ_11
366+
USE noahmp_tables, only : LCZ_1_TABLE,LCZ_2_TABLE,LCZ_3_TABLE,LCZ_4_TABLE,LCZ_5_TABLE,LCZ_6_TABLE,LCZ_7_TABLE,LCZ_8_TABLE,LCZ_9_TABLE,LCZ_10_TABLE,LCZ_11_TABLE
366367
USE module_sf_noahmpdrv, only : noahmplsm, noahmp_urban
367368
USE module_sf_noahmp_groundwater
368369
USE module_sf_noah_seaice_drv
@@ -3354,10 +3355,10 @@ SUBROUTINE surface_driver( &
33543355
ENDIF
33553356
TH2(I,J) = T2(I,J)*(1.E5/PSFC(I,J))**RCP
33563357
! ELSEIF (IVGTYP(I,J) == ISURBAN .OR. IVGTYP(I,J) == ISICE .OR. FVEGXY(I,J) == 0.0 ) THEN
3357-
ELSEIF( IVGTYP(I,J) == ISURBAN .or. IVGTYP(I,J) == LCZ_1 .or. IVGTYP(I,J) == LCZ_2 .or. &
3358-
IVGTYP(I,J) == LCZ_3 .or. IVGTYP(I,J) == LCZ_4 .or. IVGTYP(I,J) == LCZ_5 .or. &
3359-
IVGTYP(I,J) == LCZ_6 .or. IVGTYP(I,J) == LCZ_7 .or. IVGTYP(I,J) == LCZ_8 .or. &
3360-
IVGTYP(I,J) == LCZ_9 .or. IVGTYP(I,J) == LCZ_10 .or. IVGTYP(I,J) == LCZ_11 .or. &
3358+
ELSEIF( IVGTYP(I,J) == ISURBAN .or. IVGTYP(I,J) == LCZ_1_TABLE .or. IVGTYP(I,J) == LCZ_2_TABLE .or. &
3359+
IVGTYP(I,J) == LCZ_3_TABLE .or. IVGTYP(I,J) == LCZ_4_TABLE .or. IVGTYP(I,J) == LCZ_5_TABLE .or. &
3360+
IVGTYP(I,J) == LCZ_6_TABLE .or. IVGTYP(I,J) == LCZ_7_TABLE .or. IVGTYP(I,J) == LCZ_8_TABLE .or. &
3361+
IVGTYP(I,J) == LCZ_9_TABLE .or. IVGTYP(I,J) == LCZ_10_TABLE .or. IVGTYP(I,J) == LCZ_11_TABLE .or. &
33613362
(IVGTYP(I,J) == ISICE .AND. XICE(I,J) .LT. XICE_THRESHOLD)) THEN
33623363

33633364
Q2(I,J) = Q2MBXY(I,J)
@@ -3382,10 +3383,10 @@ SUBROUTINE surface_driver( &
33823383
IF(SF_URBAN_PHYSICS.eq.1) THEN
33833384
DO j=j_start(ij),j_end(ij) !urban
33843385
DO i=i_start(ij),i_end(ij) !urban
3385-
IF( IVGTYP(I,J) == ISURBAN .or. IVGTYP(I,J) == LCZ_1 .or. IVGTYP(I,J) == LCZ_2 .or. &
3386-
IVGTYP(I,J) == LCZ_3 .or. IVGTYP(I,J) == LCZ_4 .or. IVGTYP(I,J) == LCZ_5 .or. &
3387-
IVGTYP(I,J) == LCZ_6 .or. IVGTYP(I,J) == LCZ_7 .or. IVGTYP(I,J) == LCZ_8 .or. &
3388-
IVGTYP(I,J) == LCZ_9 .or. IVGTYP(I,J) == LCZ_10 .or. IVGTYP(I,J) == LCZ_11 )THEN
3386+
IF( IVGTYP(I,J) == ISURBAN .or. IVGTYP(I,J) == LCZ_1_TABLE .or. IVGTYP(I,J) == LCZ_2_TABLE .or. &
3387+
IVGTYP(I,J) == LCZ_3_TABLE .or. IVGTYP(I,J) == LCZ_4_TABLE .or. IVGTYP(I,J) == LCZ_5_TABLE .or. &
3388+
IVGTYP(I,J) == LCZ_6_TABLE .or. IVGTYP(I,J) == LCZ_7_TABLE .or. IVGTYP(I,J) == LCZ_8_TABLE .or. &
3389+
IVGTYP(I,J) == LCZ_9_TABLE .or. IVGTYP(I,J) == LCZ_10_TABLE .or. IVGTYP(I,J) == LCZ_11_TABLE )THEN
33893390
Q2(I,J) = (FVEGXY(I,J)*Q2MVXY(I,J) + (1.-FVEGXY(I,J))*Q2MBXY(I,J))*(1.-FRC_URB2D(I,J)) + &
33903391
Q2_URB2D(I,J)*FRC_URB2D(I,J)
33913392
T2(I,J) = (FVEGXY(I,J)*T2MVXY(I,J) + (1.-FVEGXY(I,J))*T2MBXY(I,J))*(1.-FRC_URB2D(I,J)) + &
@@ -3406,10 +3407,10 @@ SUBROUTINE surface_driver( &
34063407
IF((SF_URBAN_PHYSICS.eq.2).OR.(SF_URBAN_PHYSICS.eq.3)) THEN
34073408
DO j=j_start(ij),j_end(ij) !urban
34083409
DO i=i_start(ij),i_end(ij) !urban
3409-
IF( IVGTYP(I,J) == ISURBAN .or. IVGTYP(I,J) == LCZ_1 .or. IVGTYP(I,J) == LCZ_2 .or. &
3410-
IVGTYP(I,J) == LCZ_3 .or. IVGTYP(I,J) == LCZ_4 .or. IVGTYP(I,J) == LCZ_5 .or. &
3411-
IVGTYP(I,J) == LCZ_6 .or. IVGTYP(I,J) == LCZ_7 .or. IVGTYP(I,J) == LCZ_8 .or. &
3412-
IVGTYP(I,J) == LCZ_9 .or. IVGTYP(I,J) == LCZ_10 .or. IVGTYP(I,J) == LCZ_11 )THEN
3410+
IF( IVGTYP(I,J) == ISURBAN .or. IVGTYP(I,J) == LCZ_1_TABLE .or. IVGTYP(I,J) == LCZ_2_TABLE .or. &
3411+
IVGTYP(I,J) == LCZ_3_TABLE .or. IVGTYP(I,J) == LCZ_4_TABLE .or. IVGTYP(I,J) == LCZ_5_TABLE .or. &
3412+
IVGTYP(I,J) == LCZ_6_TABLE .or. IVGTYP(I,J) == LCZ_7_TABLE .or. IVGTYP(I,J) == LCZ_8_TABLE .or. &
3413+
IVGTYP(I,J) == LCZ_9_TABLE .or. IVGTYP(I,J) == LCZ_10_TABLE .or. IVGTYP(I,J) == LCZ_11_TABLE )THEN
34133414
T2(I,J) = TH_PHY(i,1,j)/((1.E5/PSFC(I,J))**RCP) !urban
34143415
TH2(I,J) = TH_PHY(i,1,j) !urban
34153416
Q2(I,J) = qv_curr(i,1,j) !urban

0 commit comments

Comments
 (0)