Skip to content

Commit 5a0af46

Browse files
authored
Fix units of evaporation for imp_scheme==2 in slucm (#2227)
Fix the conversion of kinematic water vapor flux to evaporation in m/s for water budget in slucm TYPE: bug fix KEYWORDS: slucm, urban evaporation, urban physics SOURCE: Einara Zahn, Princeton University DESCRIPTION OF CHANGES: Problem: Evaporation rate over impervious surfaces was incorrectly computed in SLUCM for option IMP_SCHEME==2. The kinematic vapor flux (kg/kg x m/s) was not converted to evaporation in m/s before entering the water budget equation, leading to wrong update of water storage. Solution: Multiplied the kinematic water vapor flux by air density and divided by water density in module_sf_urban.f90, only inside the code block for IMP_SCHEME == 2. The conversion does not affect the default version IMP_SCHEME==1. ISSUE: For use when this PR closes an issue. Fixes #2186 LIST OF MODIFIED FILES: phys/module_sf_urban.F TESTS CONDUCTED: 1. Running urban simulations on rainy days, with and without the unit conversion. 2. Jenkins tests have passed. RELEASE NOTE: Corrected evaporation rate calculation for water budget over impervious surfaces in SLUCM when IMP_SCHEME == 2. Affects available water in impervious surfaces and latent heat flux output in urban simulations with impervious scheme enabled.
1 parent e6472cb commit 5a0af46

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

phys/module_sf_urban.F

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1032,7 +1032,8 @@ SUBROUTINE urban(LSOLAR, & ! L
10321032
IF (IMP_SCHEME==2) then
10331033
IF (FLXHUMRP <= 0.) FLXHUMRP = 0.
10341034
! Compute water retention depth from previous time step
1035-
DrelR = DrelRP+(RAIN1-FLXHUMRP)*DELT/porimp(IMPR)
1035+
! Convert kinematic water flux to evaporation in m/s: multiply flux by rho_air/who_water in SI units
1036+
DrelR = DrelRP+(RAIN1-FLXHUMRP*RHOO/1000.)*DELT/porimp(IMPR)
10361037
IF (RAIN > 0. .AND. DrelR < DrelRP) DrelR = DrelRP
10371038
10381039
IF (DrelR <= 0.) then
@@ -1284,9 +1285,10 @@ SUBROUTINE urban(LSOLAR, & ! L
12841285
IF (FLXHUMBP <= 0.) FLXHUMBP = 0.
12851286
IF (FLXHUMGP <= 0.) FLXHUMGP = 0.
12861287
! Compute water retention from previous time step for wall and ground
1287-
DrelB = DrelBP+(RAIN1-FLXHUMBP)*DELT/porimp(IMPB)
1288+
! Convert kinematic water flux to evaporation in m/s: multiply flux by rho_air/who_water in SI units
1289+
DrelB = DrelBP+(RAIN1-FLXHUMBP*RHOO/1000.)*DELT/porimp(IMPB)
12881290
IF (RAIN > 0. .AND. DrelB < DrelBP) DrelB = DrelBP
1289-
DrelG = DrelGP+(RAIN1-FLXHUMGP)*DELT/porimp(IMPG)
1291+
DrelG = DrelGP+(RAIN1-FLXHUMGP*RHOO/1000.)*DELT/porimp(IMPG)
12901292
IF (RAIN > 0. .AND. DrelG < DrelGP) DrelG = DrelGP
12911293
12921294
IF (DrelB <= 0.) then

0 commit comments

Comments
 (0)