Changeset 2296
- Timestamp:
- Jun 28, 2017 7:53:56 AM (7 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 1 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/Makefile
r2269 r2296 25 25 # ----------------- 26 26 # $Id$ 27 # Added time_integration_spinup 28 # 29 # 2269 2017-06-09 11:57:32Z suehring 27 30 # Add dependency in read_3d_binary 28 31 # … … 377 380 surface_coupler.f90 surface_layer_fluxes_mod.f90 swap_timelevel.f90 \ 378 381 synthetic_turbulence_generator_mod.f90 temperton_fft_mod.f90 \ 379 time_integration.f90 time_ to_string.f90 timestep.f90 \382 time_integration.f90 time_integration_spinup.f90 time_to_string.f90 timestep.f90 \ 380 383 timestep_scheme_steering.f90 transpose.f90 tridia_solver_mod.f90 \ 381 384 urban_surface_mod.f90 \ … … 619 622 surface_layer_fluxes_mod.o surface_mod.o \ 620 623 urban_surface_mod.o virtual_flight_mod.o wind_turbine_model_mod.o 624 time_integration_spinup.o: cpulog_mod.o modules.o land_surface_model_mod.o mod_kinds.o radiation_model_mod.o surface_layer_fluxes_mod.o urban_surface_mod.o 621 625 time_to_string.o: mod_kinds.o 622 626 timestep.o: modules.o cpulog_mod.o mod_kinds.o microphysics_mod.o \ -
palm/trunk/SOURCE/flow_statistics.f90
r2292 r2296 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Enabled output of radiation quantities for radiation_scheme = 'constant' 28 ! 29 ! 2292 2017-06-20 09:51:42Z schwenkel 27 30 ! Implementation of new microphysic scheme: cloud_scheme = 'morrison' 28 31 ! includes two more prognostic equations for cloud drop concentration (nc) … … 1087 1090 ENDIF 1088 1091 1089 IF ( radiation .AND. radiation_scheme /= 'constant') THEN1092 IF ( radiation ) THEN 1090 1093 sums_l(nzb,99,tn) = sums_l(nzb,99,tn) + rad_net(j,i) 1091 1094 sums_l(nzb,100,tn) = sums_l(nzb,100,tn) + rad_lw_in(nzb,j,i) -
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 -
palm/trunk/SOURCE/modules.f90
r2292 r2296 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Added parameters for model spinup 28 ! 29 ! 2292 2017-06-20 09:51:42Z schwenkel 27 30 ! Implementation of new microphysic scheme: cloud_scheme = 'morrison' 28 31 ! includes two more prognostic equations for cloud drop concentration (nc) … … 1144 1147 LOGICAL :: constant_waterflux = .TRUE. !< water flux at all surfaces constant? 1145 1148 LOGICAL :: create_disturbances = .TRUE. !< namelist parameter 1149 LOGICAL :: data_output_during_spinup = .FALSE. !< namelist parameter 1146 1150 LOGICAL :: data_output_2d_on_each_pe = .TRUE. !< namelist parameter 1147 1151 LOGICAL :: disturbance_created = .FALSE. !< flow disturbance imposed? … … 1197 1201 LOGICAL :: sloping_surface = .FALSE. !< use sloped surface? 1198 1202 !< (namelist parameter alpha_surface) 1203 LOGICAL :: spinup = .FALSE. !< perform model spinup without atmosphere code? 1199 1204 LOGICAL :: stop_dt = .FALSE. !< (Siggi add short description) 1200 1205 LOGICAL :: synchronous_exchange = .FALSE. !< namelist parameter … … 1273 1278 REAL(wp) :: dt_restart = 9999999.9_wp !< namelist parameter 1274 1279 REAL(wp) :: dt_run_control = 60.0_wp !< namelist parameter 1280 REAL(wp) :: dt_spinup = 60.0_wp !< namelist parameter 1275 1281 REAL(wp) :: dt_3d = 1.0_wp !< time step 1276 1282 REAL(wp) :: dz = -1.0_wp !< namelist parameter … … 1330 1336 REAL(wp) :: skip_time_do2d_yz = 9999999.9_wp !< namelist parameter 1331 1337 REAL(wp) :: skip_time_do3d = 9999999.9_wp !< namelist parameter 1338 REAL(wp) :: spinup_pt_amplitude = 9999999.9_wp !< namelist parameter 1339 REAL(wp) :: spinup_pt_mean = 9999999.9_wp !< namelist parameter 1340 REAL(wp) :: spinup_time = 0.0_wp !< namelist parameter 1332 1341 REAL(wp) :: surface_heatflux = 9999999.9_wp !< namelist parameter 1333 1342 REAL(wp) :: surface_pressure = 1013.25_wp !< namelist parameter -
palm/trunk/SOURCE/palm.f90
r2292 r2296 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Added call to new spinup routine 28 ! 29 ! 2292 2017-06-20 09:51:42Z schwenkel 27 30 ! Implementation of new microphysic scheme: cloud_scheme = 'morrison' 28 31 ! includes two more prognostic equations for cloud drop concentration (nc) … … 184 187 message_string, microphysics_morrison, microphysics_seifert, & 185 188 nest_domain, neutral, nudging, passive_scalar, runnr, & 186 simulated_time, simulated_time_chr, urban_surface,&189 simulated_time, simulated_time_chr, spinup, urban_surface, & 187 190 user_interface_current_revision, & 188 191 user_interface_required_revision, version, wall_heatflux, & … … 392 395 393 396 CALL cpu_log( log_point(2), 'initialisation', 'stop' ) 397 398 ! 399 !-- Integration of the non-atmospheric equations (land surface model, urban 400 !-- surface model) 401 IF ( spinup ) THEN 402 CALL time_integration_spinup 403 ENDIF 394 404 395 405 ! -
palm/trunk/SOURCE/parin.f90
r2292 r2296 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Added parameters for model spinup 28 ! 29 ! 2292 2017-06-20 09:51:42Z schwenkel 27 30 ! Implementation of new microphysic scheme: cloud_scheme = 'morrison' 28 31 ! includes two more prognostic equations for cloud drop concentration (nc) … … 357 360 coupling_start_time, curvature_solution_effects_bulk, & 358 361 cycle_mg, damp_level_1d, & 362 data_output_during_spinup, & 359 363 dissipation_1d, & 360 364 dp_external, dp_level_b, dp_smooth, dpdxy, & 361 dt, dt_pr_1d, dt_run_control_1d, d x, dy, dz, dz_max,&365 dt, dt_pr_1d, dt_run_control_1d, dt_spinup, dx, dy, dz, dz_max, & 362 366 dz_stretch_factor, dz_stretch_level, end_time_1d, & 363 367 ensemble_member_nr, e_init, e_min, fft_method, & … … 386 390 sa_vertical_gradient, sa_vertical_gradient_level, scalar_advec, & 387 391 scalar_rayleigh_damping, & 392 spinup_time, spinup_pt_amplitude, spinup_pt_mean, & 388 393 statistic_regions, subs_vertical_gradient, & 389 394 subs_vertical_gradient_level, surface_heatflux, surface_pressure, & … … 547 552 initializing_actions = 'set_constant_profiles' 548 553 ENDIF 549 550 554 551 555 ! -
palm/trunk/SOURCE/radiation_model_mod.f90
r2270 r2296 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Added output of rad_sw_out for radiation_scheme = 'constant' 28 ! 29 ! 2270 2017-06-09 12:18:47Z maronga 27 30 ! Numbering changed (2 timeseries removed) 28 31 ! … … 1254 1257 + rad_lw_out(0,j,i) ) & 1255 1258 / ( 1.0_wp - alpha(j,i) ) 1259 1260 rad_sw_out(0,j,i) = alpha(j,i) * rad_sw_in(0,j,i) 1256 1261 1257 1262 ENDDO -
palm/trunk/SOURCE/urban_surface_mod.f90
r2287 r2296 26 26 ! ----------------- 27 27 ! $Id$ 28 ! Bugfix: adjust output of shf. Added support for spinups 29 ! 30 ! 2287 2017-06-15 16:46:30Z suehring 28 31 ! Bugfix in determination topography-top index 29 32 ! … … 139 142 140 143 USE control_parameters, & 141 ONLY: dz, topography, dt_3d, intermediate_timestep_count,&142 in itializing_actions, intermediate_timestep_count_max,&143 simulated_time, end_time, timestep_scheme, tsc,&144 coupling_char, io_blocks, io_group, message_string,&145 time_since_reference_point, surface_pressure,&146 g, pt_surface, large_scale_forcing, lsf_surf, 147 time_do3d, dt_do3d, average_count_3d, varnamelength,&148 urban_surface144 ONLY: coupling_start_time, dz, topography, dt_3d, & 145 intermediate_timestep_count, initializing_actions, & 146 intermediate_timestep_count_max, simulated_time, end_time, & 147 timestep_scheme, tsc, coupling_char, io_blocks, io_group, & 148 message_string, time_since_reference_point, surface_pressure, & 149 g, pt_surface, large_scale_forcing, lsf_surf, spinup, & 150 spinup_pt_mean, spinup_time, time_do3d, dt_do3d, & 151 average_count_3d, varnamelength, urban_surface 149 152 150 153 USE cpulog, & … … 3489 3492 !-- Set flag that indicates that the land surface model is switched on 3490 3493 urban_surface = .TRUE. 3494 3495 ! 3496 !-- Activate spinup 3497 IF ( spinup_time > 0.0_wp ) THEN 3498 coupling_start_time = spinup_time 3499 end_time = end_time + spinup_time 3500 IF ( spinup_pt_mean == 9999999.9_wp ) THEN 3501 spinup_pt_mean = pt_surface 3502 ENDIF 3503 spinup = .TRUE. 3504 ENDIF 3491 3505 3492 3506 10 CONTINUE … … 5161 5175 !-- store kinematic surface heat fluxes for utilization in other processes 5162 5176 !-- diffusion_s, surface_layer_fluxes,... 5163 surf_usm_h%shf(m) = surf_usm_h%wshf_eb(m) / rho_cp5177 surf_usm_h%shf(m) = surf_usm_h%wshf_eb(m) / cp 5164 5178 5165 5179 ENDDO … … 5282 5296 !-- store kinematic surface heat fluxes for utilization in other processes 5283 5297 !-- diffusion_s, surface_layer_fluxes,... 5284 surf_usm_v(l)%shf(m) = surf_usm_v(l)%wshf_eb(m) / rho_cp5298 surf_usm_v(l)%shf(m) = surf_usm_v(l)%wshf_eb(m) / cp 5285 5299 5286 5300 ENDDO … … 5316 5330 !-- Instead of this, we can adjust shf in case AH only at surface 5317 5331 surf_usm_h%shf(m) = surf_usm_h%shf(m) + & 5318 aheat(j,i) * acoef * ddx * ddy / rho_cp5332 aheat(j,i) * acoef * ddx * ddy / cp 5319 5333 ENDIF 5320 5334 ENDDO
Note: See TracChangeset
for help on using the changeset viewer.