Ignore:
Timestamp:
Oct 7, 2015 11:56:08 PM (9 years ago)
Author:
knoop
Message:

Code annotations made doxygen readable

File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/land_surface_model.f90

    r1591 r1682  
    1  MODULE land_surface_model_mod
    2 
     1!> @file land_surface_model.f90
    32!--------------------------------------------------------------------------------!
    43! This file is part of PALM.
     
    2019! Current revisions:
    2120! -----------------
    22 !
     21! Code annotations made doxygen readable
    2322!
    2423! Former revisions:
     
    6564! Description:
    6665! ------------
    67 ! Land surface model, consisting of a solver for the energy balance at the
    68 ! surface and a four layer soil scheme. The scheme is similar to the TESSEL
    69 ! scheme implemented in the ECMWF IFS model, with modifications according to
    70 ! H-TESSEL. The implementation is based on the formulation implemented in the
    71 ! DALES and UCLA-LES models.
    72 !
    73 ! To do list:
    74 ! -----------
    75 ! - Check dewfall parametrization for fog simulations
    76 ! - Consider partial absorption of the net shortwave radiation by the surface layer
    77 ! - Allow for water surfaces, check performance for bare soils
    78 ! - Invert indices (running from -3 to 0. Currently: nzb_soil=0, nzt_soil=3))
    79 ! - Implement surface runoff model (required when performing long-term LES with
    80 !   considerable precipitation
    81 !
    82 ! Notes:
    83 ! ------
    84 ! - No time step criterion is required as long as the soil layers do not become
    85 !   too thin
     66!> Land surface model, consisting of a solver for the energy balance at the
     67!> surface and a four layer soil scheme. The scheme is similar to the TESSEL
     68!> scheme implemented in the ECMWF IFS model, with modifications according to
     69!> H-TESSEL. The implementation is based on the formulation implemented in the
     70!> DALES and UCLA-LES models.
     71!>
     72!> @todo Check dewfall parametrization for fog simulations.
     73!> @todo Consider partial absorption of the net shortwave radiation by the surface layer.
     74!> @todo Allow for water surfaces, check performance for bare soils.
     75!> @todo Invert indices (running from -3 to 0. Currently: nzb_soil=0, nzt_soil=3)).
     76!> @todo Implement surface runoff model (required when performing long-term LES with
     77!>       considerable precipitation.
     78!>
     79!> @note  No time step criterion is required as long as the soil layers do not become
     80!>        too thin.
    8681!------------------------------------------------------------------------------!
     82 MODULE land_surface_model_mod
     83 
    8784     USE arrays_3d,                                                            &
    8885         ONLY:  pt, pt_p, q_p, qsws, rif, shf, ts, us, z0, z0h
     
    116113!
    117114!-- LSM model constants
    118     INTEGER(iwp), PARAMETER :: nzb_soil = 0, & !: bottom of the soil model (to be switched)
    119                                nzt_soil = 3, & !: top of the soil model (to be switched)
    120                                nzs = 4         !: number of soil layers (fixed for now)
    121 
    122     INTEGER(iwp) :: dots_soil = 0  !: starting index for timeseries output
     115    INTEGER(iwp), PARAMETER :: nzb_soil = 0, & !< bottom of the soil model (to be switched)
     116                               nzt_soil = 3, & !< top of the soil model (to be switched)
     117                               nzs = 4         !< number of soil layers (fixed for now)
     118
     119    INTEGER(iwp) :: dots_soil = 0  !< starting index for timeseries output
    123120
    124121    INTEGER(iwp), DIMENSION(0:1) :: id_dim_zs_xy, id_dim_zs_xz, id_dim_zs_yz,  &
     
    141138!
    142139!-- LSM variables
    143     INTEGER(iwp) :: veg_type  = 2, & !: vegetation type, 0: user-defined, 1-19: generic (see list)
    144                     soil_type = 3    !: soil type, 0: user-defined, 1-6: generic (see list)
    145 
    146     LOGICAL :: conserve_water_content = .TRUE., & !: open or closed bottom surface for the soil model
    147                dewfall = .TRUE.,                & !: allow/inhibit dewfall
    148                land_surface = .FALSE.             !: flag parameter indicating wheather the lsm is used
     140    INTEGER(iwp) :: veg_type  = 2, & !< vegetation type, 0: user-defined, 1-19: generic (see list)
     141                    soil_type = 3    !< soil type, 0: user-defined, 1-6: generic (see list)
     142
     143    LOGICAL :: conserve_water_content = .TRUE., & !< open or closed bottom surface for the soil model
     144               dewfall = .TRUE.,                & !< allow/inhibit dewfall
     145               land_surface = .FALSE.             !< flag parameter indicating wheather the lsm is used
    149146
    150147!   value 9999999.9_wp -> generic available or user-defined value must be set
    151148!   otherwise -> no generic variable and user setting is optional
    152     REAL(wp) :: alpha_vangenuchten = 9999999.9_wp,      & !: NAMELIST alpha_vg
    153                 canopy_resistance_coefficient = 9999999.9_wp, & !: NAMELIST g_d
    154                 c_surface   = 20000.0_wp,               & !: Surface (skin) heat capacity
    155                 drho_l_lv,                              & !: (rho_l * l_v)**-1
    156                 exn,                                    & !: value of the Exner function
    157                 e_s = 0.0_wp,                           & !: saturation water vapour pressure
    158                 field_capacity = 9999999.9_wp,          & !: NAMELIST m_fc
    159                 f_shortwave_incoming = 9999999.9_wp,    & !: NAMELIST f_sw_in
    160                 hydraulic_conductivity = 9999999.9_wp,  & !: NAMELIST gamma_w_sat
    161                 ke = 0.0_wp,                            & !: Kersten number
    162                 lambda_surface_stable = 9999999.9_wp,   & !: NAMELIST lambda_surface_s
    163                 lambda_surface_unstable = 9999999.9_wp, & !: NAMELIST lambda_surface_u
    164                 leaf_area_index = 9999999.9_wp,         & !: NAMELIST lai
    165                 l_vangenuchten = 9999999.9_wp,          & !: NAMELIST l_vg
    166                 min_canopy_resistance = 9999999.9_wp,   & !: NAMELIST r_canopy_min
    167                 min_soil_resistance = 50.0_wp,          & !: NAMELIST r_soil_min
    168                 m_total = 0.0_wp,                       & !: weighted total water content of the soil (m3/m3)
    169                 n_vangenuchten = 9999999.9_wp,          & !: NAMELIST n_vg
    170                 q_s = 0.0_wp,                           & !: saturation specific humidity
    171                 residual_moisture = 9999999.9_wp,       & !: NAMELIST m_res
    172                 rho_cp,                                 & !: rho_surface * cp
    173                 rho_lv,                                 & !: rho * l_v
    174                 rd_d_rv,                                & !: r_d / r_v
    175                 saturation_moisture = 9999999.9_wp,     & !: NAMELIST m_sat
    176                 vegetation_coverage = 9999999.9_wp,     & !: NAMELIST c_veg
    177                 wilting_point = 9999999.9_wp,           & !: NAMELIST m_wilt
    178                 z0_eb  = 9999999.9_wp,                  & !: NAMELIST z0 (lsm_par)
    179                 z0h_eb = 9999999.9_wp                    !: NAMELIST z0h (lsm_par)
     149    REAL(wp) :: alpha_vangenuchten = 9999999.9_wp,      & !< NAMELIST alpha_vg
     150                canopy_resistance_coefficient = 9999999.9_wp, & !< NAMELIST g_d
     151                c_surface   = 20000.0_wp,               & !< Surface (skin) heat capacity
     152                drho_l_lv,                              & !< (rho_l * l_v)**-1
     153                exn,                                    & !< value of the Exner function
     154                e_s = 0.0_wp,                           & !< saturation water vapour pressure
     155                field_capacity = 9999999.9_wp,          & !< NAMELIST m_fc
     156                f_shortwave_incoming = 9999999.9_wp,    & !< NAMELIST f_sw_in
     157                hydraulic_conductivity = 9999999.9_wp,  & !< NAMELIST gamma_w_sat
     158                ke = 0.0_wp,                            & !< Kersten number
     159                lambda_surface_stable = 9999999.9_wp,   & !< NAMELIST lambda_surface_s
     160                lambda_surface_unstable = 9999999.9_wp, & !< NAMELIST lambda_surface_u
     161                leaf_area_index = 9999999.9_wp,         & !< NAMELIST lai
     162                l_vangenuchten = 9999999.9_wp,          & !< NAMELIST l_vg
     163                min_canopy_resistance = 9999999.9_wp,   & !< NAMELIST r_canopy_min
     164                min_soil_resistance = 50.0_wp,          & !< NAMELIST r_soil_min
     165                m_total = 0.0_wp,                       & !< weighted total water content of the soil (m3/m3)
     166                n_vangenuchten = 9999999.9_wp,          & !< NAMELIST n_vg
     167                q_s = 0.0_wp,                           & !< saturation specific humidity
     168                residual_moisture = 9999999.9_wp,       & !< NAMELIST m_res
     169                rho_cp,                                 & !< rho_surface * cp
     170                rho_lv,                                 & !< rho * l_v
     171                rd_d_rv,                                & !< r_d / r_v
     172                saturation_moisture = 9999999.9_wp,     & !< NAMELIST m_sat
     173                vegetation_coverage = 9999999.9_wp,     & !< NAMELIST c_veg
     174                wilting_point = 9999999.9_wp,           & !< NAMELIST m_wilt
     175                z0_eb  = 9999999.9_wp,                  & !< NAMELIST z0 (lsm_par)
     176                z0h_eb = 9999999.9_wp                    !< NAMELIST z0h (lsm_par)
    180177
    181178    REAL(wp), DIMENSION(nzb_soil:nzt_soil) :: &
    182               ddz_soil,                     & !: 1/dz_soil
    183               ddz_soil_stag,                & !: 1/dz_soil_stag
    184               dz_soil,                      & !: soil grid spacing (center-center)
    185               dz_soil_stag,                 & !: soil grid spacing (edge-edge)
    186               root_extr = 0.0_wp,           & !: root extraction
     179              ddz_soil,                     & !< 1/dz_soil
     180              ddz_soil_stag,                & !< 1/dz_soil_stag
     181              dz_soil,                      & !< soil grid spacing (center-center)
     182              dz_soil_stag,                 & !< soil grid spacing (edge-edge)
     183              root_extr = 0.0_wp,           & !< root extraction
    187184              root_fraction = (/9999999.9_wp, 9999999.9_wp,    &
    188                                 9999999.9_wp, 9999999.9_wp /), & !: distribution of root surface area to the individual soil layers
    189               zs = (/0.07_wp, 0.28_wp, 1.00_wp,  2.89_wp/),    & !: soil layer depths (m)
    190               soil_moisture = 0.0_wp          !: soil moisture content (m3/m3)
     185                                9999999.9_wp, 9999999.9_wp /), & !< distribution of root surface area to the individual soil layers
     186              zs = (/0.07_wp, 0.28_wp, 1.00_wp,  2.89_wp/),    & !< soil layer depths (m)
     187              soil_moisture = 0.0_wp          !< soil moisture content (m3/m3)
    191188
    192189    REAL(wp), DIMENSION(nzb_soil:nzt_soil+1) ::   &
    193190              soil_temperature = (/290.0_wp, 287.0_wp, 285.0_wp,  283.0_wp,    &
    194                                    283.0_wp /) !: soil temperature (K)
     191                                   283.0_wp /) !< soil temperature (K)
    195192
    196193#if defined( __nopointer )
    197     REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_surface,   & !: surface temperature (K)
    198                                                      t_surface_p, & !: progn. surface temperature (K)
    199                                                      m_liq_eb,    & !: liquid water reservoir (m)
    200                                                      m_liq_eb_av, & !: liquid water reservoir (m)
    201                                                      m_liq_eb_p     !: progn. liquid water reservoir (m)
     194    REAL(wp), DIMENSION(:,:), ALLOCATABLE, TARGET :: t_surface,   & !< surface temperature (K)
     195                                                     t_surface_p, & !< progn. surface temperature (K)
     196                                                     m_liq_eb,    & !< liquid water reservoir (m)
     197                                                     m_liq_eb_av, & !< liquid water reservoir (m)
     198                                                     m_liq_eb_p     !< progn. liquid water reservoir (m)
    202199#else
    203200    REAL(wp), DIMENSION(:,:), POINTER :: t_surface,      &
     
    213210!
    214211!-- Temporal tendencies for time stepping           
    215     REAL(wp), DIMENSION(:,:), ALLOCATABLE :: tt_surface_m,  & !: surface temperature tendency (K)
    216                                              tm_liq_eb_m      !: liquid water reservoir tendency (m)
     212    REAL(wp), DIMENSION(:,:), ALLOCATABLE :: tt_surface_m,  & !< surface temperature tendency (K)
     213                                             tm_liq_eb_m      !< liquid water reservoir tendency (m)
    217214
    218215!
    219216!-- Energy balance variables               
    220217    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::                                   &
    221               alpha_vg,         & !: coef. of Van Genuchten
    222               c_liq,            & !: liquid water coverage (of vegetated area)
    223               c_liq_av,         & !: average of c_liq
    224               c_soil_av,        & !: average of c_soil
    225               c_veg,            & !: vegetation coverage
    226               c_veg_av,         & !: average of c_veg
    227               f_sw_in,          & !: fraction of absorbed shortwave radiation by the surface layer (not implemented yet)
    228               ghf_eb,           & !: ground heat flux
    229               ghf_eb_av,        & !: average of ghf_eb
    230               gamma_w_sat,      & !: hydraulic conductivity at saturation
    231               g_d,              & !: coefficient for dependence of r_canopy on water vapour pressure deficit
    232               lai,              & !: leaf area index
    233               lai_av,           & !: average of lai
    234               lambda_h_sat,     & !: heat conductivity for dry soil
    235               lambda_surface_s,    & !: coupling between surface and soil (depends on vegetation type)
    236               lambda_surface_u,    & !: coupling between surface and soil (depends on vegetation type)
    237               l_vg,             & !: coef. of Van Genuchten
    238               m_fc,             & !: soil moisture at field capacity (m3/m3)
    239               m_res,            & !: residual soil moisture
    240               m_sat,            & !: saturation soil moisture (m3/m3)
    241               m_wilt,           & !: soil moisture at permanent wilting point (m3/m3)
    242               n_vg,             & !: coef. Van Genuchten 
    243               qsws_eb,          & !: surface flux of latent heat (total)
    244               qsws_eb_av,       & !: average of qsws_eb
    245               qsws_liq_eb,      & !: surface flux of latent heat (liquid water portion)
    246               qsws_liq_eb_av,   & !: average of qsws_liq_eb
    247               qsws_soil_eb,     & !: surface flux of latent heat (soil portion)
    248               qsws_soil_eb_av,  & !: average of qsws_soil_eb
    249               qsws_veg_eb,      & !: surface flux of latent heat (vegetation portion)
    250               qsws_veg_eb_av,   & !: average of qsws_veg_eb
    251               rad_net_l,        & !: local copy of rad_net (net radiation at surface)
    252               r_a,              & !: aerodynamic resistance
    253               r_a_av,           & !: avergae of r_a
    254               r_canopy,         & !: canopy resistance
    255               r_soil,           & !: soil resitance
    256               r_soil_min,       & !: minimum soil resistance
    257               r_s,              & !: total surface resistance (combination of r_soil and r_canopy)
    258               r_s_av,           & !: avergae of r_s
    259               r_canopy_min,     & !: minimum canopy (stomatal) resistance
    260               shf_eb,           & !: surface flux of sensible heat
    261               shf_eb_av           !: average of shf_eb
     218              alpha_vg,         & !< coef. of Van Genuchten
     219              c_liq,            & !< liquid water coverage (of vegetated area)
     220              c_liq_av,         & !< average of c_liq
     221              c_soil_av,        & !< average of c_soil
     222              c_veg,            & !< vegetation coverage
     223              c_veg_av,         & !< average of c_veg
     224              f_sw_in,          & !< fraction of absorbed shortwave radiation by the surface layer (not implemented yet)
     225              ghf_eb,           & !< ground heat flux
     226              ghf_eb_av,        & !< average of ghf_eb
     227              gamma_w_sat,      & !< hydraulic conductivity at saturation
     228              g_d,              & !< coefficient for dependence of r_canopy on water vapour pressure deficit
     229              lai,              & !< leaf area index
     230              lai_av,           & !< average of lai
     231              lambda_h_sat,     & !< heat conductivity for dry soil
     232              lambda_surface_s,    & !< coupling between surface and soil (depends on vegetation type)
     233              lambda_surface_u,    & !< coupling between surface and soil (depends on vegetation type)
     234              l_vg,             & !< coef. of Van Genuchten
     235              m_fc,             & !< soil moisture at field capacity (m3/m3)
     236              m_res,            & !< residual soil moisture
     237              m_sat,            & !< saturation soil moisture (m3/m3)
     238              m_wilt,           & !< soil moisture at permanent wilting point (m3/m3)
     239              n_vg,             & !< coef. Van Genuchten 
     240              qsws_eb,          & !< surface flux of latent heat (total)
     241              qsws_eb_av,       & !< average of qsws_eb
     242              qsws_liq_eb,      & !< surface flux of latent heat (liquid water portion)
     243              qsws_liq_eb_av,   & !< average of qsws_liq_eb
     244              qsws_soil_eb,     & !< surface flux of latent heat (soil portion)
     245              qsws_soil_eb_av,  & !< average of qsws_soil_eb
     246              qsws_veg_eb,      & !< surface flux of latent heat (vegetation portion)
     247              qsws_veg_eb_av,   & !< average of qsws_veg_eb
     248              rad_net_l,        & !< local copy of rad_net (net radiation at surface)
     249              r_a,              & !< aerodynamic resistance
     250              r_a_av,           & !< avergae of r_a
     251              r_canopy,         & !< canopy resistance
     252              r_soil,           & !< soil resitance
     253              r_soil_min,       & !< minimum soil resistance
     254              r_s,              & !< total surface resistance (combination of r_soil and r_canopy)
     255              r_s_av,           & !< avergae of r_s
     256              r_canopy_min,     & !< minimum canopy (stomatal) resistance
     257              shf_eb,           & !< surface flux of sensible heat
     258              shf_eb_av           !< average of shf_eb
    262259
    263260    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::                                 &
    264               lambda_h, &   !: heat conductivity of soil (?)                           
    265               lambda_w, &   !: hydraulic diffusivity of soil (?)
    266               gamma_w,  &   !: hydraulic conductivity of soil (?)
    267               rho_c_total   !: volumetric heat capacity of the actual soil matrix (?)
     261              lambda_h, &   !< heat conductivity of soil (?)                           
     262              lambda_w, &   !< hydraulic diffusivity of soil (?)
     263              gamma_w,  &   !< hydraulic conductivity of soil (?)
     264              rho_c_total   !< volumetric heat capacity of the actual soil matrix (?)
    268265
    269266#if defined( __nopointer )
    270267    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::                         &
    271               t_soil,    & !: Soil temperature (K)
    272               t_soil_av, & !: Average of t_soil
    273               t_soil_p,  & !: Prog. soil temperature (K)
    274               m_soil,    & !: Soil moisture (m3/m3)
    275               m_soil_av, & !: Average of m_soil
    276               m_soil_p     !: Prog. soil moisture (m3/m3)
     268              t_soil,    & !< Soil temperature (K)
     269              t_soil_av, & !< Average of t_soil
     270              t_soil_p,  & !< Prog. soil temperature (K)
     271              m_soil,    & !< Soil moisture (m3/m3)
     272              m_soil_av, & !< Average of m_soil
     273              m_soil_p     !< Prog. soil moisture (m3/m3)
    277274#else
    278275    REAL(wp), DIMENSION(:,:,:), POINTER ::                                     &
     
    287284
    288285    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::                                 &
    289               tt_soil_m, & !: t_soil storage array
    290               tm_soil_m, & !: m_soil storage array
    291               root_fr      !: root fraction (sum=1)
     286              tt_soil_m, & !< t_soil storage array
     287              tm_soil_m, & !< m_soil storage array
     288              root_fr      !< root fraction (sum=1)
    292289
    293290
     
    518515! Description:
    519516! ------------
    520 !-- Allocate land surface model arrays and define pointers
     517!> Allocate land surface model arrays and define pointers
    521518!------------------------------------------------------------------------------!
    522519    SUBROUTINE init_lsm_arrays
     
    601598! Description:
    602599! ------------
    603 !-- Initialization of the land surface model
     600!> Initialization of the land surface model
    604601!------------------------------------------------------------------------------!
    605602    SUBROUTINE init_lsm
     
    608605       IMPLICIT NONE
    609606
    610        INTEGER(iwp) ::  i !: running index
    611        INTEGER(iwp) ::  j !: running index
    612        INTEGER(iwp) ::  k !: running index
     607       INTEGER(iwp) ::  i !< running index
     608       INTEGER(iwp) ::  j !< running index
     609       INTEGER(iwp) ::  k !< running index
    613610
    614611
     
    920917! Description:
    921918! ------------
    922 ! Solver for the energy balance at the surface.
    923 !
    924 ! Note: surface fluxes are calculated in the land surface model, but these are
    925 ! not used in the atmospheric code. The fluxes are calculated afterwards in
    926 ! prandtl_fluxes using the surface values of temperature and humidity as
    927 ! provided by the land surface model. In this way, the fluxes in the land
    928 ! surface model are not equal to the ones calculated in prandtl_fluxes
     919!> Solver for the energy balance at the surface.
     920!> @note Surface fluxes are calculated in the land surface model, but these are
     921!>       not used in the atmospheric code. The fluxes are calculated afterwards in
     922!>       prandtl_fluxes using the surface values of temperature and humidity as
     923!>       provided by the land surface model. In this way, the fluxes in the land
     924!>       surface model are not equal to the ones calculated in prandtl_fluxes
    929925!------------------------------------------------------------------------------!
    930926    SUBROUTINE lsm_energy_balance
     
    933929       IMPLICIT NONE
    934930
    935        INTEGER(iwp) ::  i         !: running index
    936        INTEGER(iwp) ::  j         !: running index
    937        INTEGER(iwp) ::  k, ks     !: running index
    938 
    939        REAL(wp) :: f1,          & !: resistance correction term 1
    940                    f2,          & !: resistance correction term 2
    941                    f3,          & !: resistance correction term 3
    942                    m_min,       & !: minimum soil moisture
    943                    T_1,         & !: actual temperature at first grid point
    944                    e,           & !: water vapour pressure
    945                    e_s,         & !: water vapour saturation pressure
    946                    e_s_dt,      & !: derivate of e_s with respect to T
    947                    tend,        & !: tendency
    948                    dq_s_dt,     & !: derivate of q_s with respect to T
    949                    coef_1,      & !: coef. for prognostic equation
    950                    coef_2,      & !: coef. for prognostic equation
    951                    f_qsws,      & !: factor for qsws_eb
    952                    f_qsws_veg,  & !: factor for qsws_veg_eb
    953                    f_qsws_soil, & !: factor for qsws_soil_eb
    954                    f_qsws_liq,  & !: factor for qsws_liq_eb
    955                    f_shf,       & !: factor for shf_eb
    956                    lambda_surface, & !: Current value of lambda_surface
    957                    m_liq_eb_max   !: maxmimum value of the liq. water reservoir
     931       INTEGER(iwp) ::  i         !< running index
     932       INTEGER(iwp) ::  j         !< running index
     933       INTEGER(iwp) ::  k, ks     !< running index
     934
     935       REAL(wp) :: f1,          & !< resistance correction term 1
     936                   f2,          & !< resistance correction term 2
     937                   f3,          & !< resistance correction term 3
     938                   m_min,       & !< minimum soil moisture
     939                   T_1,         & !< actual temperature at first grid point
     940                   e,           & !< water vapour pressure
     941                   e_s,         & !< water vapour saturation pressure
     942                   e_s_dt,      & !< derivate of e_s with respect to T
     943                   tend,        & !< tendency
     944                   dq_s_dt,     & !< derivate of q_s with respect to T
     945                   coef_1,      & !< coef. for prognostic equation
     946                   coef_2,      & !< coef. for prognostic equation
     947                   f_qsws,      & !< factor for qsws_eb
     948                   f_qsws_veg,  & !< factor for qsws_veg_eb
     949                   f_qsws_soil, & !< factor for qsws_soil_eb
     950                   f_qsws_liq,  & !< factor for qsws_liq_eb
     951                   f_shf,       & !< factor for shf_eb
     952                   lambda_surface, & !< Current value of lambda_surface
     953                   m_liq_eb_max   !< maxmimum value of the liq. water reservoir
    958954
    959955
     
    13081304! Description:
    13091305! ------------
    1310 !
    1311 ! Soil model as part of the land surface model. The model predicts soil
    1312 ! temperature and water content.
     1306!> Soil model as part of the land surface model. The model predicts soil
     1307!> temperature and water content.
    13131308!------------------------------------------------------------------------------!
    13141309    SUBROUTINE lsm_soil_model
     
    13171312       IMPLICIT NONE
    13181313
    1319        INTEGER(iwp) ::  i   !: running index
    1320        INTEGER(iwp) ::  j   !: running index
    1321        INTEGER(iwp) ::  k   !: running index
    1322 
    1323        REAL(wp)     :: h_vg !: Van Genuchten coef. h
    1324 
    1325        REAL(wp), DIMENSION(nzb_soil:nzt_soil) :: gamma_temp,  & !: temp. gamma
    1326                                                lambda_temp, & !: temp. lambda
    1327                                                tend           !: tendency
     1314       INTEGER(iwp) ::  i   !< running index
     1315       INTEGER(iwp) ::  j   !< running index
     1316       INTEGER(iwp) ::  k   !< running index
     1317
     1318       REAL(wp)     :: h_vg !< Van Genuchten coef. h
     1319
     1320       REAL(wp), DIMENSION(nzb_soil:nzt_soil) :: gamma_temp,  & !< temp. gamma
     1321                                               lambda_temp, & !< temp. lambda
     1322                                               tend           !< tendency
    13281323
    13291324       DO i = nxlg, nxrg   
     
    15641559! Description:
    15651560! ------------
    1566 ! Calculation of specific humidity of the surface layer (surface)
     1561!> Calculation of specific humidity of the surface layer (surface)
    15671562!------------------------------------------------------------------------------!
    15681563    SUBROUTINE calc_q_surface
     
    15701565       IMPLICIT NONE
    15711566
    1572        INTEGER :: i              !: running index
    1573        INTEGER :: j              !: running index
    1574        INTEGER :: k              !: running index
    1575        REAL(wp) :: resistance    !: aerodynamic and soil resistance term
     1567       INTEGER :: i              !< running index
     1568       INTEGER :: j              !< running index
     1569       INTEGER :: k              !< running index
     1570       REAL(wp) :: resistance    !< aerodynamic and soil resistance term
    15761571
    15771572       DO i = nxlg, nxrg   
     
    16051600! Description:
    16061601! ------------
    1607 ! Swapping of timelevels
     1602!> Swapping of timelevels
    16081603!------------------------------------------------------------------------------!
    16091604    SUBROUTINE lsm_swap_timelevel ( mod_count )
Note: See TracChangeset for help on using the changeset viewer.