Ignore:
Timestamp:
Jun 28, 2017 7:53:56 AM (4 years ago)
Author:
maronga
Message:

added new spinup mechanism for surface/radiation models

File:
1 edited

Legend:

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

    r2282 r2296  
    2525! -----------------
    2626! $Id$
     27! Bugfix in calculation of bare soil heat capacity.
     28! Bugfix in calculation of shf
     29! Added support for spinups
     30!
     31! 2282 2017-06-13 11:38:46Z schwenkel
    2732! Bugfix for check of saturation moisture
    2833!
     
    226231
    227232    USE control_parameters,                                                    &
    228         ONLY:  cloud_physics, dt_3d, humidity, intermediate_timestep_count,    &
     233        ONLY:  cloud_physics, coupling_start_time, dt_3d, end_time, humidity,  &
     234               intermediate_timestep_count,                                    &
    229235               initializing_actions, intermediate_timestep_count_max,          &
    230236               land_surface, max_masks, precipitation, pt_surface,             &
    231                rho_surface, surface_pressure, timestep_scheme, tsc,            &
     237               rho_surface, spinup, spinup_pt_mean, spinup_time,               &
     238               surface_pressure, timestep_scheme, tsc,                         &
    232239               time_since_reference_point
    233240
     
    12301237       ENDIF
    12311238    ENDDO
    1232   
     1239 
    12331240 END SUBROUTINE lsm_check_parameters
    12341241 
     
    13741381          c_surface_tmp = (rho_c_soil * ( 1.0_wp - surf%m_sat(nzb_soil,m) )    &
    13751382                           + rho_c_water * surf_m_soil%var_2d(nzb_soil,m) )    &
    1376                            * dz_soil_layer(nzb_soil) * 0.25_wp               
     1383                           * dz_soil_layer(nzb_soil) * 0.5_wp               
    13771384
    13781385       ELSEIF ( surf_t_surface%var_1d(m) >= surf_t_soil%var_2d(nzb_soil,m)) &
     
    20692076       dz_soil_layer(nzb_soil) = 2.0_wp * zs(nzb_soil)
    20702077       zs_layer(nzb_soil)      = 2.0_wp * zs(nzb_soil)
    2071 
    2072 
    2073        
    2074        
     2078 
    20752079       DO  k = nzb_soil+1, nzt_soil
    20762080          dz_soil_layer(k) = ( zs(k) - zs_layer(k-1) ) * 2.0_wp
     
    23222326                DO  k = nzb_soil, nzt_soil 
    23232327                   t_soil_h%var_2d(k,m)   = soil_temperature(k)
    2324                    m_soil_h%var_2d(k,m)   = MAX(soil_moisture(k),surf_lsm_h%m_wilt(k,m))
    2325                    soil_moisture(k)       = MAX(soil_moisture(k),wilting_point)           
     2328                   m_soil_h%var_2d(k,m)   = soil_moisture(k)
    23262329                ENDDO
    23272330                t_soil_h%var_2d(nzt_soil+1,m) = soil_temperature(nzt_soil+1)
     
    23432346                DO  k = nzb_soil, nzt_soil                       
    23442347                   t_soil_h%var_2d(k,m)   = soil_temperature(k)
    2345                    m_soil_h%var_2d(k,m)   = MAX(soil_moisture(k),surf_lsm_h%m_wilt(k,m))
    2346                    soil_moisture(k)       = MAX(soil_moisture(k),wilting_point)         
     2348                   m_soil_h%var_2d(k,m)   = soil_moisture(k)       
    23472349                ENDDO
    23482350                t_soil_h%var_2d(nzt_soil+1,m) = soil_temperature(nzt_soil+1)
     
    24112413                   surf_lsm_v(l)%z0q(m)         = z0h_pavement 
    24122414                   DO  k = nzb_soil, nzt_soil 
    2413                       t_soil_v(l)%var_2d(k,m)      = soil_temperature(k)
    2414                       m_soil_v(l)%var_2d(k,m)   = MAX(soil_moisture(k),surf_lsm_v(l)%m_wilt(k,m))
    2415                       soil_moisture(k)          = MAX(soil_moisture(k),wilting_point)   
     2415                      t_soil_v(l)%var_2d(k,m)   = soil_temperature(k)
     2416                      m_soil_v(l)%var_2d(k,m)   = soil_moisture(k)
    24162417                   ENDDO
    24172418                   t_soil_v(l)%var_2d(nzt_soil+1,m)  = soil_temperature(nzt_soil+1)
     
    24332434                   DO  k = nzb_soil, nzt_soil                       
    24342435                      t_soil_v(l)%var_2d(k,m)   = soil_temperature(k)
    2435                       m_soil_v(l)%var_2d(k,m)   = MAX(soil_moisture(k),surf_lsm_v(l)%m_wilt(k,m))
    2436                       soil_moisture(k)          = MAX(soil_moisture(k),wilting_point)         
     2436                      m_soil_v(l)%var_2d(k,m)   = soil_moisture(k)       
    24372437                   ENDDO
    24382438                   t_soil_v(l)%var_2d(nzt_soil+1,m) = soil_temperature(nzt_soil+1)
     
    28572857       land_surface = .TRUE.
    28582858
     2859!
     2860!--    Activate spinup
     2861       IF ( spinup_time > 0.0_wp )  THEN
     2862          coupling_start_time = spinup_time
     2863          end_time = end_time + spinup_time
     2864          IF ( spinup_pt_mean == 9999999.9_wp )  THEN
     2865             spinup_pt_mean = pt_surface
     2866          ENDIF
     2867          spinup = .TRUE.
     2868       ENDIF
     2869
     2870
    28592871 10    CONTINUE
    28602872       
Note: See TracChangeset for help on using the changeset viewer.