Changeset 2475 for palm


Ignore:
Timestamp:
Sep 18, 2017 7:42:36 AM (7 years ago)
Author:
maronga
Message:

bugfix in land surface model

File:
1 edited

Legend:

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

    r2354 r2475  
    2525! -----------------
    2626! $Id$
     27! Bugfix: setting of vegetation_pars for bare soil corrected.
     28!
     29! 2354 2017-08-17 10:49:36Z schwenkel
    2730! minor bugfixes
    2831!
     
    278281
    279282    USE radiation_model_mod,                                                   &
    280         ONLY:  albedo, albedo_type, emissivity, force_radiation_call, rad_net,         &
     283        ONLY:  albedo, albedo_type, emissivity, force_radiation_call, rad_net, &
    281284               rad_sw_in, rad_lw_out, rad_lw_out_change_0, radiation_scheme,   &
    282285               unscheduled_radiation_calls
     
    399402
    400403                                           
    401     REAL(wp), DIMENSION(0:20)  ::  root_fraction = 9999999.9_wp,               & !< (NAMELIST) distribution of root surface area to the individual soil layers
    402                                    soil_moisture = 0.0_wp,                     & !< NAMELIST soil moisture content (m3/m3)
    403                                    soil_temperature = 300.0_wp,                & !< NAMELIST soil temperature (K) +1
    404                                    dz_soil  = 9999999.9_wp,                    & !< (NAMELIST) soil layer depths (spacing)
    405                                    zs_layer = 9999999.9_wp                       !< soil layer depths (edge)
     404    REAL(wp), DIMENSION(0:20)  ::  root_fraction = 9999999.9_wp, & !< (NAMELIST) distribution of root surface area to the individual soil layers
     405                                   soil_moisture = 0.0_wp,       & !< NAMELIST soil moisture content (m3/m3)
     406                                   soil_temperature = 300.0_wp,  & !< NAMELIST soil temperature (K) +1
     407                                   dz_soil  = 9999999.9_wp,      & !< (NAMELIST) soil layer depths (spacing)
     408                                   zs_layer = 9999999.9_wp         !< soil layer depths (edge)
    406409                                 
    407410#if defined( __nopointer )
     
    412415
    413416    TYPE(surf_type_lsm), DIMENSION(0:3), TARGET  ::  &
    414                                      t_soil_v,    & !< Soil temperature (K), vertical surface elements
    415                                      t_soil_v_p,  & !< Prog. soil temperature (K), vertical surface elements
    416                                      m_soil_v,    & !< Soil moisture (m3/m3), vertical surface elements
    417                                      m_soil_v_p     !< Prog. soil moisture (m3/m3), vertical surface elements
     417                                     t_soil_v,       & !< Soil temperature (K), vertical surface elements
     418                                     t_soil_v_p,     & !< Prog. soil temperature (K), vertical surface elements
     419                                     m_soil_v,       & !< Soil moisture (m3/m3), vertical surface elements
     420                                     m_soil_v_p        !< Prog. soil moisture (m3/m3), vertical surface elements
    418421#else
    419422    TYPE(surf_type_lsm), POINTER ::  t_soil_h,    & !< Soil temperature (K), horizontal surface elements
     
    449452                                      t_surface_v,    & !< surface temperature (K), vertical surface elements
    450453                                      t_surface_v_p,  & !< progn. surface temperature (K), vertical surface elements
    451                                       m_liq_v,     & !< liquid water reservoir (m), vertical surface elements
    452                                       m_liq_v_p      !< progn. liquid water reservoir (m), vertical surface elements
     454                                      m_liq_v,        & !< liquid water reservoir (m), vertical surface elements
     455                                      m_liq_v_p         !< progn. liquid water reservoir (m), vertical surface elements
    453456#else
    454457    TYPE(surf_type_lsm), POINTER  ::  t_surface_h,    & !< surface temperature (K), horizontal surface elements
    455458                                      t_surface_h_p,  & !< progn. surface temperature (K), horizontal surface elements
    456                                       m_liq_h,     & !< liquid water reservoir (m), horizontal surface elements
    457                                       m_liq_h_p      !< progn. liquid water reservoir (m), horizontal surface elements
     459                                      m_liq_h,        & !< liquid water reservoir (m), horizontal surface elements
     460                                      m_liq_h_p         !< progn. liquid water reservoir (m), horizontal surface elements
    458461
    459462    TYPE(surf_type_lsm), TARGET   ::  t_surface_h_1,  & !<
    460463                                      t_surface_h_2,  & !<
    461                                       m_liq_h_1,   & !<
    462                                       m_liq_h_2      !<
     464                                      m_liq_h_1,      & !<
     465                                      m_liq_h_2         !<
    463466
    464467    TYPE(surf_type_lsm), DIMENSION(:), POINTER  ::    &
    465468                                      t_surface_v,    & !< surface temperature (K), vertical surface elements
    466469                                      t_surface_v_p,  & !< progn. surface temperature (K), vertical surface elements
    467                                       m_liq_v,     & !< liquid water reservoir (m), vertical surface elements
    468                                       m_liq_v_p      !< progn. liquid water reservoir (m), vertical surface elements
     470                                      m_liq_v,        & !< liquid water reservoir (m), vertical surface elements
     471                                      m_liq_v_p         !< progn. liquid water reservoir (m), vertical surface elements
    469472
    470473    TYPE(surf_type_lsm), DIMENSION(0:3), TARGET   ::  &
    471474                                      t_surface_v_1,  & !<
    472475                                      t_surface_v_2,  & !<
    473                                       m_liq_v_1,   & !<
    474                                       m_liq_v_2      !<
     476                                      m_liq_v_1,      & !<
     477                                      m_liq_v_2         !<
    475478#endif
    476479
     
    489492#endif
    490493
    491     TYPE(surf_type_lsm), TARGET ::  tm_liq_h_m   !< liquid water reservoir tendency (m), horizontal surface elements
     494    TYPE(surf_type_lsm), TARGET ::  tm_liq_h_m      !< liquid water reservoir tendency (m), horizontal surface elements
    492495    TYPE(surf_type_lsm), TARGET ::  tt_surface_h_m  !< surface temperature tendency (K), horizontal surface elements
    493496    TYPE(surf_type_lsm), TARGET ::  tt_soil_h_m     !< t_soil storage array, horizontal surface elements
    494497    TYPE(surf_type_lsm), TARGET ::  tm_soil_h_m     !< m_soil storage array, horizontal surface elements
    495498
    496     TYPE(surf_type_lsm), DIMENSION(0:3), TARGET ::  tm_liq_v_m   !< liquid water reservoir tendency (m), vertical surface elements
     499    TYPE(surf_type_lsm), DIMENSION(0:3), TARGET ::  tm_liq_v_m      !< liquid water reservoir tendency (m), vertical surface elements
    497500    TYPE(surf_type_lsm), DIMENSION(0:3), TARGET ::  tt_surface_v_m  !< surface temperature tendency (K), vertical surface elements
    498501    TYPE(surf_type_lsm), DIMENSION(0:3), TARGET ::  tt_soil_v_m     !< t_soil storage array, vertical surface elements
     
    502505!-- Energy balance variables               
    503506    REAL(wp), DIMENSION(:,:), ALLOCATABLE :: &
    504               c_liq_av,         & !< average of c_liq
    505               c_soil_av,        & !< average of c_soil
    506               c_veg_av,         & !< average of c_veg
    507               ghf_av,        & !< average of ghf
    508               lai_av,           & !< average of lai
    509               qsws_liq_av,   & !< average of qsws_liq
    510               qsws_soil_av,  & !< average of qsws_soil
    511               qsws_veg_av,   & !< average of qsws_veg
    512               r_a_av,           & !< average of r_a
    513               r_s_av              !< average of r_s
     507              c_liq_av,     & !< average of c_liq
     508              c_soil_av,    & !< average of c_soil
     509              c_veg_av,     & !< average of c_veg
     510              ghf_av,       & !< average of ghf
     511              lai_av,       & !< average of lai
     512              qsws_liq_av,  & !< average of qsws_liq
     513              qsws_soil_av, & !< average of qsws_soil
     514              qsws_veg_av,  & !< average of qsws_veg
     515              r_a_av,       & !< average of r_a
     516              r_s_av          !< average of r_s
    514517                   
    515518
     
    517520!-- Predefined Land surface classes (vegetation_type)
    518521    CHARACTER(26), DIMENSION(0:18), PARAMETER :: vegetation_type_name = (/ &
    519                                    'user defined              ',           & !  0
    520                                    'bare soil                 ',           & !  1                           
    521                                    'crops, mixed farming      ',           & !  2
    522                                    'short grass               ',           & !  3
    523                                    'evergreen needleleaf trees',           & !  4
    524                                    'deciduous needleleaf trees',           & !  5
    525                                    'evergreen broadleaf trees ',           & !  6
    526                                    'deciduous broadleaf trees ',           & !  7
    527                                    'tall grass                ',           & !  8
    528                                    'desert                    ',           & !  9
    529                                    'tundra                    ',           & ! 10
    530                                    'irrigated crops           ',           & ! 11
    531                                    'semidesert                ',           & ! 12
    532                                    'ice caps and glaciers     ',           & ! 13
    533                                    'bogs and marshes          ',           & ! 14
    534                                    'evergreen shrubs          ',           & ! 15
    535                                    'deciduous shrubs          ',           & ! 16
    536                                    'mixed forest/woodland     ',           & ! 17
    537                                    'interrupted forest        '            & ! 18
     522                                   'user defined              ', & !  0
     523                                   'bare soil                 ', & !  1                           
     524                                   'crops, mixed farming      ', & !  2
     525                                   'short grass               ', & !  3
     526                                   'evergreen needleleaf trees', & !  4
     527                                   'deciduous needleleaf trees', & !  5
     528                                   'evergreen broadleaf trees ', & !  6
     529                                   'deciduous broadleaf trees ', & !  7
     530                                   'tall grass                ', & !  8
     531                                   'desert                    ', & !  9
     532                                   'tundra                    ', & ! 10
     533                                   'irrigated crops           ', & ! 11
     534                                   'semidesert                ', & ! 12
     535                                   'ice caps and glaciers     ', & ! 13
     536                                   'bogs and marshes          ', & ! 14
     537                                   'evergreen shrubs          ', & ! 15
     538                                   'deciduous shrubs          ', & ! 16
     539                                   'mixed forest/woodland     ', & ! 17
     540                                   'interrupted forest        '  & ! 18
    538541                                                                 /)
    539542
     
    541544!-- Soil model classes (soil_type)
    542545    CHARACTER(12), DIMENSION(0:6), PARAMETER :: soil_type_name = (/ &
    543                                    'user defined',                  & ! 0
    544                                    'coarse      ',                  & ! 1
    545                                    'medium      ',                  & ! 2
    546                                    'medium-fine ',                  & ! 3
    547                                    'fine        ',                  & ! 4
    548                                    'very fine   ',                  & ! 5
    549                                    'organic     '                   & ! 6
     546                                   'user defined', & ! 0
     547                                   'coarse      ', & ! 1
     548                                   'medium      ', & ! 2
     549                                   'medium-fine ', & ! 3
     550                                   'fine        ', & ! 4
     551                                   'very fine   ', & ! 5
     552                                   'organic     '  & ! 6
    550553                                                                 /)
    551554
     
    553556!-- Pavement classes
    554557    CHARACTER(20), DIMENSION(0:7), PARAMETER :: pavement_type_name = (/ &
    555                                    'user defined        ',          & ! 0
    556                                    'asphalt             ',          & ! 1
    557                                    'concrete            ',          & ! 2
    558                                    'asphalt/concrete mix',          & ! 3
    559                                    'brick pavers        ',          & ! 4
    560                                    'cobblestone pavers  ',          & ! 5
    561                                    'sett pavers         ',          & ! 6
    562                                    'gravel pavers       '           & ! 7
     558                                   'user defined        ', & ! 0
     559                                   'asphalt             ', & ! 1
     560                                   'concrete            ', & ! 2
     561                                   'asphalt/concrete mix', & ! 3
     562                                   'brick pavers        ', & ! 4
     563                                   'cobblestone pavers  ', & ! 5
     564                                   'sett pavers         ', & ! 6
     565                                   'gravel pavers       '  & ! 7
    563566                                                                 /)                                                                 
    564567                                                                 
     
    566569!-- Water classes
    567570    CHARACTER(12), DIMENSION(0:5), PARAMETER :: water_type_name = (/ &
    568                                    'user defined',                   & ! 0
    569                                    'lake        ',                   & ! 1
    570                                    'river       ',                   & ! 2
    571                                    'ocean       ',                   & ! 3
    572                                    'pond        ',                   & ! 4
    573                                    'fountain    '                    & ! 5
     571                                   'user defined', & ! 0
     572                                   'lake        ', & ! 1
     573                                   'river       ', & ! 2
     574                                   'ocean       ', & ! 3
     575                                   'pond        ', & ! 4
     576                                   'fountain    '  & ! 5
    574577                                                                  /)                                                                 
    575578                                                                 
     
    581584!-- r_canopy_min,     lai,   c_veg,     g_d         z0,         z0h, lambda_s_s, lambda_s_u, f_sw_in,  c_surface, albedo_type, emissivity
    582585    REAL(wp), DIMENSION(0:11,1:18), PARAMETER :: vegetation_pars = RESHAPE( (/ &
    583           0.0_wp, 0.00_wp, 1.00_wp, 0.00_wp,  0.005_wp,   0.5E-4_wp,     0.0_wp,    0.0_wp, 0.00_wp, 0.00_wp,  0.0_wp, 0.94_wp, & !  1
     586          0.0_wp, 0.00_wp, 0.00_wp, 0.00_wp,  0.005_wp,   0.5E-4_wp,     0.0_wp,    0.0_wp, 0.00_wp, 0.00_wp, 18.0_wp, 0.94_wp, & !  1
    584587        180.0_wp, 3.00_wp, 1.00_wp, 0.00_wp,   0.10_wp,    0.001_wp,    10.0_wp,   10.0_wp, 0.05_wp, 0.00_wp,  2.0_wp, 0.95_wp, & !  2
    585588        110.0_wp, 2.00_wp, 1.00_wp, 0.00_wp,   0.03_wp,   0.3E-4_wp,    10.0_wp,   10.0_wp, 0.05_wp, 0.00_wp,  2.0_wp, 0.95_wp, & !  3
     
    606609!--                                level 1 - level 4 according to zs_ref
    607610    REAL(wp), DIMENSION(0:3,1:18), PARAMETER :: root_distribution = RESHAPE( (/ &
    608                                  1.00_wp, 0.00_wp, 0.00_wp, 0.00_wp,            & !  1
    609                                  0.24_wp, 0.41_wp, 0.31_wp, 0.04_wp,            & !  2
    610                                  0.35_wp, 0.38_wp, 0.23_wp, 0.04_wp,            & !  3
    611                                  0.26_wp, 0.39_wp, 0.29_wp, 0.06_wp,            & !  4
    612                                  0.26_wp, 0.38_wp, 0.29_wp, 0.07_wp,            & !  5
    613                                  0.24_wp, 0.38_wp, 0.31_wp, 0.07_wp,            & !  6
    614                                  0.25_wp, 0.34_wp, 0.27_wp, 0.14_wp,            & !  7
    615                                  0.27_wp, 0.27_wp, 0.27_wp, 0.09_wp,            & !  8
    616                                  1.00_wp, 0.00_wp, 0.00_wp, 0.00_wp,            & !  9
    617                                  0.47_wp, 0.45_wp, 0.08_wp, 0.00_wp,            & ! 10
    618                                  0.24_wp, 0.41_wp, 0.31_wp, 0.04_wp,            & ! 11
    619                                  0.17_wp, 0.31_wp, 0.33_wp, 0.19_wp,            & ! 12
    620                                  0.00_wp, 0.00_wp, 0.00_wp, 0.00_wp,            & ! 13
    621                                  0.25_wp, 0.34_wp, 0.27_wp, 0.11_wp,            & ! 14
    622                                  0.23_wp, 0.36_wp, 0.30_wp, 0.11_wp,            & ! 15
    623                                  0.23_wp, 0.36_wp, 0.30_wp, 0.11_wp,            & ! 16
    624                                  0.19_wp, 0.35_wp, 0.36_wp, 0.10_wp,            & ! 17
    625                                  0.19_wp, 0.35_wp, 0.36_wp, 0.10_wp             & ! 18
     611                                 1.00_wp, 0.00_wp, 0.00_wp, 0.00_wp, & !  1
     612                                 0.24_wp, 0.41_wp, 0.31_wp, 0.04_wp, & !  2
     613                                 0.35_wp, 0.38_wp, 0.23_wp, 0.04_wp, & !  3
     614                                 0.26_wp, 0.39_wp, 0.29_wp, 0.06_wp, & !  4
     615                                 0.26_wp, 0.38_wp, 0.29_wp, 0.07_wp, & !  5
     616                                 0.24_wp, 0.38_wp, 0.31_wp, 0.07_wp, & !  6
     617                                 0.25_wp, 0.34_wp, 0.27_wp, 0.14_wp, & !  7
     618                                 0.27_wp, 0.27_wp, 0.27_wp, 0.09_wp, & !  8
     619                                 1.00_wp, 0.00_wp, 0.00_wp, 0.00_wp, & !  9
     620                                 0.47_wp, 0.45_wp, 0.08_wp, 0.00_wp, & ! 10
     621                                 0.24_wp, 0.41_wp, 0.31_wp, 0.04_wp, & ! 11
     622                                 0.17_wp, 0.31_wp, 0.33_wp, 0.19_wp, & ! 12
     623                                 0.00_wp, 0.00_wp, 0.00_wp, 0.00_wp, & ! 13
     624                                 0.25_wp, 0.34_wp, 0.27_wp, 0.11_wp, & ! 14
     625                                 0.23_wp, 0.36_wp, 0.30_wp, 0.11_wp, & ! 15
     626                                 0.23_wp, 0.36_wp, 0.30_wp, 0.11_wp, & ! 16
     627                                 0.19_wp, 0.35_wp, 0.36_wp, 0.10_wp, & ! 17
     628                                 0.19_wp, 0.35_wp, 0.36_wp, 0.10_wp  & ! 18
    626629                                 /), (/ 4, 18 /) )
    627630
     
    630633
    631634!
    632 !-- Soil parameters             alpha_vg,      l_vg,    n_vg, gamma_w_sat,    m_sat,     m_fc,   m_wilt,    m_res
     635!-- Soil parameters  alpha_vg,      l_vg,    n_vg, gamma_w_sat,    m_sat,     m_fc,   m_wilt,    m_res
    633636    REAL(wp), DIMENSION(0:7,1:6), PARAMETER :: soil_pars = RESHAPE( (/     &
    634                                  3.83_wp,  1.250_wp, 1.38_wp,  6.94E-6_wp, 0.403_wp, 0.244_wp, 0.059_wp, 0.025_wp,& ! 1
    635                                  3.14_wp, -2.342_wp, 1.28_wp,  1.16E-6_wp, 0.439_wp, 0.347_wp, 0.151_wp, 0.010_wp,& ! 2
    636                                  0.83_wp, -0.588_wp, 1.25_wp,  0.26E-6_wp, 0.430_wp, 0.383_wp, 0.133_wp, 0.010_wp,& ! 3
    637                                  3.67_wp, -1.977_wp, 1.10_wp,  2.87E-6_wp, 0.520_wp, 0.448_wp, 0.279_wp, 0.010_wp,& ! 4
    638                                  2.65_wp,  2.500_wp, 1.10_wp,  1.74E-6_wp, 0.614_wp, 0.541_wp, 0.335_wp, 0.010_wp,& ! 5
    639                                  1.30_wp,  0.400_wp, 1.20_wp,  0.93E-6_wp, 0.766_wp, 0.663_wp, 0.267_wp, 0.010_wp & ! 6
    640                                  /), (/ 8, 6 /) )
     637                      3.83_wp,  1.250_wp, 1.38_wp,  6.94E-6_wp, 0.403_wp, 0.244_wp, 0.059_wp, 0.025_wp,& ! 1
     638                      3.14_wp, -2.342_wp, 1.28_wp,  1.16E-6_wp, 0.439_wp, 0.347_wp, 0.151_wp, 0.010_wp,& ! 2
     639                      0.83_wp, -0.588_wp, 1.25_wp,  0.26E-6_wp, 0.430_wp, 0.383_wp, 0.133_wp, 0.010_wp,& ! 3
     640                      3.67_wp, -1.977_wp, 1.10_wp,  2.87E-6_wp, 0.520_wp, 0.448_wp, 0.279_wp, 0.010_wp,& ! 4
     641                      2.65_wp,  2.500_wp, 1.10_wp,  1.74E-6_wp, 0.614_wp, 0.541_wp, 0.335_wp, 0.010_wp,& ! 5
     642                      1.30_wp,  0.400_wp, 1.20_wp,  0.93E-6_wp, 0.766_wp, 0.663_wp, 0.267_wp, 0.010_wp & ! 6
     643                                                                     /), (/ 8, 6 /) )
    641644
    642645!
     
    644647!-- Pavement parameters  depth,        z0,       z0h, lambda_h,      rho_c, albedo_type, emissivity 
    645648    REAL(wp), DIMENSION(0:6,1:7), PARAMETER :: pavement_pars = RESHAPE( (/ &
    646                       0.050_wp, 1.0E-4_wp, 1.0E-5_wp,  1.00_wp,  1.94E6_wp, 17.0_wp, 0.97_wp, & ! 1
     649                      0.050_wp, 1.0E-4_wp, 1.0E-5_wp,  1.00_wp,  1.94E6_wp, 17.0_wp, 0.97_wp,  & ! 1
    647650                      0.050_wp, 1.0E-4_wp, 1.0E-5_wp,  1.00_wp,  1.94E6_wp, 18.0_wp, 0.94_wp,  & ! 2
    648651                      0.050_wp, 1.0E-4_wp, 1.0E-5_wp,  1.00_wp,  1.94E6_wp, 19.0_wp, 0.98_wp,  & ! 3                                 
     
    650653                      0.050_wp, 1.0E-4_wp, 1.0E-5_wp,  1.00_wp,  1.94E6_wp, 21.0_wp, 0.97_wp,  & ! 5
    651654                      0.050_wp, 1.0E-4_wp, 1.0E-5_wp,  1.00_wp,  1.94E6_wp, 22.0_wp, 0.97_wp,  & ! 6
    652                       0.050_wp, 1.0E-4_wp, 1.0E-5_wp,  1.00_wp,  1.94E6_wp, 23.0_wp, 0.97_wp  & ! 7
     655                      0.050_wp, 1.0E-4_wp, 1.0E-5_wp,  1.00_wp,  1.94E6_wp, 23.0_wp, 0.97_wp   & ! 7
    653656                                                                 /), (/ 7, 7 /) )                             
    654657
    655658!
    656659!-- TO BE FILLED
    657 !-- Water parameters                    temperature,     z0,      z0h, albedo_type, emissivity,
     660!-- Water parameters  temperature,     z0,      z0h, albedo_type, emissivity,
    658661    REAL(wp), DIMENSION(0:4,1:5), PARAMETER :: water_pars = RESHAPE( (/ &
    659                                            283.0_wp, 0.01_wp, 0.001_wp, 1.0_wp, 0.99_wp, & ! 1
    660                                            283.0_wp, 0.01_wp, 0.001_wp, 1.0_wp, 0.99_wp, & ! 2
    661                                            283.0_wp, 0.01_wp, 0.001_wp, 1.0_wp, 0.99_wp, & ! 3
    662                                            283.0_wp, 0.01_wp, 0.001_wp, 1.0_wp, 0.99_wp, & ! 4
    663                                            283.0_wp, 0.01_wp, 0.001_wp, 1.0_wp, 0.99_wp  & ! 5
     662                         283.0_wp, 0.01_wp, 0.001_wp, 1.0_wp, 0.99_wp, & ! 1
     663                         283.0_wp, 0.01_wp, 0.001_wp, 1.0_wp, 0.99_wp, & ! 2
     664                         283.0_wp, 0.01_wp, 0.001_wp, 1.0_wp, 0.99_wp, & ! 3
     665                         283.0_wp, 0.01_wp, 0.001_wp, 1.0_wp, 0.99_wp, & ! 4
     666                         283.0_wp, 0.01_wp, 0.001_wp, 1.0_wp, 0.99_wp  & ! 5
    664667                                                                /), (/ 5, 5 /) )                                                                     
    665668                                                                                                                                     
     
    764767 
    765768 
    766     USE control_parameters,                                                 &
     769    USE control_parameters,                                                    &
    767770        ONLY:  data_output, message_string
    768771
    769772    IMPLICIT NONE
    770773
    771     CHARACTER (LEN=*) ::  unit     !<
    772     CHARACTER (LEN=*) ::  var !<
     774    CHARACTER (LEN=*) ::  unit  !<
     775    CHARACTER (LEN=*) ::  var   !<
    773776
    774777    INTEGER(iwp) :: i
     
    780783       CASE ( 'm_soil' )
    781784          IF (  .NOT.  land_surface )  THEN
    782              message_string = 'output of "' // TRIM( var ) // '" requi' //  &
     785             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    783786                      'res land_surface = .TRUE.'
    784787             CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
     
    788791       CASE ( 't_soil' )
    789792          IF (  .NOT.  land_surface )  THEN
    790              message_string = 'output of "' // TRIM( var ) // '" requi' //  &
     793             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    791794                      'res land_surface = .TRUE.'
    792795             CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
     
    794797          unit = 'K'   
    795798             
    796        CASE ( 'lai*', 'c_liq*', 'c_soil*', 'c_veg*', 'ghf*', 'm_liq*',&
    797               'qsws_liq*', 'qsws_soil*', 'qsws_veg*',  &
     799       CASE ( 'lai*', 'c_liq*', 'c_soil*', 'c_veg*', 'ghf*', 'm_liq*',         &
     800              'qsws_liq*', 'qsws_soil*', 'qsws_veg*',                          &
    798801              'r_a*', 'r_s*' )
    799802          IF ( k == 0  .OR.  data_output(i)(ilen-2:ilen) /= '_xy' )  THEN
    800              message_string = 'illegal value for data_output: "' //         &
    801                               TRIM( var ) // '" & only 2d-horizontal ' //   &
     803             message_string = 'illegal value for data_output: "' //            &
     804                              TRIM( var ) // '" & only 2d-horizontal ' //      &
    802805                              'cross sections are allowed for this value'
    803806             CALL message( 'check_parameters', 'PA0111', 1, 2, 0, 6, 0 )
    804807          ENDIF
    805808          IF ( TRIM( var ) == 'lai*'  .AND.  .NOT.  land_surface )  THEN
    806              message_string = 'output of "' // TRIM( var ) // '" requi' //  &
     809             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    807810                              'res land_surface = .TRUE.'
    808811             CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
    809812          ENDIF
    810813          IF ( TRIM( var ) == 'c_liq*'  .AND.  .NOT.  land_surface )  THEN
    811              message_string = 'output of "' // TRIM( var ) // '" requi' //  &
     814             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    812815                              'res land_surface = .TRUE.'
    813816             CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
    814817          ENDIF
    815818          IF ( TRIM( var ) == 'c_soil*'  .AND.  .NOT.  land_surface )  THEN
    816              message_string = 'output of "' // TRIM( var ) // '" requi' //  &
     819             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    817820                              'res land_surface = .TRUE.'
    818821             CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
    819822          ENDIF
    820823          IF ( TRIM( var ) == 'c_veg*'  .AND.  .NOT. land_surface )  THEN
    821              message_string = 'output of "' // TRIM( var ) // '" requi' //  &
     824             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    822825                              'res land_surface = .TRUE.'
    823826             CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
    824827          ENDIF
    825828          IF ( TRIM( var ) == 'ghf*'  .AND.  .NOT.  land_surface )  THEN
    826              message_string = 'output of "' // TRIM( var ) // '" requi' //  &
     829             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    827830                              'res land_surface = .TRUE.'
    828831             CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
    829832          ENDIF
    830833          IF ( TRIM( var ) == 'm_liq*'  .AND.  .NOT.  land_surface )  THEN
    831              message_string = 'output of "' // TRIM( var ) // '" requi' //  &
     834             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    832835                              'res land_surface = .TRUE.'
    833836             CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
    834837          ENDIF
    835           IF ( TRIM( var ) == 'qsws_liq*'  .AND.  .NOT. land_surface )   &
     838          IF ( TRIM( var ) == 'qsws_liq*'  .AND.  .NOT. land_surface )         &
    836839          THEN
    837              message_string = 'output of "' // TRIM( var ) // '" requi' //  &
     840             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    838841                              'res land_surface = .TRUE.'
    839842             CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
    840843          ENDIF
    841           IF ( TRIM( var ) == 'qsws_soil*'  .AND.  .NOT.  land_surface ) &
     844          IF ( TRIM( var ) == 'qsws_soil*'  .AND.  .NOT.  land_surface )       &
    842845          THEN
    843              message_string = 'output of "' // TRIM( var ) // '" requi' //  &
     846             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    844847                              'res land_surface = .TRUE.'
    845848             CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
    846849          ENDIF
    847           IF ( TRIM( var ) == 'qsws_veg*'  .AND.  .NOT. land_surface )   &
     850          IF ( TRIM( var ) == 'qsws_veg*'  .AND.  .NOT. land_surface )         &
    848851          THEN
    849              message_string = 'output of "' // TRIM( var ) // '" requi' //  &
     852             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    850853                              'res land_surface = .TRUE.'
    851854             CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
    852855          ENDIF
    853           IF ( TRIM( var ) == 'r_a*'  .AND.  .NOT.  land_surface ) &
     856          IF ( TRIM( var ) == 'r_a*'  .AND.  .NOT.  land_surface )             &
    854857          THEN
    855              message_string = 'output of "' // TRIM( var ) // '" requi' //  &
     858             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    856859                              'res land_surface = .TRUE.'
    857860             CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
    858861          ENDIF
    859           IF ( TRIM( var ) == 'r_s*'  .AND.  .NOT.  land_surface ) &
     862          IF ( TRIM( var ) == 'r_s*'  .AND.  .NOT.  land_surface )             &
    860863          THEN
    861              message_string = 'output of "' // TRIM( var ) // '" requi' //  &
     864             message_string = 'output of "' // TRIM( var ) // '" requi' //     &
    862865                              'res land_surface = .TRUE.'
    863866             CALL message( 'check_parameters', 'PA0404', 1, 2, 0, 6, 0 )
    864867          ENDIF
    865868
    866           IF ( TRIM( var ) == 'lai*'   )  unit = 'none'
    867           IF ( TRIM( var ) == 'c_liq*' )  unit = 'none'
    868           IF ( TRIM( var ) == 'c_soil*')  unit = 'none'
    869           IF ( TRIM( var ) == 'c_veg*' )  unit = 'none'
    870           IF ( TRIM( var ) == 'ghf*')  unit = 'W/m2'
     869          IF ( TRIM( var ) == 'lai*'   )      unit = 'none'
     870          IF ( TRIM( var ) == 'c_liq*' )      unit = 'none'
     871          IF ( TRIM( var ) == 'c_soil*')      unit = 'none'
     872          IF ( TRIM( var ) == 'c_veg*' )      unit = 'none'
     873          IF ( TRIM( var ) == 'ghf*')         unit = 'W/m2'
    871874          IF ( TRIM( var ) == 'm_liq*'     )  unit = 'm'
    872           IF ( TRIM( var ) == 'qsws_liq*'  ) unit = 'W/m2'
    873           IF ( TRIM( var ) == 'qsws_soil*' ) unit = 'W/m2'
    874           IF ( TRIM( var ) == 'qsws_veg*'  ) unit = 'W/m2'
    875           IF ( TRIM( var ) == 'r_a*')     unit = 's/m'     
    876           IF ( TRIM( var ) == 'r_s*')     unit = 's/m'
     875          IF ( TRIM( var ) == 'qsws_liq*'  )  unit = 'W/m2'
     876          IF ( TRIM( var ) == 'qsws_soil*' )  unit = 'W/m2'
     877          IF ( TRIM( var ) == 'qsws_veg*'  )  unit = 'W/m2'
     878          IF ( TRIM( var ) == 'r_a*')         unit = 's/m'     
     879          IF ( TRIM( var ) == 'r_s*')         unit = 's/m'
    877880             
    878881       CASE DEFAULT
     
    892895 SUBROUTINE lsm_check_data_output_pr( variable, var_count, unit, dopr_unit )
    893896 
    894     USE control_parameters,                                                 &
     897    USE control_parameters,                                                    &
    895898        ONLY:  data_output_pr, message_string
    896899
     
    914917       CASE ( 't_soil', '#t_soil' )
    915918          IF (  .NOT.  land_surface )  THEN
    916              message_string = 'data_output_pr = ' //                        &
    917                               TRIM( data_output_pr(var_count) ) // ' is' // &
     919             message_string = 'data_output_pr = ' //                           &
     920                              TRIM( data_output_pr(var_count) ) // ' is' //    &
    918921                              'not implemented for land_surface = .FALSE.'
    919922             CALL message( 'check_parameters', 'PA0402', 1, 2, 0, 6, 0 )
     
    932935       CASE ( 'm_soil', '#m_soil' )
    933936          IF (  .NOT.  land_surface )  THEN
    934              message_string = 'data_output_pr = ' //                        &
    935                               TRIM( data_output_pr(var_count) ) // ' is' // &
     937             message_string = 'data_output_pr = ' //                           &
     938                              TRIM( data_output_pr(var_count) ) // ' is' //    &
    936939                              ' not implemented for land_surface = .FALSE.'
    937940             CALL message( 'check_parameters', 'PA0402', 1, 2, 0, 6, 0 )
     
    983986         TRIM( surface_type ) /= 'pavement'    .AND.                           &
    984987         TRIM( surface_type ) /= 'water'       .AND.                           &
    985          TRIM( surface_type ) /= 'netcdf' )  THEN 
    986           message_string = 'unknown surface type surface_type = "' //     &
     988         TRIM( surface_type ) /= 'netcdf' )  THEN
     989          message_string = 'unknown surface type surface_type = "' //          &
    987990                        TRIM( surface_type ) // '"'
    988991                CALL message( 'check_parameters', 'PA0019', 1, 2, 0, 6, 0 )
     
    10101013       IF ( vegetation_type == 0 )  THEN
    10111014          IF ( min_canopy_resistance == 9999999.9_wp )  THEN
    1012              message_string = 'vegetation_type = 0 (user defined)'//              &
    1013                               'requires setting of min_canopy_resistance'//       &
     1015             message_string = 'vegetation_type = 0 (user defined)'//           &
     1016                              'requires setting of min_canopy_resistance'//    &
    10141017                              '/= 9999999.9'
    10151018             CALL message( 'check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
     
    10171020
    10181021          IF ( leaf_area_index == 9999999.9_wp )  THEN
    1019              message_string = 'vegetation_type = 0 (user_defined)'//              &
    1020                               'requires setting of leaf_area_index'//             &
     1022             message_string = 'vegetation_type = 0 (user_defined)'//           &
     1023                              'requires setting of leaf_area_index'//          &
    10211024                              '/= 9999999.9'
    10221025             CALL message( 'check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
     
    10241027
    10251028          IF ( vegetation_coverage == 9999999.9_wp )  THEN
    1026              message_string = 'vegetation_type = 0 (user_defined)'//              &
    1027                               'requires setting of vegetation_coverage'//         &
     1029             message_string = 'vegetation_type = 0 (user_defined)'//           &
     1030                              'requires setting of vegetation_coverage'//      &
    10281031                              '/= 9999999.9'
    10291032                CALL message( 'check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
     
    10311034
    10321035          IF ( canopy_resistance_coefficient == 9999999.9_wp)  THEN
    1033              message_string = 'vegetation_type = 0 (user_defined)'//              &
    1034                               'requires setting of'//                             &
     1036             message_string = 'vegetation_type = 0 (user_defined)'//           &
     1037                              'requires setting of'//                          &
    10351038                              'canopy_resistance_coefficient /= 9999999.9'
    10361039             CALL message( 'check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
     
    10381041
    10391042          IF ( lambda_surface_stable == 9999999.9_wp )  THEN
    1040              message_string = 'vegetation_type = 0 (user_defined)'//              &
    1041                               'requires setting of lambda_surface_stable'//       &
     1043             message_string = 'vegetation_type = 0 (user_defined)'//           &
     1044                              'requires setting of lambda_surface_stable'//    &
    10421045                              '/= 9999999.9'
    10431046             CALL message( 'check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
     
    10451048
    10461049          IF ( lambda_surface_unstable == 9999999.9_wp )  THEN
    1047              message_string = 'vegetation_type = 0 (user_defined)'//              &
    1048                               'requires setting of lambda_surface_unstable'//     &
     1050             message_string = 'vegetation_type = 0 (user_defined)'//           &
     1051                              'requires setting of lambda_surface_unstable'//  &
    10491052                              '/= 9999999.9'
    10501053             CALL message( 'check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
     
    10521055
    10531056          IF ( f_shortwave_incoming == 9999999.9_wp )  THEN
    1054              message_string = 'vegetation_type = 0 (user_defined)'//              &
    1055                               'requires setting of f_shortwave_incoming'//        &
     1057             message_string = 'vegetation_type = 0 (user_defined)'//           &
     1058                              'requires setting of f_shortwave_incoming'//     &
    10561059                              '/= 9999999.9'
    10571060             CALL message( 'check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
     
    10591062
    10601063          IF ( z0_vegetation == 9999999.9_wp )  THEN
    1061              message_string = 'vegetation_type = 0 (user_defined)'//              &
    1062                               'requires setting of z0_vegetation'//               &
     1064             message_string = 'vegetation_type = 0 (user_defined)'//           &
     1065                              'requires setting of z0_vegetation'//            &
    10631066                              '/= 9999999.9'
    10641067             CALL message( 'check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
     
    10661069
    10671070          IF ( z0h_vegetation == 9999999.9_wp )  THEN
    1068              message_string = 'vegetation_type = 0 (user_defined)'//              &
    1069                               'requires setting of z0h_vegetation'//              &
     1071             message_string = 'vegetation_type = 0 (user_defined)'//           &
     1072                              'requires setting of z0h_vegetation'//           &
    10701073                              '/= 9999999.9'
    10711074             CALL message( 'check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
    10721075          ENDIF
    10731076       ENDIF
    1074        
     1077     
     1078       IF ( vegetation_type == 1 )  THEN
     1079          IF ( vegetation_coverage /= 9999999.9_wp  .AND.  vegetation_coverage &
     1080               /= 0.0_wp )  THEN
     1081               message_string = 'vegetation_type = 1 (bare soil)'//            &
     1082                              ' requires vegetation_coverage = 0'//            &
     1083             CALL message( 'check_parameters', 'PA0471', 1, 2, 0, 6, 0 )
     1084          ENDIF
     1085 
    10751086    ENDIF
    10761087   
     
    11651176
    11661177       IF ( alpha_vangenuchten == 9999999.9_wp )  THEN
    1167           message_string = 'soil_type = 0 (user_defined)'//                 &
    1168                            'requires setting of alpha_vangenuchten'//       &
     1178          message_string = 'soil_type = 0 (user_defined)'//                    &
     1179                           'requires setting of alpha_vangenuchten'//          &
    11691180                           '/= 9999999.9'
    11701181          CALL message( 'check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
     
    11721183
    11731184       IF ( l_vangenuchten == 9999999.9_wp )  THEN
    1174           message_string = 'soil_type = 0 (user_defined)'//                 &
    1175                            'requires setting of l_vangenuchten'//           &
     1185          message_string = 'soil_type = 0 (user_defined)'//                    &
     1186                           'requires setting of l_vangenuchten'//              &
    11761187                           '/= 9999999.9'
    11771188          CALL message( 'check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
     
    11791190
    11801191       IF ( n_vangenuchten == 9999999.9_wp )  THEN
    1181           message_string = 'soil_type = 0 (user_defined)'//                 &
    1182                            'requires setting of n_vangenuchten'//           &
     1192          message_string = 'soil_type = 0 (user_defined)'//                    &
     1193                           'requires setting of n_vangenuchten'//              &
    11831194                           '/= 9999999.9'
    11841195          CALL message( 'check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
     
    11861197
    11871198       IF ( hydraulic_conductivity == 9999999.9_wp )  THEN
    1188           message_string = 'soil_type = 0 (user_defined)'//                 &
    1189                            'requires setting of hydraulic_conductivity'//   &
     1199          message_string = 'soil_type = 0 (user_defined)'//                    &
     1200                           'requires setting of hydraulic_conductivity'//      &
    11901201                           '/= 9999999.9'
    11911202          CALL message( 'check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
     
    11931204
    11941205       IF ( saturation_moisture == 9999999.9_wp )  THEN
    1195           message_string = 'soil_type = 0 (user_defined)'//                 &
    1196                            'requires setting of saturation_moisture'//      &
     1206          message_string = 'soil_type = 0 (user_defined)'//                    &
     1207                           'requires setting of saturation_moisture'//         &
    11971208                           '/= 9999999.9'
    11981209          CALL message( 'check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
     
    12001211
    12011212       IF ( field_capacity == 9999999.9_wp )  THEN
    1202           message_string = 'soil_type = 0 (user_defined)'//                 &
    1203                            'requires setting of field_capacity'//           &
     1213          message_string = 'soil_type = 0 (user_defined)'//                    &
     1214                           'requires setting of field_capacity'//              &
    12041215                           '/= 9999999.9'
    12051216          CALL message( 'check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
     
    12071218
    12081219       IF ( wilting_point == 9999999.9_wp )  THEN
    1209           message_string = 'soil_type = 0 (user_defined)'//                 &
    1210                            'requires setting of wilting_point'//            &
     1220          message_string = 'soil_type = 0 (user_defined)'//                    &
     1221                           'requires setting of wilting_point'//               &
    12111222                           '/= 9999999.9'
    12121223          CALL message( 'check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
     
    12141225
    12151226       IF ( residual_moisture == 9999999.9_wp )  THEN
    1216           message_string = 'soil_type = 0 (user_defined)'//                 &
    1217                            'requires setting of residual_moisture'//        &
     1227          message_string = 'soil_type = 0 (user_defined)'//                    &
     1228                           'requires setting of residual_moisture'//           &
    12181229                           '/= 9999999.9'
    12191230          CALL message( 'check_parameters', 'PA0403', 1, 2, 0, 6, 0 )
     
    12551266    DO  k = nzb_soil, nzt_soil
    12561267       IF ( soil_moisture(k) > saturation_moisture )  THEN
    1257           message_string = 'soil_moisture must not exceed its saturation' // &
     1268          message_string = 'soil_moisture must not exceed its saturation' //   &
    12581269                            ' value'
    12591270          CALL message( 'check_parameters', 'PA0458', 1, 2, 0, 6, 0 )
     
    12861297       dz_soil_center(k) = zs(k+1) - zs(k)
    12871298       IF ( dz_soil_center(k) == 0.0_wp )  THEN
    1288           message_string = 'invalid soil layer configuration found ' //     &
     1299          message_string = 'invalid soil layer configuration found ' //        &
    12891300                           '(dz_soil_center(k) = 0.0)'
    12901301          CALL message( 'lsm_read_restart_data', 'PA0140', 1, 2, 0, 6, 0 )
     
    13631374    IF ( horizontal )  THEN
    13641375       surf              => surf_lsm_h
    1365 
    13661376       surf_t_surface    => t_surface_h
    13671377       surf_t_surface_p  => t_surface_h_p
    13681378       surf_tt_surface_m => tt_surface_h_m
    1369        surf_m_liq     => m_liq_h
    1370        surf_m_liq_p   => m_liq_h_p
    1371        surf_tm_liq_m  => tm_liq_h_m
     1379       surf_m_liq        => m_liq_h
     1380       surf_m_liq_p      => m_liq_h_p
     1381       surf_tm_liq_m     => tm_liq_h_m
    13721382       surf_m_soil       => m_soil_h
    13731383       surf_t_soil       => t_soil_h
     
    13781388    ELSE
    13791389       surf              => surf_lsm_v(l)
    1380 
    13811390       surf_t_surface    => t_surface_v(l)
    13821391       surf_t_surface_p  => t_surface_v_p(l)
    13831392       surf_tt_surface_m => tt_surface_v_m(l)
    1384        surf_m_liq     => m_liq_v(l)
    1385        surf_m_liq_p   => m_liq_v_p(l)
    1386        surf_tm_liq_m  => tm_liq_v_m(l)
     1393       surf_m_liq        => m_liq_v(l)
     1394       surf_m_liq_p      => m_liq_v_p(l)
     1395       surf_tm_liq_m     => tm_liq_v_m(l)
    13871396       surf_m_soil       => m_soil_v(l)
    13881397       surf_t_soil       => t_soil_v(l)
     
    15191528!--    f1: correction for incoming shortwave radiation (stomata close at
    15201529!--    night)
    1521        f1 = MIN( 1.0_wp, ( 0.004_wp * rad_sw_in(k_rad,j+j_off,i+i_off) + 0.05_wp ) /&
    1522                         (0.81_wp * (0.004_wp * rad_sw_in(k_rad,j+j_off,i+i_off)&
    1523                          + 1.0_wp)) )
     1530       f1 = MIN( 1.0_wp, ( 0.004_wp * rad_sw_in(k_rad,j+j_off,i+i_off)         &
     1531                 + 0.05_wp ) / (0.81_wp * (0.004_wp                            &
     1532                 * rad_sw_in(k_rad,j+j_off,i+i_off) + 1.0_wp)) )
    15241533!
    15251534!--    f2: correction for soil moisture availability to plants (the
     
    15711580
    15721581
    1573        f2 = ( surf_m_soil%var_2d(nzb_soil,m) - m_min ) / ( surf%m_fc(nzb_soil,m) - m_min )
     1582       f2 = ( surf_m_soil%var_2d(nzb_soil,m) - m_min )                         &
     1583            / ( surf%m_fc(nzb_soil,m) - m_min )
    15741584       f2 = MAX( f2, 1.0E-20_wp )
    15751585       f2 = MIN( f2, 1.0_wp     )
     
    15861596       IF ( surf%pavement_surface(m) )  THEN
    15871597          m_liq_max = m_max_depth * 5.0_wp
    1588           surf%c_liq(m) = MIN( 1.0_wp, ( surf_m_liq%var_1d(m) / m_liq_max)**0.67 )
     1598          surf%c_liq(m) = MIN( 1.0_wp, (surf_m_liq%var_1d(m) / m_liq_max)**0.67 )
    15891599       ELSE
    15901600          m_liq_max = m_max_depth * ( surf%c_veg(m) * surf%lai(m)              &
     
    17061716!--    often reached, when no oscillations would occur (causes immense
    17071717!--    computing time for the radiation code).
    1708        IF ( ABS( surf_t_surface_p%var_1d(m) - surf_t_surface%var_1d(m) ) > 0.2_wp  .AND. &
    1709             unscheduled_radiation_calls )  THEN
     1718       IF ( ABS( surf_t_surface_p%var_1d(m) - surf_t_surface%var_1d(m) )       &
     1719            > 0.2_wp  .AND. unscheduled_radiation_calls )  THEN
    17101720          force_radiation_call_l = .TRUE.
    17111721       ENDIF
     
    17251735                     ( surf_t_surface_p%var_1d(m) - surf_t_surface%var_1d(m) )
    17261736
    1727        surf%ghf(m) = lambda_surface * ( surf_t_surface_p%var_1d(m)          &
     1737       surf%ghf(m) = lambda_surface * ( surf_t_surface_p%var_1d(m)             &
    17281738                                             - surf_t_soil%var_2d(nzb_soil,m) )
    17291739
     
    17321742
    17331743       IF ( humidity )  THEN
    1734           surf%qsws(m)  = - f_qsws * ( qv1 - q_s + dq_s_dt                  &
     1744          surf%qsws(m)  = - f_qsws * ( qv1 - q_s + dq_s_dt                     &
    17351745                          * surf_t_surface%var_1d(m) - dq_s_dt *               &
    17361746                            surf_t_surface_p%var_1d(m) )
    17371747
    1738           surf%qsws_veg(m)  = - f_qsws_veg  * ( qv1 - q_s                   &
     1748          surf%qsws_veg(m)  = - f_qsws_veg  * ( qv1 - q_s                      &
    17391749                              + dq_s_dt * surf_t_surface%var_1d(m) - dq_s_dt   &
    17401750                              * surf_t_surface_p%var_1d(m) )
    17411751
    1742           surf%qsws_soil(m) = - f_qsws_soil * ( qv1 - q_s                   &
     1752          surf%qsws_soil(m) = - f_qsws_soil * ( qv1 - q_s                      &
    17431753                              + dq_s_dt * surf_t_surface%var_1d(m) - dq_s_dt   &
    17441754                              * surf_t_surface_p%var_1d(m) )
    17451755
    1746           surf%qsws_liq(m)  = - f_qsws_liq  * ( qv1 - q_s                   &
     1756          surf%qsws_liq(m)  = - f_qsws_liq  * ( qv1 - q_s                      &
    17471757                              + dq_s_dt * surf_t_surface%var_1d(m) - dq_s_dt   &
    17481758                              * surf_t_surface_p%var_1d(m) )
     
    17761786!--          as runoff as qsws_soil is then not used in the soil model
    17771787             IF ( surf_m_liq%var_1d(m) /= m_liq_max )  THEN
    1778                 surf%qsws_liq(m) = surf%qsws_liq(m)                      &
     1788                surf%qsws_liq(m) = surf%qsws_liq(m)                            &
    17791789                                 + surf%c_veg(m) * prr(k+k_off,j+j_off,i+i_off)&
    17801790                                 * hyrho(k+k_off)                              &
    17811791                                 * 0.001_wp * rho_l * l_v
    17821792             ELSE
    1783                 surf%qsws_soil(m) = surf%qsws_soil(m)                    &
     1793                surf%qsws_soil(m) = surf%qsws_soil(m)                          &
    17841794                                 + surf%c_veg(m) * prr(k+k_off,j+j_off,i+i_off)&
    17851795                                 * hyrho(k+k_off)                              &
     
    17891799!--          Add precipitation to bare soil according to the bare soil
    17901800!--          coverage.
    1791              surf%qsws_soil(m) = surf%qsws_soil(m) + ( 1.0_wp            &
     1801             surf%qsws_soil(m) = surf%qsws_soil(m) + ( 1.0_wp                  &
    17921802                               - surf%c_veg(m) ) * prr(k+k_off,j+j_off,i+i_off)&
    17931803                               * hyrho(k+k_off)                                &
     
    18221832 
    18231833          tend = - surf%qsws_liq(m) * drho_l_lv
    1824           surf_m_liq_p%var_1d(m) = surf_m_liq%var_1d(m) + dt_3d *        &
     1834          surf_m_liq_p%var_1d(m) = surf_m_liq%var_1d(m) + dt_3d *              &
    18251835                                        ( tsc(2) * tend +                      &
    18261836                                          tsc(3) * surf_tm_liq_m%var_1d(m) )
     
    18411851             ELSEIF ( intermediate_timestep_count <                            &
    18421852                      intermediate_timestep_count_max )  THEN
    1843                 surf_tm_liq_m%var_1d(m) = -9.5625_wp * tend +               &
     1853                surf_tm_liq_m%var_1d(m) = -9.5625_wp * tend +                  &
    18441854                                              5.3125_wp * surf_tm_liq_m%var_1d(m)
    18451855             ENDIF
     
    24042414                t_soil_h%var_2d(nzt_soil+1,m) = soil_temperature(nzt_soil+1)
    24052415                surf_lsm_h%lambda_surface_s(m) = pavement_heat_conduct         &
    2406                                                  * ddz_soil(nzb_soil)    &
     2416                                                 * ddz_soil(nzb_soil)          &
    24072417                                                 * 2.0_wp
    24082418                surf_lsm_h%lambda_surface_u(m) = surf_lsm_h%lambda_surface_s(m)                                         
    24092419                surf_lsm_h%c_surface(m)        = pavement_heat_capacity        &
    2410                                                  * dz_soil(nzb_soil)     &
     2420                                                 * dz_soil(nzb_soil)           &
    24112421                                                 * 0.25_wp
    24122422                surf_lsm_h%lambda_h_def(m)    = pavement_heat_conduct                                     
     
    24552465
    24562466             surf_lsm_h%us(m)   = 0.1_wp
    2457              surf_lsm_h%ts(m)   = ( pt1 - surf_lsm_h%pt_surface(m) ) / surf_lsm_h%r_a(m)
    2458              surf_lsm_h%shf(m)  = - surf_lsm_h%us(m) * surf_lsm_h%ts(m) * rho_surface
     2467             surf_lsm_h%ts(m)   = ( pt1 - surf_lsm_h%pt_surface(m) )           &
     2468                                  / surf_lsm_h%r_a(m)
     2469             surf_lsm_h%shf(m)  = - surf_lsm_h%us(m) * surf_lsm_h%ts(m)        &
     2470                                  * rho_surface
    24592471
    24602472         ENDDO
     
    24912503                   ENDDO
    24922504                   t_soil_v(l)%var_2d(nzt_soil+1,m)  = soil_temperature(nzt_soil+1)
    2493                    surf_lsm_v(l)%lambda_surface_s(m) = pavement_heat_conduct      &
    2494                                                        * ddz_soil(nzb_soil) &
     2505                   surf_lsm_v(l)%lambda_surface_s(m) = pavement_heat_conduct   &
     2506                                                       * ddz_soil(nzb_soil)    &
    24952507                                                       * 2.0_wp
    24962508                   surf_lsm_v(l)%lambda_surface_u(m) = surf_lsm_v(l)%lambda_surface_s(m)
    24972509                   surf_lsm_v(l)%c_surface(m) = pavement_heat_capacity         &
    2498                                                 * dz_soil(nzb_soil)      &
     2510                                                * dz_soil(nzb_soil)            &
    24992511                                                * 0.25_wp
    25002512                   surf_lsm_v(l)%lambda_h_def(m)   = pavement_heat_conduct                                     
     
    27652777!
    27662778!--    Horizontal surfaces
    2767        ALLOCATE ( m_liq_h%var_1d(1:surf_lsm_h%ns)                     )
    2768        ALLOCATE ( m_liq_h_p%var_1d(1:surf_lsm_h%ns)                   )
     2779       ALLOCATE ( m_liq_h%var_1d(1:surf_lsm_h%ns)                        )
     2780       ALLOCATE ( m_liq_h_p%var_1d(1:surf_lsm_h%ns)                      )
    27692781       ALLOCATE ( t_surface_h%var_1d(1:surf_lsm_h%ns)                    )
    27702782       ALLOCATE ( t_surface_h_p%var_1d(1:surf_lsm_h%ns)                  )
     
    27772789!--    Vertical surfaces
    27782790       DO  l = 0, 3
    2779           ALLOCATE ( m_liq_v(l)%var_1d(1:surf_lsm_v(l)%ns)                     )
    2780           ALLOCATE ( m_liq_v_p(l)%var_1d(1:surf_lsm_v(l)%ns)                   )
     2791          ALLOCATE ( m_liq_v(l)%var_1d(1:surf_lsm_v(l)%ns)                        )
     2792          ALLOCATE ( m_liq_v_p(l)%var_1d(1:surf_lsm_v(l)%ns)                      )
    27812793          ALLOCATE ( t_surface_v(l)%var_1d(1:surf_lsm_v(l)%ns)                    )
    27822794          ALLOCATE ( t_surface_v_p(l)%var_1d(1:surf_lsm_v(l)%ns)                  )
     
    27892801!
    27902802!--    Horizontal surfaces
    2791        ALLOCATE ( m_liq_h_1%var_1d(1:surf_lsm_h%ns)                   )
    2792        ALLOCATE ( m_liq_h_2%var_1d(1:surf_lsm_h%ns)                   )
     2803       ALLOCATE ( m_liq_h_1%var_1d(1:surf_lsm_h%ns)                      )
     2804       ALLOCATE ( m_liq_h_2%var_1d(1:surf_lsm_h%ns)                      )
    27932805       ALLOCATE ( t_surface_h_1%var_1d(1:surf_lsm_h%ns)                  )
    27942806       ALLOCATE ( t_surface_h_2%var_1d(1:surf_lsm_h%ns)                  )
     
    28002812!--    Vertical surfaces
    28012813       DO  l = 0, 3
    2802           ALLOCATE ( m_liq_v_1(l)%var_1d(1:surf_lsm_v(l)%ns)                   )
    2803           ALLOCATE ( m_liq_v_2(l)%var_1d(1:surf_lsm_v(l)%ns)                   )
     2814          ALLOCATE ( m_liq_v_1(l)%var_1d(1:surf_lsm_v(l)%ns)                      )
     2815          ALLOCATE ( m_liq_v_2(l)%var_1d(1:surf_lsm_v(l)%ns)                      )
    28042816          ALLOCATE ( t_surface_v_1(l)%var_1d(1:surf_lsm_v(l)%ns)                  )
    28052817          ALLOCATE ( t_surface_v_2(l)%var_1d(1:surf_lsm_v(l)%ns)                  )
     
    28142826!--    Allocate intermediate timestep arrays
    28152827!--    Horizontal surfaces
    2816        ALLOCATE ( tm_liq_h_m%var_1d(1:surf_lsm_h%ns)                  )
     2828       ALLOCATE ( tm_liq_h_m%var_1d(1:surf_lsm_h%ns)                     )
    28172829       ALLOCATE ( tt_surface_h_m%var_1d(1:surf_lsm_h%ns)                 )
    28182830       ALLOCATE ( tm_soil_h_m%var_2d(nzb_soil:nzt_soil,1:surf_lsm_h%ns)  )
     
    28212833!--    Horizontal surfaces
    28222834       DO  l = 0, 3
    2823           ALLOCATE ( tm_liq_v_m(l)%var_1d(1:surf_lsm_v(l)%ns)                  )
     2835          ALLOCATE ( tm_liq_v_m(l)%var_1d(1:surf_lsm_v(l)%ns)                     )
    28242836          ALLOCATE ( tt_surface_v_m(l)%var_1d(1:surf_lsm_v(l)%ns)                 )
    28252837          ALLOCATE ( tm_soil_v_m(l)%var_2d(nzb_soil:nzt_soil,1:surf_lsm_v(l)%ns)  )
     
    28732885          ALLOCATE ( surf_lsm_v(l)%c_veg(1:surf_lsm_v(l)%ns)            )
    28742886          ALLOCATE ( surf_lsm_v(l)%f_sw_in(1:surf_lsm_v(l)%ns)          )
    2875           ALLOCATE ( surf_lsm_v(l)%ghf(1:surf_lsm_v(l)%ns)               )
     2887          ALLOCATE ( surf_lsm_v(l)%ghf(1:surf_lsm_v(l)%ns)              )
    28762888          ALLOCATE ( surf_lsm_v(l)%g_d(1:surf_lsm_v(l)%ns)              )
    28772889          ALLOCATE ( surf_lsm_v(l)%lai(1:surf_lsm_v(l)%ns)              )
     
    29072919       t_surface_h => t_surface_h_1; t_surface_h_p => t_surface_h_2
    29082920       m_soil_h    => m_soil_h_1;    m_soil_h_p    => m_soil_h_2
    2909        m_liq_h  => m_liq_h_1;  m_liq_h_p  => m_liq_h_2
     2921       m_liq_h     => m_liq_h_1;     m_liq_h_p     => m_liq_h_2
    29102922!
    29112923!--    Vertical surfaces
     
    29132925       t_surface_v => t_surface_v_1; t_surface_v_p => t_surface_v_2
    29142926       m_soil_v    => m_soil_v_1;    m_soil_v_p    => m_soil_v_2
    2915        m_liq_v  => m_liq_v_1;  m_liq_v_p  => m_liq_v_2
     2927       m_liq_v     => m_liq_v_1;     m_liq_v_p     => m_liq_v_2
    29162928#endif
    29172929
     
    30293041       IF ( horizontal )  THEN
    30303042          surf           => surf_lsm_h
    3031 
    30323043          surf_m_soil    => m_soil_h
    30333044          surf_m_soil_p  => m_soil_h_p
     
    30383049       ELSE
    30393050          surf           => surf_lsm_v(l)
    3040 
    30413051          surf_m_soil    => m_soil_v(l)
    30423052          surf_m_soil_p  => m_soil_v_p(l)
     
    30613071!--                Calculate volumetric heat capacity of the soil, taking
    30623072!--                into account water content
    3063                    surf%rho_c_total(k,m) = (rho_c_soil *                 &
    3064                                                ( 1.0_wp - surf%m_sat(k,m) )&
     3073                   surf%rho_c_total(k,m) = (rho_c_soil *                       &
     3074                                               ( 1.0_wp - surf%m_sat(k,m) )    &
    30653075                                               + rho_c_water * surf_m_soil%var_2d(k,m) )
    30663076
     
    30683078!--                Calculate soil heat conductivity at the center of the soil
    30693079!--                layers
    3070                    lambda_h_sat = lambda_h_sm**(1.0_wp - surf%m_sat(k,m)) *      &
     3080                   lambda_h_sat = lambda_h_sm**(1.0_wp - surf%m_sat(k,m)) *    &
    30713081                                  lambda_h_water ** surf_m_soil%var_2d(k,m)
    30723082
     
    30873097                     .AND.  zs(k+1) > pavement_depth )                         &
    30883098                THEN
    3089                    surf%lambda_h(k,m) = ( pavement_depth - zs(k) ) * ddz_soil_center(k+1)   &
    3090                                       * lambda_temp(k)                               &
    3091                                       + ( zs(k+1) - pavement_depth ) * ddz_soil_center(k+1) &
    3092                                       * lambda_temp(k+1)
     3099                   surf%lambda_h(k,m) = ( pavement_depth - zs(k) )             &
     3100                                      * ddz_soil_center(k+1) * lambda_temp(k)  &
     3101                                      + ( zs(k+1) - pavement_depth )           &
     3102                                      * ddz_soil_center(k+1) * lambda_temp(k+1)
    30933103                ELSE
    30943104                   surf%lambda_h(k,m) = ( lambda_temp(k+1) + lambda_temp(k) )  &
     
    31033113             tend(:) = 0.0_wp
    31043114
    3105              tend(nzb_soil) = ( 1.0_wp / surf%rho_c_total(nzb_soil,m) ) *            &
    3106                     ( surf%lambda_h(nzb_soil,m) * ( surf_t_soil%var_2d(nzb_soil+1,m) &
    3107                       - surf_t_soil%var_2d(nzb_soil,m) ) * ddz_soil_center(nzb_soil)        &
    3108                       + surf%ghf(m) ) * ddz_soil(nzb_soil)
     3115             tend(nzb_soil) = ( 1.0_wp / surf%rho_c_total(nzb_soil,m) ) *      &
     3116                            ( surf%lambda_h(nzb_soil,m)                        &
     3117                            * ( surf_t_soil%var_2d(nzb_soil+1,m)               &
     3118                            - surf_t_soil%var_2d(nzb_soil,m) )                 &
     3119                            * ddz_soil_center(nzb_soil) + surf%ghf(m) )        &
     3120                            * ddz_soil(nzb_soil)
    31093121
    31103122             DO  k = nzb_soil+1, nzt_soil
    3111                 tend(k) = ( 1.0_wp / surf%rho_c_total(k,m) )                            &
    3112                           * (   surf%lambda_h(k,m)                                      &
    3113                               * ( surf_t_soil%var_2d(k+1,m) - surf_t_soil%var_2d(k,m) ) &
    3114                               * ddz_soil_center(k)                                             &
    3115                               - surf%lambda_h(k-1,m)                                    &
    3116                               * ( surf_t_soil%var_2d(k,m) - surf_t_soil%var_2d(k-1,m) ) &
    3117                               * ddz_soil_center(k-1)                                           &
    3118                             ) * ddz_soil(k)
    3119 
    3120              ENDDO
    3121 
    3122              surf_t_soil_p%var_2d(nzb_soil:nzt_soil,m) = surf_t_soil%var_2d(nzb_soil:nzt_soil,m)       &
    3123                                                + dt_3d * ( tsc(2)              &
    3124                                                * tend(nzb_soil:nzt_soil)       &
    3125                                                + tsc(3)                        &
    3126                                                * surf_tt_soil_m%var_2d(nzb_soil:nzt_soil,m) )
     3123                tend(k) = ( 1.0_wp / surf%rho_c_total(k,m) )                      &
     3124                        * (   surf%lambda_h(k,m)                                  &
     3125                        * ( surf_t_soil%var_2d(k+1,m) - surf_t_soil%var_2d(k,m) ) &
     3126                        * ddz_soil_center(k) - surf%lambda_h(k-1,m)               &
     3127                        * ( surf_t_soil%var_2d(k,m) - surf_t_soil%var_2d(k-1,m) ) &
     3128                        * ddz_soil_center(k-1) ) * ddz_soil(k)
     3129
     3130             ENDDO
     3131
     3132             surf_t_soil_p%var_2d(nzb_soil:nzt_soil,m) =                       &
     3133                                  surf_t_soil%var_2d(nzb_soil:nzt_soil,m)      &
     3134                                  + dt_3d * ( tsc(2)                           &
     3135                                  * tend(nzb_soil:nzt_soil) + tsc(3)           &
     3136                                  * surf_tt_soil_m%var_2d(nzb_soil:nzt_soil,m) )
    31273137
    31283138!
     
    31363146                         intermediate_timestep_count_max )  THEN
    31373147                   DO  k = nzb_soil, nzt_soil
    3138                       surf_tt_soil_m%var_2d(k,m) = -9.5625_wp * tend(k) + 5.3125_wp        &
    3139                                          * surf_tt_soil_m%var_2d(k,m)
     3148                      surf_tt_soil_m%var_2d(k,m) = -9.5625_wp * tend(k)        &
     3149                                                   + 5.3125_wp                 &
     3150                                                   * surf_tt_soil_m%var_2d(k,m)
    31403151                   ENDDO
    31413152                ENDIF
     
    31483159!--             Calculate soil diffusivity at the center of the soil layers
    31493160                lambda_temp(k) = (- b_ch * surf%gamma_w_sat(k,m) * psi_sat     &
    3150                                   / surf%m_sat(k,m) ) * ( MAX( surf_m_soil%var_2d(k,m),    &
    3151                                   surf%m_wilt(k,m) ) / surf%m_sat(k,m) )**(&
    3152                                                             b_ch + 2.0_wp )
     3161                                 / surf%m_sat(k,m) ) * (                       &
     3162                                 MAX( surf_m_soil%var_2d(k,m),                 &
     3163                                 surf%m_wilt(k,m) ) / surf%m_sat(k,m) )**(     &
     3164                                 b_ch + 2.0_wp )
    31533165
    31543166!
    31553167!--             Parametrization of Van Genuchten
    31563168!--             Calculate the hydraulic conductivity after Van Genuchten (1980)
    3157                 h_vg = ( ( ( surf%m_res(k,m) - surf%m_sat(k,m) ) /  &
    3158                            ( surf%m_res(k,m) -                          &
    3159                              MAX( surf_m_soil%var_2d(k,m), surf%m_wilt(k,m) )       &
    3160                            )                                                &
    3161                          )**(                                               &
    3162                        surf%n_vg(k,m) / ( surf%n_vg(k,m) - 1.0_wp ) &
    3163                             ) - 1.0_wp                                      &
     3169                h_vg = ( ( ( surf%m_res(k,m) - surf%m_sat(k,m) ) /             &
     3170                           ( surf%m_res(k,m) -                                 &
     3171                             MAX( surf_m_soil%var_2d(k,m), surf%m_wilt(k,m) )  &
     3172                           )                                                   &
     3173                         )**( surf%n_vg(k,m) / ( surf%n_vg(k,m) - 1.0_wp )     &
     3174                            ) - 1.0_wp                                         &
    31643175                       )**( 1.0_wp / surf%n_vg(k,m) ) / surf%alpha_vg(k,m)
    31653176
    3166                 gamma_temp(k) = surf%gamma_w_sat(k,m) * ( ( ( 1.0_wp +  &
    3167                        ( surf%alpha_vg(k,m) * h_vg )**surf%n_vg(k,m)&
    3168                                                                )**(            &
    3169                            1.0_wp - 1.0_wp / surf%n_vg(k,m)) - (        &
    3170                        surf%alpha_vg(k,m) * h_vg )**( surf%n_vg(k,m)&
    3171                            - 1.0_wp) )**2 )                                 &
    3172                            / ( ( 1.0_wp + ( surf%alpha_vg(k,m) * h_vg   &
    3173                            )**surf%n_vg(k,m) )**( ( 1.0_wp  - 1.0_wp    &
    3174                            / surf%n_vg(k,m) ) *                         &
    3175                            ( surf%l_vg(k,m) + 2.0_wp) ) )
     3177                gamma_temp(k) = surf%gamma_w_sat(k,m) * ( ( ( 1.0_wp +         &
     3178                       ( surf%alpha_vg(k,m) * h_vg )**surf%n_vg(k,m)           &
     3179                       )**( 1.0_wp - 1.0_wp / surf%n_vg(k,m) )                 &
     3180                       - ( surf%alpha_vg(k,m) * h_vg )**( surf%n_vg(k,m)       &
     3181                       - 1.0_wp) )**2 ) / ( ( 1.0_wp + ( surf%alpha_vg(k,m)    &
     3182                       * h_vg )**surf%n_vg(k,m) )**( ( 1.0_wp  - 1.0_wp        &
     3183                           / surf%n_vg(k,m) ) * ( surf%l_vg(k,m) + 2.0_wp) ) )
    31763184
    31773185             ENDDO
     
    31983206                DO  k = nzb_soil, nzt_soil-1
    31993207                   
    3200                    surf%lambda_w(k,m) = ( lambda_temp(k+1) +             &
     3208                   surf%lambda_w(k,m) = ( lambda_temp(k+1) +                   &
    32013209                                                lambda_temp(k) ) * 0.5_wp
    3202                    surf%gamma_w(k,m)  = ( gamma_temp(k+1)  +             &
     3210                   surf%gamma_w(k,m)  = ( gamma_temp(k+1)  +                   &
    32033211                                                gamma_temp(k) )  * 0.5_wp
    32043212
     
    32323240                DO  k = nzb_soil, nzt_soil
    32333241                    IF ( surf_m_soil%var_2d(k,m) > surf%m_wilt(k,m) )  THEN
    3234                        m_total = m_total + surf%root_fr(k,m) * surf_m_soil%var_2d(k,m)
     3242                       m_total = m_total + surf%root_fr(k,m)                   &
     3243                                 * surf_m_soil%var_2d(k,m)
    32353244                    ENDIF
    32363245                ENDDO 
     
    32383247                   DO  k = nzb_soil, nzt_soil
    32393248                      IF ( surf_m_soil%var_2d(k,m) > surf%m_wilt(k,m) )  THEN
    3240                          root_extr(k) = surf%root_fr(k,m) * surf_m_soil%var_2d(k,m)  &
    3241                                                             / m_total
     3249                         root_extr(k) = surf%root_fr(k,m)                      &
     3250                                        * surf_m_soil%var_2d(k,m) / m_total
    32423251                      ELSE
    32433252                         root_extr(k) = 0.0_wp
     
    32493258                tend(:) = 0.0_wp
    32503259
    3251                 tend(nzb_soil) = ( surf%lambda_w(nzb_soil,m) *   (       &
    3252                          surf_m_soil%var_2d(nzb_soil+1,m) - surf_m_soil%var_2d(nzb_soil,m) )           &
    3253                          * ddz_soil_center(nzb_soil) - surf%gamma_w(nzb_soil,m) - &
    3254                                                      (                         &
    3255                             root_extr(nzb_soil) * surf%qsws_veg(m)    &
    3256                             + surf%qsws_soil(m) ) * drho_l_lv )       &
     3260                tend(nzb_soil) = ( surf%lambda_w(nzb_soil,m) *   (             &
     3261                         surf_m_soil%var_2d(nzb_soil+1,m)                      &
     3262                         - surf_m_soil%var_2d(nzb_soil,m) )                    &
     3263                         * ddz_soil_center(nzb_soil) - surf%gamma_w(nzb_soil,m)&
     3264                         - ( root_extr(nzb_soil) * surf%qsws_veg(m)            &
     3265                            + surf%qsws_soil(m) ) * drho_l_lv )                &
    32573266                            * ddz_soil(nzb_soil)
    32583267
    32593268                DO  k = nzb_soil+1, nzt_soil-1
    3260                    tend(k) = ( surf%lambda_w(k,m) * ( surf_m_soil%var_2d(k+1,m)      &
    3261                              - surf_m_soil%var_2d(k,m) ) * ddz_soil_center(k)                   &
    3262                              - surf%gamma_w(k,m)                         &
    3263                              - surf%lambda_w(k-1,m) * ( surf_m_soil%var_2d(k,m) -    &
    3264                              surf_m_soil%var_2d(k-1,m)) * ddz_soil_center(k-1)                      &
    3265                              + surf%gamma_w(k-1,m) - (root_extr(k)       &
    3266                              * surf%qsws_veg(m) * drho_l_lv)          &
     3269                   tend(k) = ( surf%lambda_w(k,m) * ( surf_m_soil%var_2d(k+1,m)  &
     3270                             - surf_m_soil%var_2d(k,m) ) * ddz_soil_center(k)    &
     3271                             - surf%gamma_w(k,m)                                 &
     3272                             - surf%lambda_w(k-1,m) * ( surf_m_soil%var_2d(k,m) &
     3273                             - surf_m_soil%var_2d(k-1,m)) * ddz_soil_center(k-1) &
     3274                             + surf%gamma_w(k-1,m) - (root_extr(k)               &
     3275                             * surf%qsws_veg(m) * drho_l_lv)                     &
    32673276                             ) * ddz_soil(k)
    32683277                ENDDO
    3269                 tend(nzt_soil) = ( - surf%gamma_w(nzt_soil,m)            &
    3270                                      - surf%lambda_w(nzt_soil-1,m)       &
    3271                                      * ( surf_m_soil%var_2d(nzt_soil,m)                    &
    3272                                      - surf_m_soil%var_2d(nzt_soil-1,m))                   &
    3273                                      * ddz_soil_center(nzt_soil-1)                      &
    3274                                      + surf%gamma_w(nzt_soil-1,m) - (    &
    3275                                        root_extr(nzt_soil)                     &
    3276                                      * surf%qsws_veg(m) * drho_l_lv ) &
     3278                tend(nzt_soil) = ( - surf%gamma_w(nzt_soil,m)                  &
     3279                                   - surf%lambda_w(nzt_soil-1,m)               &
     3280                                   * ( surf_m_soil%var_2d(nzt_soil,m)          &
     3281                                   - surf_m_soil%var_2d(nzt_soil-1,m))         &
     3282                                   * ddz_soil_center(nzt_soil-1)               &
     3283                                   + surf%gamma_w(nzt_soil-1,m) - (            &
     3284                                   root_extr(nzt_soil)                         &
     3285                                   * surf%qsws_veg(m) * drho_l_lv )            &
    32773286                                  ) * ddz_soil(nzt_soil)             
    32783287
    3279                 surf_m_soil_p%var_2d(nzb_soil:nzt_soil,m) = surf_m_soil%var_2d(nzb_soil:nzt_soil,m)    &
    3280                                                 + dt_3d * ( tsc(2) * tend(:)   &
    3281                                                 + tsc(3) * surf_tm_soil_m%var_2d(:,m) )   
     3288                surf_m_soil_p%var_2d(nzb_soil:nzt_soil,m) =                    &
     3289                                       surf_m_soil%var_2d(nzb_soil:nzt_soil,m) &
     3290                                       + dt_3d * ( tsc(2) * tend(:)            &
     3291                                       + tsc(3) * surf_tm_soil_m%var_2d(:,m) )   
    32823292   
    32833293!
     
    32973307                            intermediate_timestep_count_max )  THEN
    32983308                      DO  k = nzb_soil, nzt_soil
    3299                          surf_tm_soil_m%var_2d(k,m) = -9.5625_wp * tend(k) + 5.3125_wp     &
    3300                                   * surf_tm_soil_m%var_2d(k,m)
     3309                         surf_tm_soil_m%var_2d(k,m) = -9.5625_wp * tend(k)     &
     3310                                                    + 5.3125_wp                &
     3311                                                    * surf_tm_soil_m%var_2d(k,m)
    33013312                      ENDDO
    33023313                   ENDIF
     
    33503361             t_soil_h     => t_soil_h_1;    t_soil_h_p     => t_soil_h_2
    33513362             IF ( humidity )  THEN
    3352                 m_soil_h    => m_soil_h_1;   m_soil_h_p    => m_soil_h_2
    3353                 m_liq_h  => m_liq_h_1; m_liq_h_p  => m_liq_h_2
     3363                m_soil_h  => m_soil_h_1;    m_soil_h_p     => m_soil_h_2
     3364                m_liq_h   => m_liq_h_1;     m_liq_h_p      => m_liq_h_2
    33543365             ENDIF
    33553366!
     
    33583369             t_soil_v     => t_soil_v_1;    t_soil_v_p     => t_soil_v_2
    33593370             IF ( humidity )  THEN
    3360                 m_soil_v    => m_soil_v_1;   m_soil_v_p    => m_soil_v_2
    3361                 m_liq_v  => m_liq_v_1; m_liq_v_p  => m_liq_v_2
     3371                m_soil_v  => m_soil_v_1;    m_soil_v_p     => m_soil_v_2
     3372                m_liq_v   => m_liq_v_1;     m_liq_v_p      => m_liq_v_2
    33623373             ENDIF
    33633374
     
    33703381             t_soil_h     => t_soil_h_2;    t_soil_h_p     => t_soil_h_1
    33713382             IF ( humidity )  THEN
    3372                 m_soil_h    => m_soil_h_2;   m_soil_h_p    => m_soil_h_1
    3373                 m_liq_h  => m_liq_h_2; m_liq_h_p  => m_liq_h_1
     3383                m_soil_h  => m_soil_h_2;    m_soil_h_p     => m_soil_h_1
     3384                m_liq_h   => m_liq_h_2;     m_liq_h_p      => m_liq_h_1
    33743385             ENDIF
    33753386!
     
    33783389             t_soil_v     => t_soil_v_2;    t_soil_v_p     => t_soil_v_1
    33793390             IF ( humidity )  THEN
    3380                 m_soil_v    => m_soil_v_2;   m_soil_v_p    => m_soil_v_1
    3381                 m_liq_v  => m_liq_v_2; m_liq_v_p  => m_liq_v_1
     3391                m_soil_v  => m_soil_v_2;    m_soil_v_p     => m_soil_v_1
     3392                m_liq_v   => m_liq_v_2;     m_liq_v_p      => m_liq_v_1
    33823393             ENDIF
    33833394
     
    35613572                i   = surf_lsm_h%i(m)           
    35623573                j   = surf_lsm_h%j(m)
    3563                 qsws_liq_av(j,i) = qsws_liq_av(j,i) +                    &
     3574                qsws_liq_av(j,i) = qsws_liq_av(j,i) +                          &
    35643575                                      surf_lsm_h%qsws_liq(m)
    35653576             ENDDO
     
    35693580                i   = surf_lsm_h%i(m)           
    35703581                j   = surf_lsm_h%j(m)
    3571                 qsws_soil_av(j,i) = qsws_soil_av(j,i) +                  &
     3582                qsws_soil_av(j,i) = qsws_soil_av(j,i) +                        &
    35723583                                       surf_lsm_h%qsws_soil(m)
    35733584             ENDDO
     
    35773588                i   = surf_lsm_h%i(m)           
    35783589                j   = surf_lsm_h%j(m)
    3579                 qsws_veg_av(j,i) = qsws_veg_av(j,i) +                    &
     3590                qsws_veg_av(j,i) = qsws_veg_av(j,i) +                          &
    35803591                                      surf_lsm_h%qsws_veg(m)
    35813592             ENDDO
     
    36163627             DO  i = nxl, nxr
    36173628                DO  j = nys, nyn
    3618                    c_liq_av(j,i) = c_liq_av(j,i) / REAL( average_count_3d, KIND=wp )
     3629                   c_liq_av(j,i) = c_liq_av(j,i)                               &
     3630                                   / REAL( average_count_3d, KIND=wp )
    36193631                ENDDO
    36203632             ENDDO
     
    36233635             DO  i = nxl, nxr
    36243636                DO  j = nys, nyn
    3625                    c_soil_av(j,i) = c_soil_av(j,i) / REAL( average_count_3d, KIND=wp )
     3637                   c_soil_av(j,i) = c_soil_av(j,i)                             &
     3638                                    / REAL( average_count_3d, KIND=wp )
    36263639                ENDDO
    36273640             ENDDO
     
    36303643             DO  i = nxl, nxr
    36313644                DO  j = nys, nyn
    3632                    c_veg_av(j,i) = c_veg_av(j,i) / REAL( average_count_3d, KIND=wp )
     3645                   c_veg_av(j,i) = c_veg_av(j,i)                               &
     3646                                   / REAL( average_count_3d, KIND=wp )
    36333647                ENDDO
    36343648             ENDDO
     
    36373651             DO  i = nxl, nxr
    36383652                DO  j = nys, nyn
    3639                    ghf_av(j,i) = ghf_av(j,i) / REAL( average_count_3d, KIND=wp )
     3653                   ghf_av(j,i) = ghf_av(j,i)                                   &
     3654                                 / REAL( average_count_3d, KIND=wp )
    36403655                ENDDO
    36413656             ENDDO
     
    36443659             DO  i = nxl, nxr
    36453660                DO  j = nys, nyn
    3646                    lai_av(j,i) = lai_av(j,i) / REAL( average_count_3d, KIND=wp )
     3661                   lai_av(j,i) = lai_av(j,i)                                   &
     3662                                 / REAL( average_count_3d, KIND=wp )
    36473663                ENDDO
    36483664             ENDDO
     
    36513667             DO  i = nxl, nxr
    36523668                DO  j = nys, nyn
    3653                    m_liq_av(j,i) = m_liq_av(j,i) / REAL( average_count_3d, KIND=wp )
     3669                   m_liq_av(j,i) = m_liq_av(j,i)                               &
     3670                                   / REAL( average_count_3d, KIND=wp )
    36543671                ENDDO
    36553672             ENDDO
     
    36593676                DO  j = nys, nyn
    36603677                   DO  k = nzb_soil, nzt_soil
    3661                       m_soil_av(k,j,i) = m_soil_av(k,j,i) / REAL( average_count_3d, KIND=wp )
     3678                      m_soil_av(k,j,i) = m_soil_av(k,j,i)                      &
     3679                                         / REAL( average_count_3d, KIND=wp )
    36623680                   ENDDO
    36633681                ENDDO
     
    36673685             DO  i = nxl, nxr
    36683686                DO  j = nys, nyn
    3669                    qsws_liq_av(j,i) = qsws_liq_av(j,i) / REAL( average_count_3d, KIND=wp )
     3687                   qsws_liq_av(j,i) = qsws_liq_av(j,i)                         &
     3688                                      / REAL( average_count_3d, KIND=wp )
    36703689                ENDDO
    36713690             ENDDO
     
    36743693             DO  i = nxl, nxr
    36753694                DO  j = nys, nyn
    3676                    qsws_soil_av(j,i) = qsws_soil_av(j,i) / REAL( average_count_3d, KIND=wp )
     3695                   qsws_soil_av(j,i) = qsws_soil_av(j,i)                       &
     3696                                       / REAL( average_count_3d, KIND=wp )
    36773697                ENDDO
    36783698             ENDDO
     
    36813701             DO  i = nxl, nxr
    36823702                DO  j = nys, nyn
    3683                    qsws_veg_av(j,i) = qsws_veg_av(j,i) / REAL( average_count_3d, KIND=wp )
     3703                   qsws_veg_av(j,i) = qsws_veg_av(j,i)                         &
     3704                                      / REAL( average_count_3d, KIND=wp )
    36843705                ENDDO
    36853706             ENDDO
     
    37033724                DO  j = nys, nyn
    37043725                   DO  k = nzb_soil, nzt_soil
    3705                       t_soil_av(k,j,i) = t_soil_av(k,j,i) / REAL( average_count_3d, KIND=wp )
     3726                      t_soil_av(k,j,i) = t_soil_av(k,j,i)                      &
     3727                                         / REAL( average_count_3d, KIND=wp )
    37063728                   ENDDO
    37073729                ENDDO
     
    42394261
    42404262    REAL(wp),                                                                  &
    4241        DIMENSION(nys_on_file-nbgp:nyn_on_file+nbgp,nxl_on_file-nbgp:nxr_on_file+nbgp) ::&
     4263       DIMENSION(nys_on_file-nbgp:nyn_on_file+nbgp,nxl_on_file-nbgp:nxr_on_file+nbgp) :: &
    42424264          tmp_2d   !<
    42434265
    42444266    REAL(wp),                                                                  &
    4245        DIMENSION(nzb_soil:nzt_soil+1,nys_on_file-nbgp:nyn_on_file+nbgp,nxl_on_file-nbgp:nxr_on_file+nbgp) ::&
     4267       DIMENSION(nzb_soil:nzt_soil+1,nys_on_file-nbgp:nyn_on_file+nbgp,nxl_on_file-nbgp:nxr_on_file+nbgp) :: &
    42464268          tmp_3d   !<
    42474269
    42484270    REAL(wp),                                                                  &
    4249        DIMENSION(nzb_soil:nzt_soil,nys_on_file-nbgp:nyn_on_file+nbgp,nxl_on_file-nbgp:nxr_on_file+nbgp) ::&
     4271       DIMENSION(nzb_soil:nzt_soil,nys_on_file-nbgp:nyn_on_file+nbgp,nxl_on_file-nbgp:nxr_on_file+nbgp) :: &
    42504272          tmp_3d2   !<
    42514273
    42524274    REAL(wp),                                                                  &
    4253        DIMENSION(1:surf_lsm_h%ns) ::                                  &
     4275       DIMENSION(1:surf_lsm_h%ns) ::                                           &
    42544276          tmp_walltype_1d   !<
    42554277
    42564278    REAL(wp),                                                                  &
    4257        DIMENSION(nzb_soil:nzt_soil+1,1:surf_lsm_h%ns) ::              &
     4279       DIMENSION(nzb_soil:nzt_soil+1,1:surf_lsm_h%ns) ::                       &
    42584280          tmp_walltype_2d   !<
    42594281
    42604282    REAL(wp),                                                                  &
    4261        DIMENSION(nzb_soil:nzt_soil,1:surf_lsm_h%ns) ::                &
     4283       DIMENSION(nzb_soil:nzt_soil,1:surf_lsm_h%ns) ::                         &
    42624284          tmp_walltype_2d2  !<
    42634285
     
    43324354                   ENDIF
    43334355                   IF ( k == 1 )  READ ( 13 )  tmp_2d
    4334                    m_liq_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =      &
     4356                   m_liq_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) =         &
    43354357                                  tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    43364358
     
    43544376                   ENDIF 
    43554377                   IF ( k == 1 )  READ ( 13 )  tmp_2d
    4356                    qsws_liq_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  =  &
     4378                   qsws_liq_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  =     &
    43574379                                          tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    43584380                CASE ( 'qsws_soil_av' )
     
    43614383                   ENDIF 
    43624384                   IF ( k == 1 )  READ ( 13 )  tmp_2d
    4363                    qsws_soil_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
     4385                   qsws_soil_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  =    &
    43644386                                          tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    43654387
     
    43694391                   ENDIF 
    43704392                   IF ( k == 1 )  READ ( 13 )  tmp_2d
    4371                    qsws_veg_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  =  &
     4393                   qsws_veg_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  =     &
    43724394                                          tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    43734395
Note: See TracChangeset for help on using the changeset viewer.