Changeset 3692 for palm/trunk


Ignore:
Timestamp:
Jan 23, 2019 2:45:49 PM (6 years ago)
Author:
suehring
Message:

Add check for soil moisture higher than its saturation value

File:
1 edited

Legend:

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

    r3685 r3692  
    2525! -----------------
    2626! $Id$
     27! Revise check for soil moisture higher than its saturation value
     28!
     29! 3685 2019-01-21 01:02:11Z knoop
    2730! Some interface calls moved to module_interface + cleanup
    2831!
     
    16531656          CALL message( 'lsm_check_parameters', 'PA0401', 1, 2, 0, 6, 0 )
    16541657       ENDIF
    1655     ENDIF   
    1656    
    1657    
    1658 !
    1659 !-- Check for proper setting of soil moisture, must not be larger than its
    1660 !-- saturation value.
    1661     DO  k = nzb_soil, nzt_soil
    1662        IF ( soil_moisture(k) > saturation_moisture )  THEN
    1663           message_string = 'soil_moisture must not exceed its saturation' //    &
    1664                             ' value'
    1665           CALL message( 'lsm_check_parameters', 'PA0458', 1, 2, 0, 6, 0 )
    1666        ENDIF
    1667     ENDDO
    1668  
     1658    ENDIF     
    16691659!
    16701660!-- Calculate grid spacings. Temperature and moisture are defined at
     
    44414431          ENDIF
    44424432!
     4433!--       After soil moisture and temperature are finally initialized, check
     4434!--       if soil moisture is higher than its saturation value. Else, this
     4435!--       will produce floating point errors in the soil model parametrization.
     4436          DO  m = 1, surf_lsm_h%ns
     4437             IF ( surf_lsm_h%vegetation_surface(m)  .OR.                       &
     4438                  surf_lsm_h%pavement_surface(m) )  THEN
     4439                DO  k = nzb_soil, nzt_soil
     4440                   IF ( m_soil_h%var_2d(k,m) >= surf_lsm_h%m_sat(k,m) )  THEN
     4441                      WRITE( message_string, * ) 'soil moisture is higher '//  &
     4442                            'than its saturation value at (k,j,i) ', k,        &
     4443                            surf_lsm_h%i(m), surf_lsm_h%j(m)
     4444                      CALL message( 'lsm_init', 'PA0458', 2, 2, 0, 6, 0 )
     4445                   ENDIF               
     4446                ENDDO
     4447             ENDIF
     4448          ENDDO
     4449          DO  l = 0, 3
     4450             DO  m = 1, surf_lsm_v(l)%ns
     4451                IF ( surf_lsm_v(l)%vegetation_surface(m)  .OR.                 &
     4452                     surf_lsm_v(l)%pavement_surface(m) )  THEN
     4453                   DO  k = nzb_soil, nzt_soil
     4454                      IF ( m_soil_v(l)%var_2d(k,m) >= surf_lsm_v(l)%m_sat(k,m) )  &
     4455                      THEN
     4456                         WRITE( message_string, * )                               &
     4457                            'soil moisture is higher than ' //                 &
     4458                            'its saturation value at (k,j,i) ', k,             &
     4459                            surf_lsm_v(l)%i(m), surf_lsm_v(l)%j(m)
     4460                         CALL message( 'lsm_init', 'PA0458', 2, 2, 0, 6, 0 )                   
     4461                      ENDIF
     4462                   ENDDO
     4463                ENDIF
     4464             ENDDO
     4465          ENDDO
     4466
     4467!
    44434468!--       Further initialization
    44444469          DO  m = 1, surf_lsm_h%ns
Note: See TracChangeset for help on using the changeset viewer.