-
Notifications
You must be signed in to change notification settings - Fork 115
Description
Hello,
I'm having trouble reconciling the treatment of air density in the computation of latent heat fluxes. It's possible that I'm missing part of a derivation where this cancels out, and apologies if that is the case. I'm only looking at latent heat flux for the ground, but this might matter elsewhere too.
The latent heat flux is computed using the vapor pressure gradient.
summa/build/source/engine/vegNrgFlux.f90
Line 2899 in 19a7f9c
| latHeatGround = -latHeatSubVapGround*latentHeatConstant*groundConductanceLH*(satVP_GroundTemp*soilRelHumidity - VPair) ! (positive downwards) |
The "latentHeatConstant" term is in there as a helper term that converts vapor pressure to specific humidity and then multiplies by the air density,
summa/build/source/engine/vegNrgFlux.f90
Line 2768 in 19a7f9c
| latentHeatConstant = iden_air*w_ratio/airpres ! latent heat constant for (kg m-3 Pa-1) |
The
summa/build/source/dshare/multiconst.f90
Line 46 in 19a7f9c
| real(rkind), PARAMETER :: iden_air = 1.293_rkind ! intrinsic density of air (kg m-3) |
The value of 1.293 kg/m^3 is typical for sea level. I think that it is more appropriate to calculate the air density using the ideal gas law and the virtual temperature:
[Petty, W. A First Course in Atmospheric Thermodynamics]. Where
So, to use some real numbers, a 0C atmosphere at 1000 hPa (sea level) has a density of close to 1.29, but an atmosphere also at 0C and at 700 hPa (around 10000 feet of elevation) will have an air density of about 0.8. So all else being equal, adjusting the air density in this case would yield about a 38% decrease in latent heat flux. Many climates where snow processes are important (and summa has lots of nice options for snow) are going to be well above sea level, so I think that this matters quite a lot.
Thanks