Changeset 2608 for palm/trunk/SOURCE/land_surface_model_mod.f90
 Timestamp:
 Nov 13, 2017 2:04:26 PM (4 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

palm/trunk/SOURCE/land_surface_model_mod.f90
r2575 r2608 25 25 !  26 26 ! $Id$ 27 ! Calculation of magnus equation in external module (diagnostic_quantities_mod). 28 ! Adjust calculation of vapor pressure and saturation mixing ratio that it is 29 ! consistent with formulations in other parts of PALM. 30 ! 31 ! 2575 20171024 09:57:58Z maronga 27 32 ! Pavement parameterization revised 28 33 ! … … 1410 1415 SUBROUTINE lsm_energy_balance( horizontal, l ) 1411 1416 1412 1417 USE diagnostic_quantities_mod, & 1418 ONLY: magnus 1419 1413 1420 USE pegrid 1414 1421 … … 1648 1655 f2 = 1.0E20_wp 1649 1656 ENDIF 1650 ! 1651 ! Calculate water vapour pressure at saturation 1652 e_s = 0.01_wp * 610.78_wp * EXP( 17.269_wp * ( surf_t_surface%var_1d(m) & 1653  273.16_wp ) / ( surf_t_surface%var_1d(m)  35.86_wp ) ) 1657 1658 ! 1659 ! Calculate water vapour pressure at saturation and convert to hPa 1660 e_s = 0.01_wp * magnus( surf_t_surface%var_1d(m) ) 1661 1654 1662 ! 1655 1663 ! f3: correction for vapour pressure deficit … … 1657 1665 ! 1658 1666 ! Calculate vapour pressure 1659 e = qv1 * surface_pressure / 0.622_wp1667 e = qv1 * surface_pressure / ( qv1 + 0.622_wp ) 1660 1668 f3 = EXP (  surf%g_d(m) * (e_s  e) ) 1661 1669 ELSE … … 1698 1706 ! 1699 1707 ! Calculate saturation specific humidity 1700 q_s = 0.622_wp * e_s / surface_pressure1708 q_s = 0.622_wp * e_s / ( surface_pressure  e_s ) 1701 1709 ! 1702 1710 ! In case of dewfall, set evapotranspiration to zero … … 1733 1741 ! 1734 1742 ! Calculate derivative of q_s for Taylor series expansion 1735 e_s_dt = e_s * ( 17. 269_wp / ( surf_t_surface%var_1d(m)  35.86_wp)  &1736 17. 269_wp*( surf_t_surface%var_1d(m)  273.16_wp) &1737 / ( surf_t_surface%var_1d(m)  35.86_wp)**2 )1738 1739 dq_s_dt = 0.622_wp * e_s_dt / surface_pressure1743 e_s_dt = e_s * ( 17.62_wp / ( surf_t_surface%var_1d(m)  29.65_wp)  & 1744 17.62_wp*( surf_t_surface%var_1d(m)  273.15_wp) & 1745 / ( surf_t_surface%var_1d(m)  29.65_wp)**2 ) 1746 1747 dq_s_dt = 0.622_wp * e_s_dt / ( surface_pressure  e_s_dt ) 1740 1748 ! 1741 1749 ! Add LW up so that it can be removed in prognostic equation … … 1988 1996 SUBROUTINE calc_q_surface 1989 1997 1998 USE diagnostic_quantities_mod 1999 1990 2000 IMPLICIT NONE 1991 2001 … … 1997 2007 j = surf%j(m) 1998 2008 k = surf%k(m) 1999 2000 ! 2001 ! Calculate water vapour pressure at saturation 2002 e_s = 0.01_wp * 610.78_wp * EXP( 17.269_wp * & 2003 ( surf_t_surface_p%var_1d(m)  273.16_wp ) / & 2004 ( surf_t_surface_p%var_1d(m)  35.86_wp ) & 2005 ) 2009 ! 2010 ! Calculate water vapour pressure at saturation and convert to hPa 2011 e_s = 0.01_wp * magnus( surf_t_surface_p%var_1d(m) ) 2006 2012 2007 2013 ! 2008 2014 ! Calculate specific humidity at saturation 2009 q_s = 0.622_wp * e_s / surface_pressure2015 q_s = 0.622_wp * e_s / ( surface_pressure  e_s ) 2010 2016 2011 2017 resistance = surf%r_a(m) / ( surf%r_a(m) + surf%r_s(m) )
Note: See TracChangeset
for help on using the changeset viewer.