Changeset 1240
- Timestamp:
- Oct 29, 2013 1:21:31 PM (11 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/Makefile
r1239 r1240 20 20 # Current revisions: 21 21 # ------------------ 22 # +nudging, ls_forcing22 # 23 23 # 24 24 # Former revisions: … … 158 158 lpm_set_attributes.f90 lpm_sort_arrays.f90 \ 159 159 lpm_write_exchange_statistics.f90 lpm_write_restart_file.f90 \ 160 ls_forcing.f90 \ 161 message.f90 microphysics.f90 modules.f90 netcdf.f90 nudging.f90 \ 162 package_parin.f90 palm.f90 parin.f90 plant_canopy_model.f90 poisfft.f90 \ 160 message.f90 microphysics.f90 modules.f90 netcdf.f90 package_parin.f90 \ 161 palm.f90 parin.f90 plant_canopy_model.f90 poisfft.f90 \ 163 162 poismg.f90 prandtl_fluxes.f90 pres.f90 print_1d.f90 \ 164 163 production_e.f90 prognostic_equations.f90 random_function.f90 \ … … 304 303 lpm_write_exchange_statistics.o: modules.o 305 304 lpm_write_restart_file.o: modules.o 306 ls_forcing.o: modules.o307 305 message.o: modules.o 308 306 microphysics.o: modules.o 309 307 modules.o: modules.f90 310 308 netcdf.o: modules.o 311 nudging.o: modules.o312 309 package_parin.o: modules.o 313 palm.o: modules.o nudging.o ls_forcing.o310 palm.o: modules.o 314 311 parin.o: modules.o 315 312 plant_canopy_model.o: modules.o 316 313 poisfft.o: modules.o fft_xy.o tridia_solver.o 317 314 poismg.o: modules.o 318 prandtl_fluxes.o: modules.o ls_forcing.o315 prandtl_fluxes.o: modules.o 319 316 pres.o: modules.o poisfft.o 320 317 print_1d.o: modules.o … … 325 322 diffusion_e.o diffusion_s.o diffusion_u.o diffusion_v.o diffusion_w.o \ 326 323 eqn_state_seawater.o impact_of_latent_heat.o microphysics.o \ 327 nudging.oplant_canopy_model.o production_e.o subsidence.o user_actions.o324 plant_canopy_model.o production_e.o subsidence.o user_actions.o 328 325 random_gauss.o: random_function.o 329 326 read_3d_binary.o: modules.o random_function.o … … 339 336 temperton_fft.o: modules.o 340 337 time_integration.o: modules.o advec_ws.o buoyancy.o interaction_droplets_ptq.o \ 341 ls_forcing.oproduction_e.o prognostic_equations.o user_actions.o338 production_e.o prognostic_equations.o user_actions.o 342 339 timestep.o: modules.o 343 340 timestep_scheme_steering.o: modules.o -
palm/trunk/SOURCE/boundary_conds.f90
r1239 r1240 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! Adjust ug and vg at each timestep in case of large_scale_forcing22 ! 23 23 ! 24 24 ! Former revisions: … … 147 147 u_p(nzt+1,:,:) = u_init(nzt+1) 148 148 v_p(nzt+1,:,:) = v_init(nzt+1) 149 IF ( large_scale_forcing) THEN150 u_p(nzt+1,:,:) = ug(nzt+1)151 v_p(nzt+1,:,:) = vg(nzt+1)152 END IF153 149 !$acc end kernels 154 150 ELSE -
palm/trunk/SOURCE/buoyancy.f90
r1239 r1240 20 20 ! Currrent revisions: 21 21 ! ------------------ 22 ! Generalize calc_mean_profile for wider use: use additional steering23 ! character loc24 22 ! 25 23 ! … … 346 344 347 345 348 SUBROUTINE calc_mean_profile( var, pr , loc)346 SUBROUTINE calc_mean_profile( var, pr ) 349 347 350 348 !------------------------------------------------------------------------------! … … 365 363 366 364 INTEGER :: i, j, k, omp_get_thread_num, pr, tn 367 CHARACTER (LEN=*) :: loc368 365 #if defined( __nopointer ) 369 366 REAL, DIMENSION(:,:,:) :: var … … 417 414 ENDIF 418 415 419 SELECT CASE ( loc ) 420 421 CASE ( 'time_int' ) 422 423 ref_state(:) = hom(:,1,pr,0) ! this is used in the buoyancy term 424 425 426 CASE ( 'nudging' ) 427 !nothing to be done 428 429 430 CASE DEFAULT 431 message_string = 'unknown location "' // loc // '"' 432 CALL message( 'calc_mean_profile', 'PA0379', 1, 2, 0, 6, 0 ) 433 434 END SELECT 435 436 416 ref_state(:) = hom(:,1,pr,0) ! this is used in the buoyancy term 437 417 438 418 END SUBROUTINE calc_mean_profile -
palm/trunk/SOURCE/check_parameters.f90
r1239 r1240 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! profiles of ug and vg added 23 ! checks for nudging and large scale forcing from external file 22 ! 24 23 ! 25 24 ! Former revisions: … … 312 311 USE statistics 313 312 USE subsidence_mod 314 USE statistics315 313 USE transpose_indices 316 314 … … 1608 1606 ENDIF 1609 1607 1610 IF (myid == 0 )THEN 1611 PRINT*, "vorher surface_heatflux: ", surface_heatflux 1612 END IF 1613 1614 IF ( surface_heatflux == 9999999.9 .AND. .NOT. large_scale_forcing ) THEN 1615 constant_heatflux = .FALSE. 1616 ELSE 1617 constant_heatflux = .TRUE. 1618 IF ( TRIM( initializing_actions ) /= 'read_restart_data' ) THEN 1619 surface_heatflux = shf_surf(1) 1620 ENDIF 1621 ENDIF 1622 1623 IF (myid == 0 )THEN 1624 PRINT*, "nachher surface_heatflux: ", surface_heatflux 1625 END IF 1626 1608 IF ( surface_heatflux == 9999999.9 ) constant_heatflux = .FALSE. 1627 1609 IF ( top_heatflux == 9999999.9 ) constant_top_heatflux = .FALSE. 1628 1610 … … 1744 1726 ENDIF 1745 1727 1746 IF ( surface_waterflux == 9999999.9 .AND. & 1747 .NOT. large_scale_forcing ) THEN 1748 constant_waterflux = .FALSE. 1749 ELSE 1750 constant_waterflux = .TRUE. 1751 IF ( TRIM( initializing_actions ) /= 'read_restart_data' ) THEN 1752 surface_waterflux = qsws_surf(1) 1753 ENDIF 1754 ENDIF 1728 IF ( surface_waterflux == 9999999.9 ) constant_waterflux = .FALSE. 1755 1729 1756 1730 ! … … 2692 2666 ENDIF 2693 2667 2694 CASE ( 'ug' )2695 dopr_index(i) = 782696 dopr_unit(i) = 'm/s'2697 hom(:,2,78,:) = SPREAD( zu, 2, statistic_regions+1 )2698 2699 CASE ( 'vg' )2700 dopr_index(i) = 792701 dopr_unit(i) = 'm/s'2702 hom(:,2,79,:) = SPREAD( zu, 2, statistic_regions+1 )2703 2704 2668 CASE DEFAULT 2705 2669 … … 3633 3597 3634 3598 ! 3635 !-- Check nudging and large scale forcing from external file3636 IF ( nudging .AND. ( .NOT. large_scale_forcing ) ) THEN3637 message_string = 'Nudging requires large_scale_forcing = .T.. &'// &3638 'Surface fluxes and geostrophic wind should be &'// &3639 'prescribed in file LSF_DATA'3640 CALL message( 'check_parameters', 'PA0374', 1, 2, 0, 6, 0 )3641 ENDIF3642 3643 IF ( large_scale_forcing .AND. ( bc_lr /= 'cyclic' .OR. &3644 bc_ns /= 'cyclic' ) ) THEN3645 message_string = 'Non-cyclic lateral boundaries do not allow for &' // &3646 'the usage of large scale forcing from external file.'3647 CALL message( 'check_parameters', 'PA0375', 1, 2, 0, 6, 0 )3648 ENDIF3649 3650 IF ( large_scale_forcing .AND. ( .NOT. humidity ) ) THEN3651 message_string = 'The usage of large scale forcing from external &'//&3652 'file LSF_DATA requires humidity = .T..'3653 CALL message( 'check_parameters', 'PA0376', 1, 2, 0, 6, 0 )3654 ENDIF3655 3656 IF ( large_scale_forcing .AND. topography /= 'flat' ) THEN3657 message_string = 'The usage of large scale forcing from external &'//&3658 'file LSF_DATA is not implemented for non-flat topography'3659 CALL message( 'check_parameters', 'PA0377', 1, 2, 0, 6, 0 )3660 ENDIF3661 3662 IF ( large_scale_forcing .AND. ocean ) THEN3663 message_string = 'The usage of large scale forcing from external &'//&3664 'file LSF_DATA is not implemented for ocean runs'3665 CALL message( 'check_parameters', 'PA0378', 1, 2, 0, 6, 0 )3666 ENDIF3667 !3668 3599 !-- Check &userpar parameters 3669 3600 CALL user_check_parameters -
palm/trunk/SOURCE/flow_statistics.f90
r1239 r1240 21 21 ! Current revisions: 22 22 ! ----------------- 23 ! Output of ug and vg23 ! 24 24 ! 25 25 ! Former revisions: … … 563 563 ENDDO 564 564 ENDIF 565 566 565 ! 567 566 !-- Horizontally averaged profiles of the vertical fluxes … … 887 886 888 887 ENDIF 888 889 889 890 890 ! … … 1156 1156 hom(:,1,76,sr) = sums(:,76) ! prr (precipitation rate) 1157 1157 ! 77 is initial density profile 1158 hom(:,1,78,sr) = ug ! ug1159 hom(:,1,79,sr) = vg ! vg1160 1158 1161 1159 hom(:,1,pr_palm-1,sr) = sums(:,pr_palm-1) … … 2776 2774 hom(:,1,76,sr) = sums(:,76) ! prr (precipitation rate) 2777 2775 ! 77 is initial density profile 2778 hom(:,1,78,sr) = ug ! ug2779 hom(:,1,79,sr) = vg ! vg2780 2776 2781 2777 hom(:,1,pr_palm-1,sr) = sums(:,pr_palm-1) -
palm/trunk/SOURCE/header.f90
r1239 r1240 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! output for nudging + large scale forcing from external file22 ! 23 23 ! 24 24 ! Former revisions: … … 428 428 WRITE ( io, 154 ) 429 429 ENDIF 430 IF ( nudging ) THEN431 WRITE ( io, 155 )432 WRITE ( io, 156 )433 ENDIF434 IF ( large_scale_forcing ) THEN435 WRITE ( io, 157 )436 WRITE ( io, 158 )437 ENDIF438 430 WRITE ( io, 99 ) 439 431 … … 714 706 WRITE ( io, 303 ) 715 707 IF ( constant_heatflux ) THEN 716 IF ( large_scale_forcing .AND. lsf_surf ) THEN 717 WRITE ( io, 306 ) shf(0,0) 718 ELSE 719 WRITE ( io, 306 ) surface_heatflux 720 ENDIF 708 WRITE ( io, 306 ) surface_heatflux 721 709 IF ( random_heatflux ) WRITE ( io, 307 ) 722 710 ENDIF 723 711 IF ( humidity .AND. constant_waterflux ) THEN 724 IF ( large_scale_forcing .AND. lsf_surf ) THEN 725 WRITE ( io, 311 ) qsws(0,0) 726 ELSE 727 WRITE ( io, 311 ) surface_waterflux 728 ENDIF 712 WRITE ( io, 311 ) surface_waterflux 729 713 ENDIF 730 714 IF ( passive_scalar .AND. constant_waterflux ) THEN … … 1304 1288 ENDDO 1305 1289 1306 IF ( .NOT. large_scale_forcing ) THEN 1307 WRITE ( io, 423 ) TRIM( coordinates ), TRIM( ugcomponent ), & 1308 TRIM( gradients ), TRIM( slices ) 1309 ELSE 1310 WRITE ( io, 429 ) 1311 ENDIF 1290 WRITE ( io, 423 ) TRIM( coordinates ), TRIM( ugcomponent ), & 1291 TRIM( gradients ), TRIM( slices ) 1312 1292 1313 1293 !-- Profile of the geostrophic wind (component vg) … … 1340 1320 ENDDO 1341 1321 1342 IF ( .NOT. large_scale_forcing ) THEN 1343 WRITE ( io, 424 ) TRIM( coordinates ), TRIM( vgcomponent ), & 1344 TRIM( gradients ), TRIM( slices ) 1345 ENDIF 1322 WRITE ( io, 424 ) TRIM( coordinates ), TRIM( vgcomponent ), & 1323 TRIM( gradients ), TRIM( slices ) 1346 1324 1347 1325 ! … … 1379 1357 ENDDO 1380 1358 1381 IF ( .NOT. nudging ) THEN 1382 WRITE ( io, 420 ) TRIM( coordinates ), TRIM( temperatures ), & 1383 TRIM( gradients ), TRIM( slices ) 1384 ELSE 1385 WRITE ( io, 428 ) 1386 ENDIF 1359 WRITE ( io, 420 ) TRIM( coordinates ), TRIM( temperatures ), & 1360 TRIM( gradients ), TRIM( slices ) 1387 1361 1388 1362 ! … … 1418 1392 1419 1393 IF ( humidity ) THEN 1420 IF ( .NOT. nudging ) THEN 1421 WRITE ( io, 421 ) TRIM( coordinates ), TRIM( temperatures ), & 1422 TRIM( gradients ), TRIM( slices ) 1423 ENDIF 1394 WRITE ( io, 421 ) TRIM( coordinates ), TRIM( temperatures ), & 1395 TRIM( gradients ), TRIM( slices ) 1424 1396 ELSE 1425 1397 WRITE ( io, 422 ) TRIM( coordinates ), TRIM( temperatures ), & … … 1733 1705 'prognostic equation for') 1734 1706 154 FORMAT (' the potential temperature') 1735 155 FORMAT (' --> Nudging is used - initial profiles for u, v, pt and q ',&1736 'correspond to the')1737 156 FORMAT (' first profiles in NUDGING_DATA')1738 157 FORMAT (' --> Large scale forcing from external file (LSF_DATA) is used: ')1739 158 FORMAT (' prescribed surfaces fluxes and geostrophic wind components')1740 1707 200 FORMAT (//' Run time and time step information:'/ & 1741 1708 ' ----------------------------------'/) … … 1990 1957 427 FORMAT (/' Initial wind profiles (u,v) are interpolated from given'// & 1991 1958 ' profiles') 1992 428 FORMAT (/' Initial profiles (u, v, pt, q) are taken from file '/ &1993 ' NUDGING_DATA')1994 429 FORMAT (/' Geostrophic wind profiles (ug, vg) are are taken from file '/ &1995 ' LSF_DATA_DATA')1996 1959 430 FORMAT (//' Cloud physics quantities / methods:'/ & 1997 1960 ' ----------------------------------'/) -
palm/trunk/SOURCE/init_3d_model.f90
r1239 r1240 23 23 ! Current revisions: 24 24 ! ------------------ 25 ! Overwrite initial profiles in case of nudging 26 ! Inititialize shf and qsws in case of large_scale_forcing 25 ! 27 26 ! 28 27 ! Former revisions: … … 261 260 USE indices 262 261 USE interfaces 263 USE ls_forcing_mod264 262 USE model_1d 265 263 USE netcdf_control … … 782 780 ELSEIF ( INDEX(initializing_actions, 'set_constant_profiles') /= 0 ) & 783 781 THEN 784 785 !786 !-- Overwrite initial profiles in case of nudging787 IF ( nudging ) THEN788 pt_init = ptnudge(:,1)789 u_init = unudge(:,1)790 v_init = vnudge(:,1)791 IF ( humidity .OR. passive_scalar ) THEN792 q_init = qnudge(:,1)793 ENDIF794 795 WRITE( message_string, * ) 'Initial profiles of u, v and ', &796 'scalars from NUDGING_DATA are used.'797 CALL message( 'init_3d_model', 'PA0370', 0, 0, 0, 6, 0 )798 ENDIF799 800 782 ! 801 783 !-- Use constructed initial profiles (velocity constant with height, … … 891 873 IF ( sloping_surface ) CALL init_slope 892 874 893 IF(myid==0) THEN894 PRINT*,"initial profiles from init_3d_model"895 DO k=nzb, nzt+1896 PRINT*, k, u(k,0,0), v(k,0,0), pt(k,0,0), q(k,0,0)897 ENDDO898 ENDIF899 900 875 ELSEIF ( INDEX(initializing_actions, 'by_user') /= 0 ) & 901 876 THEN … … 973 948 ELSE 974 949 shf = surface_heatflux 975 !976 !-- Initialize shf with data from external file LSF_DATA977 IF ( large_scale_forcing .AND. lsf_surf ) THEN978 CALL ls_forcing_surf ( simulated_time )979 ENDIF980 981 950 ! 982 951 !-- Over topography surface_heatflux is replaced by wall_heatflux(0) -
palm/trunk/SOURCE/microphysics.f90
r1239 r1240 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! hyp and rho have to be calculated at each time step if data from external 23 ! file LSF_DATA are used 22 ! 24 23 ! 25 24 ! Former revisions: … … 104 103 105 104 USE arrays_3d 106 USE cloud_parameters 107 USE control_parameters 108 USE grid_variables 105 USE control_parameters 109 106 USE indices 110 107 USE statistics … … 299 296 USE cloud_parameters 300 297 USE control_parameters 301 USE grid_variables302 USE indices303 298 USE statistics 304 299 305 300 IMPLICIT NONE 306 301 307 INTEGER :: i, j, k 308 REAL :: t_surface 309 310 IF ( large_scale_forcing .AND. lsf_surf ) THEN 311 ! 312 !-- Calculate: 313 !-- pt / t : ratio of potential and actual temperature (pt_d_t) 314 !-- t / pt : ratio of actual and potential temperature (t_d_pt) 315 !-- p_0(z) : vertical profile of the hydrostatic pressure (hyp) 316 t_surface = pt_surface * ( surface_pressure / 1000.0 )**0.286 317 DO k = nzb, nzt+1 318 hyp(k) = surface_pressure * 100.0 * & 319 ( (t_surface - g/cp * zu(k)) / t_surface )**(1.0/0.286) 320 pt_d_t(k) = ( 100000.0 / hyp(k) )**0.286 321 t_d_pt(k) = 1.0 / pt_d_t(k) 322 hyrho(k) = hyp(k) / ( r_d * t_d_pt(k) * pt_init(k) ) 323 ENDDO 324 ! 325 !-- Compute reference density 326 rho_surface = surface_pressure * 100.0 / ( r_d * t_surface ) 327 ENDIF 328 302 INTEGER :: i, j 329 303 330 304 dt_micro = dt_3d * weight_pres(intermediate_timestep_count) -
palm/trunk/SOURCE/modules.f90
r1239 r1240 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! Usage of nudging enabled 23 ! +nudging, ntnudge, ptnudge, qnudge, tnudge, unudge, vnudge, wnudge 24 ! increase pr_palm from 80 to 90 to allow for more standard profiles 25 ! 26 ! Enable prescribed time depenend surface fluxes and geostrophic wind read in 27 ! from external file LSF_DATA 28 ! +large_scale_forcing, lsf_surf, lsf_vert, nlsf, time_surf, shf_surf, qsws_surf, 29 ! pt_surf, q_surf, p_surf, time_vert, ug_vert, vg_vert, wsubs_vert 22 ! 30 23 ! 31 24 ! Former revisions: … … 441 434 c_u_m, c_u_m_l, c_v_m, c_v_m_l, c_w_m, c_w_m_l, ddzu, ddzu_pres, & 442 435 dd2zu, dzu, ddzw, dzw, hyp, inflow_damping_factor, lad, l_grid, & 443 nc_1d, nr_1d, ptdf_x, ptdf_y, p_surf, pt_surf, pt_1d, pt_init, & 444 qsws_surf, q_1d, q_init, q_surf, qc_1d, qr_1d, rdf, rdf_sc, & 445 ref_state, sa_init, shf_surf, timenudge, time_surf, time_vert, ug, & 446 u_init, u_nzb_p1_for_vfc, vg, v_init, v_nzb_p1_for_vfc, w_subs, zu, zw 436 nc_1d, nr_1d, ptdf_x, ptdf_y, pt_1d, pt_init, q_1d, q_init, qc_1d, & 437 qr_1d, rdf, rdf_sc, ref_state, sa_init, ug, u_init, & 438 u_nzb_p1_for_vfc, vg, v_init, v_nzb_p1_for_vfc, w_subs, zu, zw 447 439 448 440 REAL, DIMENSION(:,:), ALLOCATABLE :: & … … 451 443 flux_s_e, flux_s_nr, flux_s_pt, flux_s_q, flux_s_qr, flux_s_sa, & 452 444 flux_s_u, flux_s_v, flux_s_w, f1_mg, f2_mg, f3_mg, & 453 mean_inflow_profiles, nrs, nrsws, nrswst, ptnudge, pt_slope_ref, & 454 qnudge, qs, qsws, qswst, qswst_remote, qrs, qrsws, qrswst, rif, & 455 saswsb, saswst, shf, tnudge, total_2d_a, total_2d_o, ts, tswst, & 456 ug_vert, unudge, us, usws, uswst, vnudge, vg_vert, vsws, vswst, & 457 wnudge, wsubs_vert, z0, z0h 445 mean_inflow_profiles, nrs, nrsws, nrswst, pt_slope_ref, qs, qsws, & 446 qswst, qswst_remote, qrs, qrsws, qrswst, rif, saswsb, saswst, shf, & 447 total_2d_a, total_2d_o, ts, tswst, us, usws, uswst, vsws, vswst, z0, & 448 z0h 458 449 459 450 REAL, DIMENSION(:,:,:), ALLOCATABLE :: & … … 487 478 REAL, DIMENSION(:,:,:), ALLOCATABLE :: var_x, var_y, var_z, gamma_x, & 488 479 gamma_y, gamma_z 489 490 480 491 481 SAVE … … 725 715 maximum_parallel_io_streams = -1, max_pr_user = 0, & 726 716 mgcycles = 0, mg_cycles = -1, mg_switch_to_pe0_level = 0, mid, & 727 nlsf = 1000, ntnudge = 100, netcdf_data_format = 2, ngsrb = 2, & 728 nr_timesteps_this_run = 0, & 717 netcdf_data_format = 2, ngsrb = 2, nr_timesteps_this_run = 0, & 729 718 nsor = 20, nsor_ini = 100, n_sor, normalizing_region = 0, & 730 719 nz_do3d = -9999, pch_index = 0, prt_time_count = 0, & … … 783 772 inflow_l = .FALSE., inflow_n = .FALSE., & 784 773 inflow_r = .FALSE., inflow_s = .FALSE., & 785 iso2d_output = .FALSE., large_scale_forcing = .FALSE., & 786 large_scale_subsidence = .FALSE., lsf_surf = .TRUE., & 787 lsf_vert = .TRUE., lptnudge = .FALSE., lqnudge = .FALSE., & 788 lunudge = .FALSE., lvnudge = .FALSE., lwnudge = .FALSE., & 774 iso2d_output = .FALSE., large_scale_subsidence = .FALSE., & 789 775 masking_method = .FALSE., mg_switch_to_pe0 = .FALSE., & 790 netcdf_output = .FALSE., neutral = .FALSE., nudging= .FALSE., &791 o cean = .FALSE., on_device = .FALSE., &776 netcdf_output = .FALSE., neutral = .FALSE., ocean = .FALSE., & 777 on_device = .FALSE., & 792 778 outflow_l = .FALSE., outflow_n = .FALSE., outflow_r = .FALSE., & 793 779 outflow_s = .FALSE., passive_scalar = .FALSE., & … … 1675 1661 1676 1662 CHARACTER (LEN=40) :: region(0:9) 1677 INTEGER :: pr_palm = 90, statistic_regions = 01663 INTEGER :: pr_palm = 80, statistic_regions = 0 1678 1664 INTEGER :: u_max_ijk(3), v_max_ijk(3), w_max_ijk(3) 1679 1665 LOGICAL :: flow_statistics_called = .FALSE. -
palm/trunk/SOURCE/palm.f90
r1239 r1240 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! initialization of nudging and large scale forcing from external file22 ! 23 23 ! 24 24 ! Former revisions: … … 110 110 USE indices 111 111 USE interfaces 112 USE ls_forcing_mod113 112 USE model_1d 114 USE nudge_mod115 113 USE particle_attributes 116 114 USE pegrid … … 219 217 220 218 ! 221 !-- Initialize Nudging if required222 IF ( nudging ) THEN223 CALL init_nudge224 ENDIF225 226 !227 !-- Initialize reading of large scale forcing from external file - if required228 IF ( large_scale_forcing ) THEN229 CALL init_ls_forcing230 ENDIF231 232 !233 219 !-- Check control parameters and deduce further quantities 234 220 CALL check_parameters 221 235 222 236 223 ! -
palm/trunk/SOURCE/parin.f90
r1239 r1240 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! +nudging 23 ! +large_scale_forcing 22 ! 24 23 ! 25 24 ! Former revisions: … … 240 239 initializing_actions, km_constant, lad_surface, & 241 240 lad_vertical_gradient, lad_vertical_gradient_level, & 242 large_scale_forcing, &243 241 leaf_surface_concentration, limiter_sedimentation, & 244 242 loop_optimization, masking_method, mg_cycles, & 245 243 mg_switch_to_pe0_level, mixing_length_1d, momentum_advec, & 246 244 nc_const, netcdf_precision, neutral, ngsrb, & 247 nsor, nsor_ini, n udging, nx, ny, nz, ocean, omega, omega_sor, &245 nsor, nsor_ini, nx, ny, nz, ocean, omega, omega_sor, & 248 246 passive_scalar, pch_index, phi, plant_canopy, prandtl_layer, & 249 247 prandtl_number, precipitation, psolver, pt_damping_factor, & -
palm/trunk/SOURCE/prognostic_equations.f90
r1239 r1240 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! usage of nudging enabled (not for accelerator version so far)22 ! 23 23 ! 24 24 ! Former revisions: … … 182 182 USE impact_of_latent_heat_mod 183 183 USE microphysics_mod 184 USE nudge_mod185 184 USE plant_canopy_model_mod 186 185 USE production_e_mod … … 286 285 ENDIF 287 286 288 !289 !-- Nudging290 IF ( nudging ) CALL nudge( i, j, simulated_time, 'u' )291 292 287 CALL user_actions( i, j, 'u-tendency' ) 293 288 ! … … 345 340 ENDIF 346 341 347 !348 !-- Nudging349 IF ( nudging ) CALL nudge( i, j, simulated_time, 'v' )350 351 342 CALL user_actions( i, j, 'v-tendency' ) 352 343 ! … … 480 471 CALL subsidence( i, j, tend, pt, pt_init ) 481 472 ENDIF 482 483 !484 !-- Nudging485 IF ( nudging ) CALL nudge( i, j, simulated_time, 'pt' )486 473 487 474 CALL user_actions( i, j, 'pt-tendency' ) … … 607 594 CALL subsidence( i, j, tend, q, q_init ) 608 595 ENDIF 609 610 !611 !-- Nudging612 IF ( nudging ) CALL nudge( i, j, simulated_time, 'q' )613 596 614 597 CALL user_actions( i, j, 'q-tendency' ) … … 864 847 ENDIF 865 848 866 !867 !-- Nudging868 IF ( nudging ) CALL nudge( simulated_time, 'u' )869 870 849 CALL user_actions( 'u-tendency' ) 871 850 … … 940 919 ENDIF 941 920 942 !943 !-- Nudging944 IF ( nudging ) CALL nudge( simulated_time, 'v' )945 946 921 CALL user_actions( 'v-tendency' ) 947 922 … … 1117 1092 CALL subsidence( tend, pt, pt_init ) 1118 1093 ENDIF 1119 1120 !1121 !-- Nudging1122 IF ( nudging ) CALL nudge( simulated_time, 'pt' )1123 1094 1124 1095 CALL user_actions( 'pt-tendency' ) … … 1307 1278 CALL subsidence( tend, q, q_init ) 1308 1279 ENDIF 1309 1310 !1311 !-- Nudging1312 IF ( nudging ) CALL nudge( simulated_time, 'q' )1313 1280 1314 1281 CALL user_actions( 'q-tendency' ) -
palm/trunk/SOURCE/read_var_list.f90
r1239 r1240 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! +nudging 23 ! +large_scale_forcing 22 ! 24 23 ! 25 24 ! Former revisions: … … 449 448 CASE ( 'lad_vertical_gradient_level_in' ) 450 449 READ ( 13 ) lad_vertical_gradient_level_ind 451 CASE ( 'large_scale_forcing' )452 READ ( 13 ) large_scale_forcing453 450 CASE ( 'large_scale_subsidence' ) 454 451 READ ( 13 ) large_scale_subsidence … … 486 483 CASE ( 'nsor_ini' ) 487 484 READ ( 13 ) nsor_ini 488 CASE ( 'nudging' )489 READ ( 13 ) nudging490 485 CASE ( 'nx' ) 491 486 READ ( 13 ) nx -
palm/trunk/SOURCE/time_integration.f90
r1239 r1240 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! Generalize calc_mean_profile for wider use 23 ! Determine shf and qsws in dependence on data from LSF_DATA 24 ! Determine ug and vg in dependence on data from LSF_DATA 22 ! 25 23 ! 26 24 ! Former revisions: … … 167 165 USE interaction_droplets_ptq_mod 168 166 USE interfaces 169 USE ls_forcing_mod170 167 USE particle_attributes 171 168 USE pegrid … … 226 223 227 224 ! 228 !-- Determine ug, vg and w_subs in dependence on data from external file229 !-- LSF_DATA230 IF ( large_scale_forcing .AND. lsf_vert ) THEN231 CALL ls_forcing_vert ( simulated_time )232 ENDIF233 234 !235 225 !-- Execute the user-defined actions 236 226 CALL user_actions( 'before_timestep' ) … … 258 248 !-- buoyancy terms (WARNING: only the respective last call of 259 249 !-- calc_mean_profile defines the reference state!) 260 IF ( .NOT. neutral ) CALL calc_mean_profile( pt, 4 , 'time_int')261 IF ( ocean ) CALL calc_mean_profile( rho, 64 , 'time_int')262 IF ( humidity ) CALL calc_mean_profile( vpt, 44 , 'time_int')250 IF ( .NOT. neutral ) CALL calc_mean_profile( pt, 4 ) 251 IF ( ocean ) CALL calc_mean_profile( rho, 64 ) 252 IF ( humidity ) CALL calc_mean_profile( vpt, 44 ) 263 253 ENDIF 264 254 … … 576 566 CALL cpu_log( log_point(19), 'prandtl_fluxes', 'stop' ) 577 567 ENDIF 578 579 !580 !-- Determine shf and qsws in dependence on data from external file581 !-- LSF_DATA582 IF ( ( large_scale_forcing .AND. lsf_surf ) .AND. &583 intermediate_timestep_count == intermediate_timestep_count_max )&584 THEN585 CALL ls_forcing_surf ( simulated_time )586 ENDIF587 588 568 ! 589 569 !-- Compute the diffusion coefficients -
palm/trunk/SOURCE/write_var_list.f90
r1239 r1240 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! +nudging 23 ! +large_scale_forcing 22 ! 24 23 ! 25 24 ! Former revisions: … … 366 365 WRITE ( 14 ) 'lad_vertical_gradient_level_in' 367 366 WRITE ( 14 ) lad_vertical_gradient_level_ind 368 WRITE ( 14 ) 'large_scale_forcing '369 WRITE ( 14 ) large_scale_forcing370 367 WRITE ( 14 ) 'large_scale_subsidence ' 371 368 WRITE ( 14 ) large_scale_subsidence … … 402 399 WRITE ( 14 ) 'nsor_ini ' 403 400 WRITE ( 14 ) nsor_ini 404 WRITE ( 14 ) 'nudging '405 WRITE ( 14 ) nudging406 401 WRITE ( 14 ) 'nx ' 407 402 WRITE ( 14 ) nx
Note: See TracChangeset
for help on using the changeset viewer.