Changeset 2296 for palm/trunk/SOURCE/land_surface_model_mod.f90
- Timestamp:
- Jun 28, 2017 7:53:56 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/land_surface_model_mod.f90
r2282 r2296 25 25 ! ----------------- 26 26 ! $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 27 32 ! Bugfix for check of saturation moisture 28 33 ! … … 226 231 227 232 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, & 229 235 initializing_actions, intermediate_timestep_count_max, & 230 236 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, & 232 239 time_since_reference_point 233 240 … … 1230 1237 ENDIF 1231 1238 ENDDO 1232 1239 1233 1240 END SUBROUTINE lsm_check_parameters 1234 1241 … … 1374 1381 c_surface_tmp = (rho_c_soil * ( 1.0_wp - surf%m_sat(nzb_soil,m) ) & 1375 1382 + rho_c_water * surf_m_soil%var_2d(nzb_soil,m) ) & 1376 * dz_soil_layer(nzb_soil) * 0. 25_wp1383 * dz_soil_layer(nzb_soil) * 0.5_wp 1377 1384 1378 1385 ELSEIF ( surf_t_surface%var_1d(m) >= surf_t_soil%var_2d(nzb_soil,m)) & … … 2069 2076 dz_soil_layer(nzb_soil) = 2.0_wp * zs(nzb_soil) 2070 2077 zs_layer(nzb_soil) = 2.0_wp * zs(nzb_soil) 2071 2072 2073 2074 2078 2075 2079 DO k = nzb_soil+1, nzt_soil 2076 2080 dz_soil_layer(k) = ( zs(k) - zs_layer(k-1) ) * 2.0_wp … … 2322 2326 DO k = nzb_soil, nzt_soil 2323 2327 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) 2326 2329 ENDDO 2327 2330 t_soil_h%var_2d(nzt_soil+1,m) = soil_temperature(nzt_soil+1) … … 2343 2346 DO k = nzb_soil, nzt_soil 2344 2347 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) 2347 2349 ENDDO 2348 2350 t_soil_h%var_2d(nzt_soil+1,m) = soil_temperature(nzt_soil+1) … … 2411 2413 surf_lsm_v(l)%z0q(m) = z0h_pavement 2412 2414 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) 2416 2417 ENDDO 2417 2418 t_soil_v(l)%var_2d(nzt_soil+1,m) = soil_temperature(nzt_soil+1) … … 2433 2434 DO k = nzb_soil, nzt_soil 2434 2435 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) 2437 2437 ENDDO 2438 2438 t_soil_v(l)%var_2d(nzt_soil+1,m) = soil_temperature(nzt_soil+1) … … 2857 2857 land_surface = .TRUE. 2858 2858 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 2859 2871 10 CONTINUE 2860 2872
Note: See TracChangeset
for help on using the changeset viewer.