Changeset 2320
- Timestamp:
- Jul 21, 2017 12:47:43 PM (7 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 1 added
- 2 deleted
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/Makefile
r2318 r2320 25 25 # ----------------- 26 26 # $Id$ 27 # -ls_forcing nudging 28 # +large_scale_forcing_nudging 29 # 30 # 2318 2017-07-20 17:27:44Z suehring 27 31 # Add further dependencies on surface_mod 28 32 # … … 370 374 lpm_set_attributes.f90 lpm_splitting.f90 \ 371 375 lpm_write_exchange_statistics.f90 lpm_write_restart_file.f90 \ 372 ls_forcing_mod.f90 message.f90 microphysics_mod.f90 modules.f90 mod_kinds.f90 \373 mod_particle_attributes.f90 netcdf_interface_mod.f90 nudging_mod.f90 \376 large_scale_forcing_nudging_mod.f90 message.f90 microphysics_mod.f90 \ 377 modules.f90 mod_kinds.f90 mod_particle_attributes.f90 netcdf_interface_mod.f90 \ 374 378 outflow_turbulence.f90 package_parin.f90 palm.f90 parin.f90 plant_canopy_model_mod.f90 \ 375 379 pmc_interface_mod.f90 pmc_child_mod.f90 pmc_general_mod.f90 pmc_handle_communicator_mod.f90 \ … … 453 457 check_open.o: modules.o mod_kinds.o mod_particle_attributes.o \ 454 458 netcdf_interface_mod.o posix_calls_from_fortran.o 455 check_parameters.o: modules.o mod_kinds.o land_surface_model_mod.o \459 check_parameters.o: modules.o mod_kinds.o land_surface_model_mod.o large_scale_forcing_nudging_mod.o \ 456 460 microphysics_mod.o netcdf_interface_mod.o plant_canopy_model_mod.o pmc_interface_mod.o \ 457 461 radiation_model_mod.o spectra_mod.o subsidence_mod.o synthetic_turbulence_generator_mod.o \ … … 493 497 fft_xy_mod.o: modules.o mod_kinds.o singleton_mod.o temperton_fft_mod.o 494 498 flow_statistics.o: modules.o cpulog_mod.o mod_kinds.o land_surface_model_mod.o \ 495 netcdf_interface_mod.o radiation_model_mod.o surface_mod.o499 large_scale_forcing_nudging_mod.o netcdf_interface_mod.o radiation_model_mod.o surface_mod.o 496 500 global_min_max.o: modules.o mod_kinds.o 497 header.o: modules.o cpulog_mod.o mod_kinds.o netcdf_interface_mod.o land_surface_model_mod.o\498 microphysics_mod.o plant_canopy_model_mod.o pmc_handle_communicator_mod.o pmc_interface_mod.o \499 radiation_model_mod.o spectra_mod.o subsidence_mod.o surface_mod.o virtual_flight_mod.o501 header.o: modules.o cpulog_mod.o mod_kinds.o large_scale_forcing_nudging_mod.o netcdf_interface_mod.o \ 502 land_surface_model_mod.o microphysics_mod.o plant_canopy_model_mod.o pmc_handle_communicator_mod.o \ 503 pmc_interface_mod.o radiation_model_mod.o spectra_mod.o subsidence_mod.o surface_mod.o virtual_flight_mod.o 500 504 inflow_turbulence.o: modules.o cpulog_mod.o mod_kinds.o 501 505 init_1d_model.o: modules.o mod_kinds.o 502 506 init_3d_model.o: modules.o mod_kinds.o advec_ws.o cpulog_mod.o disturb_heatflux.o land_surface_model_mod.o \ 503 l pm_init.o ls_forcing_mod.o netcdf_interface_mod.o plant_canopy_model_mod.o \504 radiation_model_mod.o random_function_mod.o random_generator_parallel_mod.o \507 large_scale_forcing_nudging_mod.o lpm_init.o netcdf_interface_mod.o \ 508 plant_canopy_model_mod.o radiation_model_mod.o random_function_mod.o random_generator_parallel_mod.o \ 505 509 microphysics_mod.o mod_particle_attributes.o surface_layer_fluxes_mod.o \ 506 510 urban_surface_mod.o virtual_flight_mod.o surface_mod.o wind_turbine_model_mod.o … … 518 522 interaction_droplets_ptq.o: modules.o mod_kinds.o 519 523 land_surface_model_mod.o: modules.o mod_kinds.o radiation_model_mod.o surface_mod.o 524 large_scale_forcing_nudging_mod.o: modules.o cpulog_mod.o mod_kinds.o surface_mod.o 520 525 local_stop.o: modules.o mod_kinds.o pmc_interface_mod.o 521 526 local_tremain.o: modules.o cpulog_mod.o mod_kinds.o … … 551 556 lpm_write_exchange_statistics.o: modules.o mod_kinds.o mod_particle_attributes.o 552 557 lpm_write_restart_file.o: modules.o mod_kinds.o mod_particle_attributes.o 553 ls_forcing_mod.o: modules.o cpulog_mod.o mod_kinds.o surface_mod.o554 558 message.o: modules.o mod_kinds.o pmc_interface_mod.o 555 559 microphysics_mod.o: modules.o cpulog_mod.o mod_kinds.o surface_mod.o … … 559 563 netcdf_interface_mod.o: netcdf_interface_mod.f90 modules.o mod_kinds.o \ 560 564 land_surface_model_mod.o radiation_model_mod.o spectra_mod.o urban_surface_mod.o 561 nudging_mod.o: modules.o cpulog_mod.o mod_kinds.o562 565 outflow_turbulence.o: modules.o cpulog_mod.o mod_kinds.o 563 566 package_parin.o: modules.o mod_kinds.o mod_particle_attributes.o 564 palm.o: modules.o cpulog_mod.o land_surface_model_mod.o ls_forcing_mod.o mod_kinds.o nudging_mod.o\567 palm.o: modules.o cpulog_mod.o land_surface_model_mod.o mod_kinds.o \ 565 568 pmc_interface_mod.o surface_layer_fluxes_mod.o 566 569 parin.o: modules.o cpulog_mod.o land_surface_model_mod.o mod_kinds.o netcdf_interface_mod.o \ … … 589 592 advec_ws.o buoyancy.o calc_radiation.o coriolis.o \ 590 593 cpulog_mod.o diffusion_e.o diffusion_s.o diffusion_u.o diffusion_v.o diffusion_w.o \ 591 eqn_state_seawater.o mod_kinds.o microphysics_mod.o \ 592 nudging_mod.o plant_canopy_model_mod.o production_e.o radiation_model_mod.o \ 594 eqn_state_seawater.o large_scale_forcing_nudging_mod.o modules.o cpulog_mod.o mod_kinds.o surface_mod.o \ 595 mod_kinds.o microphysics_mod.o \ 596 plant_canopy_model_mod.o production_e.o radiation_model_mod.o \ 593 597 subsidence_mod.o surface_mod.o user_actions.o wind_turbine_model_mod.o 594 598 progress_bar_mod.o: modules.o mod_kinds.o … … 620 624 time_integration.o: modules.o advec_ws.o buoyancy.o calc_mean_profile.o \ 621 625 cpulog_mod.o data_output_flight.o disturb_heatflux.o interaction_droplets_ptq.o land_surface_model_mod.o \ 622 l s_forcing_mod.o mod_kinds.o nudging_mod.o pmc_interface_mod.o production_e.o \626 large_scale_forcing_nudging_mod.o mod_kinds.o pmc_interface_mod.o production_e.o \ 623 627 prognostic_equations.o progress_bar_mod.o radiation_model_mod.o \ 624 628 spectra_mod.o user_actions.o microphysics_mod.o synthetic_turbulence_generator_mod.o \ -
palm/trunk/SOURCE/boundary_conds.f90
r2292 r2320 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Remove unused control parameter large_scale_forcing from only-list 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) … … 166 169 ibc_pt_b, ibc_pt_t, ibc_q_b, ibc_q_t, ibc_s_b, ibc_s_t, & 167 170 ibc_sa_t, ibc_uv_b, ibc_uv_t, inflow_l, inflow_n, inflow_r, & 168 inflow_s, intermediate_timestep_count, large_scale_forcing,&171 inflow_s, intermediate_timestep_count, & 169 172 microphysics_morrison, microphysics_seifert, nest_domain, & 170 173 nest_bound_l, nest_bound_s, nudging, ocean, outflow_l, & -
palm/trunk/SOURCE/check_parameters.f90
r2312 r2320 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 23 ! 22 ! 23 ! 24 24 ! Former revisions: 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Modularize large-scale forcing and nudging 28 ! 29 ! 2312 2017-07-14 20:26:51Z hoffmann 27 30 ! PA0349 and PA0420 removed. 28 31 ! … … 498 501 ONLY: lsm_check_data_output, lsm_check_data_output_pr, & 499 502 lsm_check_parameters 503 504 USE lsf_nudging_mod, & 505 ONLY: lsf_nudging_check_parameters, lsf_nudging_check_data_output_pr, & 506 qsws_surf, shf_surf 500 507 501 508 USE kinds … … 1227 1234 !-- When radiation model is used, peform addtional checks 1228 1235 IF ( radiation ) CALL radiation_check_parameters 1236 ! 1237 !-- When large-scale forcing or nudging is used, peform addtional checks 1238 IF ( large_scale_forcing .OR. nudging ) CALL lsf_nudging_check_parameters 1239 1229 1240 1230 1241 … … 2848 2859 ENDIF 2849 2860 2850 CASE ( 'td_lsa_lpt' )2851 IF ( .NOT. large_scale_forcing ) THEN2852 message_string = 'data_output_pr = ' // &2853 TRIM( data_output_pr(i) ) // ' is not imp' // &2854 'lemented for large_scale_forcing = .FALSE.'2855 CALL message( 'check_parameters', 'PA0393', 1, 2, 0, 6, 0 )2856 ELSE2857 dopr_index(i) = 812858 dopr_unit(i) = 'K/s'2859 hom(:,2,81,:) = SPREAD( zu, 2, statistic_regions+1 )2860 ENDIF2861 2862 CASE ( 'td_lsa_q' )2863 IF ( .NOT. large_scale_forcing ) THEN2864 message_string = 'data_output_pr = ' // &2865 TRIM( data_output_pr(i) ) // ' is not imp' // &2866 'lemented for large_scale_forcing = .FALSE.'2867 CALL message( 'check_parameters', 'PA0393', 1, 2, 0, 6, 0 )2868 ELSE2869 dopr_index(i) = 822870 dopr_unit(i) = 'kg/kgs'2871 hom(:,2,82,:) = SPREAD( zu, 2, statistic_regions+1 )2872 ENDIF2873 2874 CASE ( 'td_sub_lpt' )2875 IF ( .NOT. large_scale_forcing ) THEN2876 message_string = 'data_output_pr = ' // &2877 TRIM( data_output_pr(i) ) // ' is not imp' // &2878 'lemented for large_scale_forcing = .FALSE.'2879 CALL message( 'check_parameters', 'PA0393', 1, 2, 0, 6, 0 )2880 ELSE2881 dopr_index(i) = 832882 dopr_unit(i) = 'K/s'2883 hom(:,2,83,:) = SPREAD( zu, 2, statistic_regions+1 )2884 ENDIF2885 2886 CASE ( 'td_sub_q' )2887 IF ( .NOT. large_scale_forcing ) THEN2888 message_string = 'data_output_pr = ' // &2889 TRIM( data_output_pr(i) ) // ' is not imp' // &2890 'lemented for large_scale_forcing = .FALSE.'2891 CALL message( 'check_parameters', 'PA0393', 1, 2, 0, 6, 0 )2892 ELSE2893 dopr_index(i) = 842894 dopr_unit(i) = 'kg/kgs'2895 hom(:,2,84,:) = SPREAD( zu, 2, statistic_regions+1 )2896 ENDIF2897 2898 CASE ( 'td_nud_lpt' )2899 IF ( .NOT. nudging ) THEN2900 message_string = 'data_output_pr = ' // &2901 TRIM( data_output_pr(i) ) // ' is not imp' // &2902 'lemented for nudging = .FALSE.'2903 CALL message( 'check_parameters', 'PA0394', 1, 2, 0, 6, 0 )2904 ELSE2905 dopr_index(i) = 852906 dopr_unit(i) = 'K/s'2907 hom(:,2,85,:) = SPREAD( zu, 2, statistic_regions+1 )2908 ENDIF2909 2910 CASE ( 'td_nud_q' )2911 IF ( .NOT. nudging ) THEN2912 message_string = 'data_output_pr = ' // &2913 TRIM( data_output_pr(i) ) // ' is not imp' // &2914 'lemented for nudging = .FALSE.'2915 CALL message( 'check_parameters', 'PA0394', 1, 2, 0, 6, 0 )2916 ELSE2917 dopr_index(i) = 862918 dopr_unit(i) = 'kg/kgs'2919 hom(:,2,86,:) = SPREAD( zu, 2, statistic_regions+1 )2920 ENDIF2921 2922 CASE ( 'td_nud_u' )2923 IF ( .NOT. nudging ) THEN2924 message_string = 'data_output_pr = ' // &2925 TRIM( data_output_pr(i) ) // ' is not imp' // &2926 'lemented for nudging = .FALSE.'2927 CALL message( 'check_parameters', 'PA0394', 1, 2, 0, 6, 0 )2928 ELSE2929 dopr_index(i) = 872930 dopr_unit(i) = 'm/s2'2931 hom(:,2,87,:) = SPREAD( zu, 2, statistic_regions+1 )2932 ENDIF2933 2934 CASE ( 'td_nud_v' )2935 IF ( .NOT. nudging ) THEN2936 message_string = 'data_output_pr = ' // &2937 TRIM( data_output_pr(i) ) // ' is not imp' // &2938 'lemented for nudging = .FALSE.'2939 CALL message( 'check_parameters', 'PA0394', 1, 2, 0, 6, 0 )2940 ELSE2941 dopr_index(i) = 882942 dopr_unit(i) = 'm/s2'2943 hom(:,2,88,:) = SPREAD( zu, 2, statistic_regions+1 )2944 ENDIF2945 2946 2861 CASE ( 's*2' ) 2947 2862 IF ( .NOT. passive_scalar ) THEN … … 2962 2877 CALL lsm_check_data_output_pr( data_output_pr(i), i, unit, & 2963 2878 dopr_unit(i) ) 2879 2880 CALL lsf_nudging_check_data_output_pr( data_output_pr(i), i, & 2881 unit, dopr_unit(i) ) 2964 2882 2965 2883 IF ( unit == 'illegal' ) THEN … … 3885 3803 3886 3804 ! 3887 !-- Check nudging and large scale forcing from external file3888 IF ( nudging .AND. ( .NOT. large_scale_forcing ) ) THEN3889 message_string = 'Nudging requires large_scale_forcing = .T.. &'// &3890 'Surface fluxes and geostrophic wind should be &'// &3891 'prescribed in file LSF_DATA'3892 CALL message( 'check_parameters', 'PA0374', 1, 2, 0, 6, 0 )3893 ENDIF3894 3895 IF ( large_scale_forcing .AND. ( bc_lr /= 'cyclic' .OR. &3896 bc_ns /= 'cyclic' ) ) THEN3897 message_string = 'Non-cyclic lateral boundaries do not allow for &' // &3898 'the usage of large scale forcing from external file.'3899 CALL message( 'check_parameters', 'PA0375', 1, 2, 0, 6, 0 )3900 ENDIF3901 3902 IF ( large_scale_forcing .AND. ( .NOT. humidity ) ) THEN3903 message_string = 'The usage of large scale forcing from external &'// &3904 'file LSF_DATA requires humidity = .T..'3905 CALL message( 'check_parameters', 'PA0376', 1, 2, 0, 6, 0 )3906 ENDIF3907 3908 IF ( large_scale_forcing .AND. passive_scalar ) THEN3909 message_string = 'The usage of large scale forcing from external &'// &3910 'file LSF_DATA is not implemented for passive scalars'3911 CALL message( 'check_parameters', 'PA0440', 1, 2, 0, 6, 0 )3912 ENDIF3913 3914 IF ( large_scale_forcing .AND. topography /= 'flat' &3915 .AND. .NOT. lsf_exception ) THEN3916 message_string = 'The usage of large scale forcing from external &'// &3917 'file LSF_DATA is not implemented for non-flat topography'3918 CALL message( 'check_parameters', 'PA0377', 1, 2, 0, 6, 0 )3919 ENDIF3920 3921 IF ( large_scale_forcing .AND. ocean ) THEN3922 message_string = 'The usage of large scale forcing from external &'// &3923 'file LSF_DATA is not implemented for ocean runs'3924 CALL message( 'check_parameters', 'PA0378', 1, 2, 0, 6, 0 )3925 ENDIF3926 3927 !3928 3805 !-- Prevent empty time records in volume, cross-section and masked data in case 3929 3806 !-- of non-parallel netcdf-output in restart runs -
palm/trunk/SOURCE/flow_statistics.f90
r2296 r2320 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Modularize large-scale forcing and nudging 28 ! 29 ! 2296 2017-06-28 07:53:56Z maronga 27 30 ! Enabled output of radiation quantities for radiation_scheme = 'constant' 28 31 ! … … 243 246 momentumflux_output_conversion, nc, nr, p, prho, prr, pt, q, & 244 247 qc, ql, qr, rho_air, rho_air_zw, rho_ocean, s, & 245 sa, td_lsa_lpt, td_lsa_q, td_sub_lpt, td_sub_q, time_vert, u, & 246 ug, v, vg, vpt, w, w_subs, waterflux_output_conversion, zw 248 sa, u, ug, v, vg, vpt, w, w_subs, waterflux_output_conversion, zw 247 249 248 250 USE cloud_parameters, & … … 272 274 USE land_surface_model_mod, & 273 275 ONLY: m_soil_h, nzb_soil, nzt_soil, t_soil_h 276 277 USE lsf_nudging_mod, & 278 ONLY: td_lsa_lpt, td_lsa_q, td_sub_lpt, td_sub_q, time_vert 274 279 275 280 USE netcdf_interface, & -
palm/trunk/SOURCE/header.f90
r2300 r2320 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Modularize large-scale forcing and nudging 28 ! 29 ! 2300 2017-06-29 13:31:14Z raasch 27 30 ! host-specific code removed 28 31 ! … … 342 345 USE land_surface_model_mod, & 343 346 ONLY: lsm_header 347 348 USE lsf_nudging_mod, & 349 ONLY: lsf_nudging_header 344 350 345 351 USE microphysics_mod, & … … 746 752 ! 747 753 !-- Large scale forcing and nudging 748 WRITE ( io, 160 ) 749 IF ( large_scale_forcing ) THEN 750 WRITE ( io, 162 ) 751 WRITE ( io, 163 ) 752 753 IF ( large_scale_subsidence ) THEN 754 IF ( .NOT. use_subsidence_tendencies ) THEN 755 WRITE ( io, 164 ) 756 ELSE 757 WRITE ( io, 165 ) 758 ENDIF 759 ENDIF 760 761 IF ( bc_pt_b == 'dirichlet' ) THEN 762 WRITE ( io, 180 ) 763 ELSEIF ( bc_pt_b == 'neumann' ) THEN 764 WRITE ( io, 181 ) 765 ENDIF 766 767 IF ( bc_q_b == 'dirichlet' ) THEN 768 WRITE ( io, 182 ) 769 ELSEIF ( bc_q_b == 'neumann' ) THEN 770 WRITE ( io, 183 ) 771 ENDIF 772 773 WRITE ( io, 167 ) 774 IF ( nudging ) THEN 775 WRITE ( io, 170 ) 776 ENDIF 777 ELSE 778 WRITE ( io, 161 ) 779 WRITE ( io, 171 ) 780 ENDIF 781 IF ( large_scale_subsidence ) THEN 782 WRITE ( io, 168 ) 783 WRITE ( io, 169 ) 784 ENDIF 754 IF ( large_scale_forcing ) CALL lsf_nudging_header( io ) 785 755 786 756 ! … … 2012 1982 /' ',2(1X,E12.5),'Pa/m in x/y direction', & 2013 1983 /' starting from dp_level_b =', F8.3, 'm', A /) 2014 160 FORMAT (//' Large scale forcing and nudging:'/ &2015 ' -------------------------------'/)2016 161 FORMAT (' --> No large scale forcing from external is used (default) ')2017 162 FORMAT (' --> Large scale forcing from external file LSF_DATA is used: ')2018 163 FORMAT (' - large scale advection tendencies ')2019 164 FORMAT (' - large scale subsidence velocity w_subs ')2020 165 FORMAT (' - large scale subsidence tendencies ')2021 167 FORMAT (' - and geostrophic wind components ug and vg')2022 168 FORMAT (' --> Large-scale vertical motion is used in the ', &2023 'prognostic equation(s) for')2024 169 FORMAT (' the scalar(s) only')2025 170 FORMAT (' --> Nudging is used')2026 171 FORMAT (' --> No nudging is used (default) ')2027 180 FORMAT (' - prescribed surface values for temperature')2028 181 FORMAT (' - prescribed surface fluxes for temperature')2029 182 FORMAT (' - prescribed surface values for humidity')2030 183 FORMAT (' - prescribed surface fluxes for humidity')2031 1984 200 FORMAT (//' Run time and time step information:'/ & 2032 1985 ' ----------------------------------'/) -
palm/trunk/SOURCE/init_3d_model.f90
r2292 r2320 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Modularize large-scale forcing and nudging 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) … … 372 375 ONLY: lsm_init, lsm_init_arrays 373 376 374 USE ls_forcing_mod 377 USE lsf_nudging_mod, & 378 ONLY: lsf_init, ls_forcing_surf, nudge_init 375 379 376 380 USE microphysics_mod, & … … 956 960 957 961 ! 962 !-- Initialize nudging if required 963 IF ( nudging ) THEN 964 CALL nudge_init 965 ENDIF 966 967 ! 968 !-- Initialize reading of large scale forcing from external file - if required 969 IF ( large_scale_forcing ) THEN 970 CALL lsf_init 971 ENDIF 972 973 ! 958 974 !-- Allocate arrays containing the RK coefficient for calculation of 959 975 !-- perturbation pressure and turbulent fluxes. At this point values are … … 1092 1108 1093 1109 CALL location_message( 'initializing with constant profiles', .FALSE. ) 1094 !1095 !-- Overwrite initial profiles in case of nudging1096 IF ( nudging ) THEN1097 pt_init = ptnudge(:,1)1098 u_init = unudge(:,1)1099 v_init = vnudge(:,1)1100 IF ( humidity ) THEN ! is passive_scalar correct???1101 q_init = qnudge(:,1)1102 ENDIF1103 1104 WRITE( message_string, * ) 'Initial profiles of u, v and ', &1105 'scalars from NUDGING_DATA are used.'1106 CALL message( 'init_3d_model', 'PA0370', 0, 0, 0, 6, 0 )1107 ENDIF1108 1109 1110 ! 1110 1111 !-- Overwrite initial profiles in case of synthetic turbulence generator -
palm/trunk/SOURCE/modules.f90
r2300 r2320 25 25 ! ----------------- 26 26 ! $Id$ 27 ! -ptnudge, qnudge, tnudge, td_lsa_lpt, td_lsa_q, td_sub_lpt, td_sub_q, ug_vert, 28 ! vg_vert, unudge, vnudge, wsubs_vert, shf_surf, p_surf, pt_surf, q_surt, 29 ! qsws_surf, tmp_tnudge, timenudge, time_surf, time_vert 30 ! 31 ! 2300 2017-06-29 13:31:14Z raasch 27 32 ! default value for host changed to '????', default value for loop_optimization 28 33 ! changed to 'cache', default value for termination_time_needed set to 35.0 … … 532 537 REAL(wp), DIMENSION(:), ALLOCATABLE :: ptdf_x !< damping factor for potential temperature in x-direction 533 538 REAL(wp), DIMENSION(:), ALLOCATABLE :: ptdf_y !< damping factor for potential temperature in y-direction 534 REAL(wp), DIMENSION(:), ALLOCATABLE :: p_surf !< time-dependent surface pressure (large scale forcing)535 REAL(wp), DIMENSION(:), ALLOCATABLE :: pt_surf !< time-dependent surface temperature (large scale forcing)536 539 REAL(wp), DIMENSION(:), ALLOCATABLE :: pt_init !< initial profile of potential temperature 537 REAL(wp), DIMENSION(:), ALLOCATABLE :: qsws_surf !< time-dependent surface latent heat flux (large scale forcing)538 540 REAL(wp), DIMENSION(:), ALLOCATABLE :: q_init !< initial profile of specific humidity 539 541 !< (or total water content with active cloud physics) 540 REAL(wp), DIMENSION(:), ALLOCATABLE :: q_surf !< time-dependent surface specific humidity (large scale forcing)541 542 REAL(wp), DIMENSION(:), ALLOCATABLE :: rdf !< rayleigh damping factor for velocity components 542 543 REAL(wp), DIMENSION(:), ALLOCATABLE :: rdf_sc !< rayleigh damping factor for scalar quantities … … 545 546 REAL(wp), DIMENSION(:), ALLOCATABLE :: s_init !< initial profile of passive scalar concentration 546 547 REAL(wp), DIMENSION(:), ALLOCATABLE :: sa_init !< initial profile of salinity (ocean) 547 REAL(wp), DIMENSION(:), ALLOCATABLE :: shf_surf !< time-dependent surface sensible heat flux (large scale forcing)548 REAL(wp), DIMENSION(:), ALLOCATABLE :: timenudge !< times at which vertical profiles are defined in NUDGING_DATA (nudging)549 REAL(wp), DIMENSION(:), ALLOCATABLE :: time_surf !< times at which surface values/fluxes are defined in LSF_DATA (large scale forcing)550 REAL(wp), DIMENSION(:), ALLOCATABLE :: time_vert !< times at which vertical profiles are defined in LSF_DATA (large scale forcing)551 REAL(wp), DIMENSION(:), ALLOCATABLE :: tmp_tnudge !< current nudging time scale552 548 REAL(wp), DIMENSION(:), ALLOCATABLE :: ug !< geostrophic wind component in x-direction 553 549 REAL(wp), DIMENSION(:), ALLOCATABLE :: u_init !< initial profile of horizontal velocity component u … … 593 589 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: precipitation_amount !< precipitation amount due to gravitational settling (bulk microphysics) 594 590 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: precipitation_rate !< precipitation rate (bulk microphysics) 595 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: ptnudge !< vertical profile of pot. temperature interpolated to vertical grid (nudging)596 591 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: pt_slope_ref !< potential temperature in rotated coordinate system 597 592 !< (in case of sloped surface) 598 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: qnudge !< vertical profile of specific humidity interpolated to vertical grid (nudging)599 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: tnudge !< vertical profile of nudging time scale interpolated to vertical grid (nudging)600 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: td_lsa_lpt !< temperature tendency due to large scale advection (large scale forcing)601 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: td_lsa_q !< specific humidity tendency due to large scale advection (large scale forcing)602 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: td_sub_lpt !< temperature tendency due to subsidence/ascent (large scale forcing)603 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: td_sub_q !< specific humidity tendency due to subsidence/ascent (large scale forcing)604 593 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: total_2d_a !< horizontal array to store the total domain data, used for atmosphere-ocean coupling (atmosphere data) 605 594 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: total_2d_o !< horizontal array to store the total domain data, used for atmosphere-ocean coupling (ocean data) 606 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: ug_vert !< vertical profile of geostrophic wind component in x-direction interpolated to vertical grid (large scale forcing)607 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: unudge !< vertical profile of wind component in x-direction interpolated to vertical grid (nudging)608 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: vnudge !< vertical profile of wind component in y-direction interpolated to vertical grid (nudging)609 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: vg_vert !< vertical profile of geostrophic wind component in y-direction interpolated to vertical grid (large scale forcing)610 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: wnudge !< vertical profile of subsidence/ascent velocity interpolated to vertical grid (nudging) ???611 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: wsubs_vert !< vertical profile of wind component in z-direction interpolated to vertical grid (nudging) ???612 595 613 596 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: d !< divergence … … 1061 1044 INTEGER(iwp) :: mg_switch_to_pe0_level = -1 !< namelist parameter 1062 1045 INTEGER(iwp) :: mid !< masked output running index 1063 INTEGER(iwp) :: nlsf = 1000 !< maximum number of profiles in LSF_DATA (large scale forcing)1064 INTEGER(iwp) :: ntnudge = 1000 !< maximum number of profiles in NUDGING_DATA (nudging)1065 1046 INTEGER(iwp) :: ngsrb = 2 !< namelist parameter 1066 1047 INTEGER(iwp) :: nr_timesteps_this_run = 0 !< number of timesteps (cpu time measurements) -
palm/trunk/SOURCE/palm.f90
r2298 r2320 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Modularize large-scale forcing and nudging 28 ! 29 ! 2298 2017-06-29 09:28:18Z raasch 27 30 ! type of write_binary changed from CHARACTER to LOGICAL, 28 31 ! user interface required revision updated, MPI2 related part removed … … 207 210 ONLY: lsm_last_actions 208 211 209 USE ls_forcing_mod, &210 ONLY: init_ls_forcing211 212 USE nudge_mod, &213 ONLY: init_nudge214 215 212 USE particle_attributes, & 216 213 ONLY: particle_advection … … 330 327 !-- Generate grid parameters 331 328 CALL init_grid 332 333 !334 !-- Initialize nudging if required335 IF ( nudging ) THEN336 CALL init_nudge337 ENDIF338 339 !340 !-- Initialize reading of large scale forcing from external file - if required341 IF ( large_scale_forcing ) THEN342 CALL init_ls_forcing343 ENDIF344 329 345 330 ! -
palm/trunk/SOURCE/prognostic_equations.f90
r2292 r2320 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Modularize large-scale forcing and nudging 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) … … 325 328 USE kinds 326 329 327 USE ls _forcing_mod,&328 ONLY: ls_advec 330 USE lsf_nudging_mod, & 331 ONLY: ls_advec, nudge 329 332 330 333 USE microphysics_mod, & 331 334 ONLY: microphysics_control 332 333 USE nudge_mod, &334 ONLY: nudge335 335 336 336 USE plant_canopy_model_mod, & -
palm/trunk/SOURCE/read_var_list.f90
r2265 r2320 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Formatting adjustment 28 ! 29 ! 2265 2017-06-08 16:58:28Z schwenkel 27 30 ! Unused variables removed. 28 31 ! … … 504 507 CASE ( 'large_scale_forcing' ) 505 508 READ ( 13 ) large_scale_forcing 506 509 CASE ( 'large_scale_subsidence' ) 507 510 READ ( 13 ) large_scale_subsidence 508 511 CASE ( 'limiter_sedimentation' ) -
palm/trunk/SOURCE/time_integration.f90
r2311 r2320 343 343 skip_time_do_lsm 344 344 345 USE ls _forcing_mod,&346 ONLY: ls_forcing_surf, ls_forcing_vert345 USE lsf_nudging_mod, & 346 ONLY: calc_tnudge, ls_forcing_surf, ls_forcing_vert, nudge_ref 347 347 348 348 USE microphysics_mod, & 349 349 ONLY: collision_turbulence 350 351 USE nudge_mod, &352 ONLY: calc_tnudge, nudge_ref353 350 354 351 USE particle_attributes, & … … 764 761 intermediate_timestep_count == intermediate_timestep_count_max )& 765 762 THEN 766 CALL ls_forcing_surf 763 CALL ls_forcing_surf( simulated_time ) 767 764 ENDIF 768 765
Note: See TracChangeset
for help on using the changeset viewer.