Changeset 1241 for palm/trunk/SOURCE
- Timestamp:
- Oct 30, 2013 11:36:58 AM (11 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/Makefile
r1240 r1241 20 20 # Current revisions: 21 21 # ------------------ 22 # 22 # +nudging, ls_forcing 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 message.f90 microphysics.f90 modules.f90 netcdf.f90 package_parin.f90 \ 161 palm.f90 parin.f90 plant_canopy_model.f90 poisfft.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 \ 162 163 poismg.f90 prandtl_fluxes.f90 pres.f90 print_1d.f90 \ 163 164 production_e.f90 prognostic_equations.f90 random_function.f90 \ … … 265 266 inflow_turbulence.o: modules.o 266 267 init_1d_model.o: modules.o 267 init_3d_model.o: modules.o random_function.o advec_ws.o 268 init_3d_model.o: modules.o random_function.o advec_ws.o ls_forcing.o 268 269 init_advec.o: modules.o 269 270 init_cloud_physics.o: modules.o … … 303 304 lpm_write_exchange_statistics.o: modules.o 304 305 lpm_write_restart_file.o: modules.o 306 ls_forcing.o: modules.o 305 307 message.o: modules.o 306 308 microphysics.o: modules.o 307 309 modules.o: modules.f90 308 310 netcdf.o: modules.o 311 nudging.o: modules.o 309 312 package_parin.o: modules.o 310 palm.o: modules.o 313 palm.o: modules.o ls_forcing.o nudging.o 311 314 parin.o: modules.o 312 315 plant_canopy_model.o: modules.o … … 322 325 diffusion_e.o diffusion_s.o diffusion_u.o diffusion_v.o diffusion_w.o \ 323 326 eqn_state_seawater.o impact_of_latent_heat.o microphysics.o \ 324 plant_canopy_model.o production_e.o subsidence.o user_actions.o327 nudging.o plant_canopy_model.o production_e.o subsidence.o user_actions.o 325 328 random_gauss.o: random_function.o 326 329 read_3d_binary.o: modules.o random_function.o … … 336 339 temperton_fft.o: modules.o 337 340 time_integration.o: modules.o advec_ws.o buoyancy.o interaction_droplets_ptq.o \ 338 production_e.o prognostic_equations.o user_actions.o341 ls_forcing.o production_e.o prognostic_equations.o user_actions.o 339 342 timestep.o: modules.o 340 343 timestep_scheme_steering.o: modules.o -
palm/trunk/SOURCE/boundary_conds.f90
r1240 r1241 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! Adjust ug and vg at each timestep in case of large_scale_forcing 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) THEN 150 u_p(nzt+1,:,:) = ug(nzt+1) 151 v_p(nzt+1,:,:) = vg(nzt+1) 152 END IF 149 153 !$acc end kernels 150 154 ELSE -
palm/trunk/SOURCE/buoyancy.f90
r1240 r1241 20 20 ! Currrent revisions: 21 21 ! ------------------ 22 ! Generalize calc_mean_profile for wider use: use additional steering 23 ! character loc 22 24 ! 23 25 ! … … 344 346 345 347 346 SUBROUTINE calc_mean_profile( var, pr )348 SUBROUTINE calc_mean_profile( var, pr, loc ) 347 349 348 350 !------------------------------------------------------------------------------! … … 363 365 364 366 INTEGER :: i, j, k, omp_get_thread_num, pr, tn 367 CHARACTER (LEN=*) :: loc 365 368 #if defined( __nopointer ) 366 369 REAL, DIMENSION(:,:,:) :: var … … 414 417 ENDIF 415 418 416 ref_state(:) = hom(:,1,pr,0) ! this is used in the buoyancy term 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 417 437 418 438 END SUBROUTINE calc_mean_profile -
palm/trunk/SOURCE/check_parameters.f90
r1240 r1241 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! output for profiles of ug and vg added 23 ! set surface_heatflux and surface_waterflux also in dependence on 24 ! large_scale_forcing 25 ! checks for nudging and large scale forcing from external file 23 26 ! 24 27 ! Former revisions: … … 311 314 USE statistics 312 315 USE subsidence_mod 316 USE statistics 313 317 USE transpose_indices 314 318 … … 1606 1610 ENDIF 1607 1611 1608 IF ( surface_heatflux == 9999999.9 ) constant_heatflux = .FALSE. 1612 IF ( surface_heatflux == 9999999.9 .AND. .NOT. large_scale_forcing ) THEN 1613 constant_heatflux = .FALSE. 1614 ELSE 1615 constant_heatflux = .TRUE. 1616 IF ( TRIM( initializing_actions ) /= 'read_restart_data' .AND. & 1617 large_scale_forcing ) THEN 1618 surface_heatflux = shf_surf(1) 1619 ENDIF 1620 ENDIF 1621 1609 1622 IF ( top_heatflux == 9999999.9 ) constant_top_heatflux = .FALSE. 1610 1623 … … 1726 1739 ENDIF 1727 1740 1728 IF ( surface_waterflux == 9999999.9 ) constant_waterflux = .FALSE. 1741 IF ( surface_waterflux == 9999999.9 .AND. & 1742 .NOT. large_scale_forcing ) THEN 1743 constant_waterflux = .FALSE. 1744 ELSE 1745 constant_waterflux = .TRUE. 1746 IF ( TRIM( initializing_actions ) /= 'read_restart_data' .AND. & 1747 large_scale_forcing ) THEN 1748 surface_waterflux = qsws_surf(1) 1749 ENDIF 1750 ENDIF 1729 1751 1730 1752 ! … … 2666 2688 ENDIF 2667 2689 2690 CASE ( 'ug' ) 2691 dopr_index(i) = 78 2692 dopr_unit(i) = 'm/s' 2693 hom(:,2,78,:) = SPREAD( zu, 2, statistic_regions+1 ) 2694 2695 CASE ( 'vg' ) 2696 dopr_index(i) = 79 2697 dopr_unit(i) = 'm/s' 2698 hom(:,2,79,:) = SPREAD( zu, 2, statistic_regions+1 ) 2699 2668 2700 CASE DEFAULT 2669 2701 … … 3597 3629 3598 3630 ! 3631 !-- Check nudging and large scale forcing from external file 3632 IF ( nudging .AND. ( .NOT. large_scale_forcing ) ) THEN 3633 message_string = 'Nudging requires large_scale_forcing = .T.. &'// & 3634 'Surface fluxes and geostrophic wind should be &'// & 3635 'prescribed in file LSF_DATA' 3636 CALL message( 'check_parameters', 'PA0374', 1, 2, 0, 6, 0 ) 3637 ENDIF 3638 3639 IF ( large_scale_forcing .AND. ( bc_lr /= 'cyclic' .OR. & 3640 bc_ns /= 'cyclic' ) ) THEN 3641 message_string = 'Non-cyclic lateral boundaries do not allow for &' // & 3642 'the usage of large scale forcing from external file.' 3643 CALL message( 'check_parameters', 'PA0375', 1, 2, 0, 6, 0 ) 3644 ENDIF 3645 3646 IF ( large_scale_forcing .AND. ( .NOT. humidity ) ) THEN 3647 message_string = 'The usage of large scale forcing from external &'//& 3648 'file LSF_DATA requires humidity = .T..' 3649 CALL message( 'check_parameters', 'PA0376', 1, 2, 0, 6, 0 ) 3650 ENDIF 3651 3652 IF ( large_scale_forcing .AND. topography /= 'flat' ) THEN 3653 message_string = 'The usage of large scale forcing from external &'//& 3654 'file LSF_DATA is not implemented for non-flat topography' 3655 CALL message( 'check_parameters', 'PA0377', 1, 2, 0, 6, 0 ) 3656 ENDIF 3657 3658 IF ( large_scale_forcing .AND. ocean ) THEN 3659 message_string = 'The usage of large scale forcing from external &'//& 3660 'file LSF_DATA is not implemented for ocean runs' 3661 CALL message( 'check_parameters', 'PA0378', 1, 2, 0, 6, 0 ) 3662 ENDIF 3663 ! 3599 3664 !-- Check &userpar parameters 3600 3665 CALL user_check_parameters -
palm/trunk/SOURCE/flow_statistics.f90
r1240 r1241 21 21 ! Current revisions: 22 22 ! ----------------- 23 ! 23 ! Output of ug and vg 24 24 ! 25 25 ! Former revisions: … … 563 563 ENDDO 564 564 ENDIF 565 565 566 ! 566 567 !-- Horizontally averaged profiles of the vertical fluxes … … 886 887 887 888 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 ! ug 1159 hom(:,1,79,sr) = vg ! vg 1158 1160 1159 1161 hom(:,1,pr_palm-1,sr) = sums(:,pr_palm-1) … … 2774 2776 hom(:,1,76,sr) = sums(:,76) ! prr (precipitation rate) 2775 2777 ! 77 is initial density profile 2778 hom(:,1,78,sr) = ug ! ug 2779 hom(:,1,79,sr) = vg ! vg 2776 2780 2777 2781 hom(:,1,pr_palm-1,sr) = sums(:,pr_palm-1) -
palm/trunk/SOURCE/header.f90
r1240 r1241 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! output for nudging + large scale forcing from external file 23 23 ! 24 24 ! Former revisions: … … 428 428 WRITE ( io, 154 ) 429 429 ENDIF 430 IF ( nudging ) THEN 431 WRITE ( io, 155 ) 432 WRITE ( io, 156 ) 433 ENDIF 434 IF ( large_scale_forcing ) THEN 435 WRITE ( io, 157 ) 436 WRITE ( io, 158 ) 437 ENDIF 430 438 WRITE ( io, 99 ) 431 439 … … 706 714 WRITE ( io, 303 ) 707 715 IF ( constant_heatflux ) THEN 708 WRITE ( io, 306 ) surface_heatflux 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 709 721 IF ( random_heatflux ) WRITE ( io, 307 ) 710 722 ENDIF 711 723 IF ( humidity .AND. constant_waterflux ) THEN 712 WRITE ( io, 311 ) surface_waterflux 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 713 729 ENDIF 714 730 IF ( passive_scalar .AND. constant_waterflux ) THEN … … 1288 1304 ENDDO 1289 1305 1290 WRITE ( io, 423 ) TRIM( coordinates ), TRIM( ugcomponent ), & 1291 TRIM( gradients ), TRIM( slices ) 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 1292 1312 1293 1313 !-- Profile of the geostrophic wind (component vg) … … 1320 1340 ENDDO 1321 1341 1322 WRITE ( io, 424 ) TRIM( coordinates ), TRIM( vgcomponent ), & 1323 TRIM( gradients ), TRIM( slices ) 1342 IF ( .NOT. large_scale_forcing ) THEN 1343 WRITE ( io, 424 ) TRIM( coordinates ), TRIM( vgcomponent ), & 1344 TRIM( gradients ), TRIM( slices ) 1345 ENDIF 1324 1346 1325 1347 ! … … 1357 1379 ENDDO 1358 1380 1359 WRITE ( io, 420 ) TRIM( coordinates ), TRIM( temperatures ), & 1360 TRIM( gradients ), TRIM( slices ) 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 1361 1387 1362 1388 ! … … 1392 1418 1393 1419 IF ( humidity ) THEN 1394 WRITE ( io, 421 ) TRIM( coordinates ), TRIM( temperatures ), & 1395 TRIM( gradients ), TRIM( slices ) 1420 IF ( .NOT. nudging ) THEN 1421 WRITE ( io, 421 ) TRIM( coordinates ), TRIM( temperatures ), & 1422 TRIM( gradients ), TRIM( slices ) 1423 ENDIF 1396 1424 ELSE 1397 1425 WRITE ( io, 422 ) TRIM( coordinates ), TRIM( temperatures ), & … … 1705 1733 'prognostic equation for') 1706 1734 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') 1707 1740 200 FORMAT (//' Run time and time step information:'/ & 1708 1741 ' ----------------------------------'/) … … 1957 1990 427 FORMAT (/' Initial wind profiles (u,v) are interpolated from given'// & 1958 1991 ' 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') 1959 1996 430 FORMAT (//' Cloud physics quantities / methods:'/ & 1960 1997 ' ----------------------------------'/) -
palm/trunk/SOURCE/init_3d_model.f90
r1240 r1241 23 23 ! Current revisions: 24 24 ! ------------------ 25 ! 25 ! Overwrite initial profiles in case of nudging 26 ! Inititialize shf and qsws in case of large_scale_forcing 26 27 ! 27 28 ! Former revisions: … … 260 261 USE indices 261 262 USE interfaces 263 USE ls_forcing_mod 262 264 USE model_1d 263 265 USE netcdf_control … … 780 782 ELSEIF ( INDEX(initializing_actions, 'set_constant_profiles') /= 0 ) & 781 783 THEN 784 785 ! 786 !-- Overwrite initial profiles in case of nudging 787 IF ( nudging ) THEN 788 pt_init = ptnudge(:,1) 789 u_init = unudge(:,1) 790 v_init = vnudge(:,1) 791 IF ( humidity .OR. passive_scalar ) THEN 792 q_init = qnudge(:,1) 793 ENDIF 794 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 ENDIF 799 782 800 ! 783 801 !-- Use constructed initial profiles (velocity constant with height, … … 948 966 ELSE 949 967 shf = surface_heatflux 968 ! 969 !-- Initialize shf with data from external file LSF_DATA 970 IF ( large_scale_forcing .AND. lsf_surf ) THEN 971 CALL ls_forcing_surf ( simulated_time ) 972 ENDIF 973 950 974 ! 951 975 !-- Over topography surface_heatflux is replaced by wall_heatflux(0) -
palm/trunk/SOURCE/ls_forcing.f90
r1239 r1241 161 161 ENDIF 162 162 163 163 164 DO k = nzb, nzt+1 164 165 IF ( highheight < zu(k) ) THEN -
palm/trunk/SOURCE/microphysics.f90
r1240 r1241 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! hyp and rho have to be calculated at each time step if data from external 23 ! file LSF_DATA are used 23 24 ! 24 25 ! Former revisions: … … 103 104 104 105 USE arrays_3d 105 USE control_parameters 106 USE cloud_parameters 107 USE control_parameters 108 USE grid_variables 106 109 USE indices 107 110 USE statistics … … 296 299 USE cloud_parameters 297 300 USE control_parameters 301 USE grid_variables 302 USE indices 298 303 USE statistics 299 304 300 305 IMPLICIT NONE 301 306 302 INTEGER :: i, j 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 303 329 304 330 dt_micro = dt_3d * weight_pres(intermediate_timestep_count) -
palm/trunk/SOURCE/modules.f90
r1240 r1241 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 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 23 30 ! 24 31 ! Former revisions: … … 434 441 c_u_m, c_u_m_l, c_v_m, c_v_m_l, c_w_m, c_w_m_l, ddzu, ddzu_pres, & 435 442 dd2zu, dzu, ddzw, dzw, hyp, inflow_damping_factor, lad, l_grid, & 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 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 439 447 440 448 REAL, DIMENSION(:,:), ALLOCATABLE :: & … … 443 451 flux_s_e, flux_s_nr, flux_s_pt, flux_s_q, flux_s_qr, flux_s_sa, & 444 452 flux_s_u, flux_s_v, flux_s_w, f1_mg, f2_mg, f3_mg, & 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 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 449 458 450 459 REAL, DIMENSION(:,:,:), ALLOCATABLE :: & … … 478 487 REAL, DIMENSION(:,:,:), ALLOCATABLE :: var_x, var_y, var_z, gamma_x, & 479 488 gamma_y, gamma_z 489 480 490 481 491 SAVE … … 715 725 maximum_parallel_io_streams = -1, max_pr_user = 0, & 716 726 mgcycles = 0, mg_cycles = -1, mg_switch_to_pe0_level = 0, mid, & 717 netcdf_data_format = 2, ngsrb = 2, nr_timesteps_this_run = 0, & 727 nlsf = 1000, ntnudge = 100, netcdf_data_format = 2, ngsrb = 2, & 728 nr_timesteps_this_run = 0, & 718 729 nsor = 20, nsor_ini = 100, n_sor, normalizing_region = 0, & 719 730 nz_do3d = -9999, pch_index = 0, prt_time_count = 0, & … … 772 783 inflow_l = .FALSE., inflow_n = .FALSE., & 773 784 inflow_r = .FALSE., inflow_s = .FALSE., & 774 iso2d_output = .FALSE., large_scale_subsidence = .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., & 775 789 masking_method = .FALSE., mg_switch_to_pe0 = .FALSE., & 776 netcdf_output = .FALSE., neutral = .FALSE., ocean= .FALSE., &777 o n_device = .FALSE., &790 netcdf_output = .FALSE., neutral = .FALSE., nudging = .FALSE., & 791 ocean = .FALSE., on_device = .FALSE., & 778 792 outflow_l = .FALSE., outflow_n = .FALSE., outflow_r = .FALSE., & 779 793 outflow_s = .FALSE., passive_scalar = .FALSE., & … … 1661 1675 1662 1676 CHARACTER (LEN=40) :: region(0:9) 1663 INTEGER :: pr_palm = 80, statistic_regions = 01677 INTEGER :: pr_palm = 90, statistic_regions = 0 1664 1678 INTEGER :: u_max_ijk(3), v_max_ijk(3), w_max_ijk(3) 1665 1679 LOGICAL :: flow_statistics_called = .FALSE. -
palm/trunk/SOURCE/nudging.f90
r1239 r1241 161 161 ! 162 162 !-- Prevent nudging if nudging profiles exhibt too small values 163 !-- not used so far 163 164 lptnudge = ANY( ABS( ptnudge ) > 1e-8 ) 164 165 lqnudge = ANY( ABS( qnudge ) > 1e-8 ) … … 326 327 currtnudge = MAX( dt_3d, tnudge(k,t) * dtp + tnudge(k,t+1) * dtm ) 327 328 329 !IF ((myid ==0 .AND. k==2) .AND. (i==1 .AND. j==1)) THEN 330 ! PRINT*, time, dt_3d, intermediate_timestep_count, currtnudge, dtp, dtm 331 !ENDIF 332 328 333 tend(k,j,i) = tend(k,j,i) - ( hom(k,1,1,0) - & 329 334 ( unudge(k,t) * dtp + & -
palm/trunk/SOURCE/palm.f90
r1240 r1241 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! initialization of nuding and large scale forcing from external file 23 23 ! 24 24 ! Former revisions: … … 110 110 USE indices 111 111 USE interfaces 112 USE ls_forcing_mod 112 113 USE model_1d 114 USE nudge_mod 113 115 USE particle_attributes 114 116 USE pegrid … … 217 219 218 220 ! 221 !-- Initialize nudging if required 222 IF ( nudging ) THEN 223 CALL init_nudge 224 ENDIF 225 226 ! 227 !-- Initialize reading of large scale forcing from external file - if required 228 IF ( large_scale_forcing ) THEN 229 CALL init_ls_forcing 230 ENDIF 231 232 ! 219 233 !-- Check control parameters and deduce further quantities 220 234 CALL check_parameters 221 222 235 223 236 ! -
palm/trunk/SOURCE/parin.f90
r1240 r1241 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! +nudging 23 ! +large_scale_forcing 23 24 ! 24 25 ! Former revisions: … … 239 240 initializing_actions, km_constant, lad_surface, & 240 241 lad_vertical_gradient, lad_vertical_gradient_level, & 242 large_scale_forcing, & 241 243 leaf_surface_concentration, limiter_sedimentation, & 242 244 loop_optimization, masking_method, mg_cycles, & 243 245 mg_switch_to_pe0_level, mixing_length_1d, momentum_advec, & 244 246 nc_const, netcdf_precision, neutral, ngsrb, & 245 nsor, nsor_ini, n x, ny, nz, ocean, omega, omega_sor, &247 nsor, nsor_ini, nudging, nx, ny, nz, ocean, omega, omega_sor, & 246 248 passive_scalar, pch_index, phi, plant_canopy, prandtl_layer, & 247 249 prandtl_number, precipitation, psolver, pt_damping_factor, & -
palm/trunk/SOURCE/prognostic_equations.f90
r1240 r1241 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! usage of nudging enabled (so far not implemented for accelerator version) 23 23 ! 24 24 ! Former revisions: … … 182 182 USE impact_of_latent_heat_mod 183 183 USE microphysics_mod 184 USE nudge_mod 184 185 USE plant_canopy_model_mod 185 186 USE production_e_mod … … 285 286 ENDIF 286 287 288 ! 289 !-- Nudging 290 IF ( nudging ) CALL nudge( i, j, simulated_time, 'u' ) 291 287 292 CALL user_actions( i, j, 'u-tendency' ) 288 293 ! … … 340 345 ENDIF 341 346 347 ! 348 !-- Nudging 349 IF ( nudging ) CALL nudge( i, j, simulated_time, 'v' ) 350 342 351 CALL user_actions( i, j, 'v-tendency' ) 343 352 ! … … 471 480 CALL subsidence( i, j, tend, pt, pt_init ) 472 481 ENDIF 482 483 ! 484 !-- Nudging 485 IF ( nudging ) CALL nudge( i, j, simulated_time, 'pt' ) 473 486 474 487 CALL user_actions( i, j, 'pt-tendency' ) … … 594 607 CALL subsidence( i, j, tend, q, q_init ) 595 608 ENDIF 609 610 ! 611 !-- Nudging 612 IF ( nudging ) CALL nudge( i, j, simulated_time, 'q' ) 596 613 597 614 CALL user_actions( i, j, 'q-tendency' ) … … 847 864 ENDIF 848 865 866 ! 867 !-- Nudging 868 IF ( nudging ) CALL nudge( simulated_time, 'u' ) 869 849 870 CALL user_actions( 'u-tendency' ) 850 871 … … 919 940 ENDIF 920 941 942 ! 943 !-- Nudging 944 IF ( nudging ) CALL nudge( simulated_time, 'v' ) 945 921 946 CALL user_actions( 'v-tendency' ) 922 947 … … 1092 1117 CALL subsidence( tend, pt, pt_init ) 1093 1118 ENDIF 1119 1120 ! 1121 !-- Nudging 1122 IF ( nudging ) CALL nudge( simulated_time, 'pt' ) 1094 1123 1095 1124 CALL user_actions( 'pt-tendency' ) … … 1278 1307 CALL subsidence( tend, q, q_init ) 1279 1308 ENDIF 1309 1310 ! 1311 !-- Nudging 1312 IF ( nudging ) CALL nudge( simulated_time, 'q' ) 1280 1313 1281 1314 CALL user_actions( 'q-tendency' ) -
palm/trunk/SOURCE/read_var_list.f90
r1240 r1241 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! +nudging 23 ! +large_scale_forcing 23 24 ! 24 25 ! Former revisions: … … 448 449 CASE ( 'lad_vertical_gradient_level_in' ) 449 450 READ ( 13 ) lad_vertical_gradient_level_ind 451 CASE ( 'large_scale_forcing' ) 452 READ ( 13 ) large_scale_forcing 450 453 CASE ( 'large_scale_subsidence' ) 451 454 READ ( 13 ) large_scale_subsidence … … 483 486 CASE ( 'nsor_ini' ) 484 487 READ ( 13 ) nsor_ini 488 CASE ( 'nudging' ) 489 READ ( 13 ) nudging 485 490 CASE ( 'nx' ) 486 491 READ ( 13 ) nx -
palm/trunk/SOURCE/time_integration.f90
r1240 r1241 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! Call of user_actions in order to determine sgs momentum fluxes 23 ! Generalize calc_mean_profile for wider use 24 ! Determine shf and qsws in dependence on data from LSF_DATA 25 ! Determine ug and vg in dependence on data from LSF_DATA 23 26 ! 24 27 ! Former revisions: … … 165 168 USE interaction_droplets_ptq_mod 166 169 USE interfaces 170 USE ls_forcing_mod 167 171 USE particle_attributes 168 172 USE pegrid … … 223 227 224 228 ! 229 !-- Determine ug, vg and w_subs in dependence on data from external file 230 !-- LSF_DATA 231 IF ( large_scale_forcing .AND. lsf_vert ) THEN 232 CALL ls_forcing_vert ( simulated_time ) 233 ENDIF 234 235 ! 225 236 !-- Execute the user-defined actions 226 237 CALL user_actions( 'before_timestep' ) … … 248 259 !-- buoyancy terms (WARNING: only the respective last call of 249 260 !-- calc_mean_profile defines the reference state!) 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 )261 IF ( .NOT. neutral ) CALL calc_mean_profile( pt, 4, 'time_int' ) 262 IF ( ocean ) CALL calc_mean_profile( rho, 64, 'time_int' ) 263 IF ( humidity ) CALL calc_mean_profile( vpt, 44, 'time_int' ) 253 264 ENDIF 254 265 … … 566 577 CALL cpu_log( log_point(19), 'prandtl_fluxes', 'stop' ) 567 578 ENDIF 579 580 ! 581 !-- Determine shf and qsws in dependence on data from external file 582 !-- LSF_DATA 583 IF ( ( large_scale_forcing .AND. lsf_surf ) .AND. & 584 intermediate_timestep_count == intermediate_timestep_count_max )& 585 THEN 586 CALL ls_forcing_surf ( simulated_time ) 587 ENDIF 588 568 589 ! 569 590 !-- Compute the diffusion coefficients -
palm/trunk/SOURCE/write_var_list.f90
r1240 r1241 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! +nudging 23 ! +large_scale_forcing 23 24 ! 24 25 ! Former revisions: … … 365 366 WRITE ( 14 ) 'lad_vertical_gradient_level_in' 366 367 WRITE ( 14 ) lad_vertical_gradient_level_ind 368 WRITE ( 14 ) 'large_scale_forcing ' 369 WRITE ( 14 ) large_scale_forcing 367 370 WRITE ( 14 ) 'large_scale_subsidence ' 368 371 WRITE ( 14 ) large_scale_subsidence … … 399 402 WRITE ( 14 ) 'nsor_ini ' 400 403 WRITE ( 14 ) nsor_ini 404 WRITE ( 14 ) 'nudging ' 405 WRITE ( 14 ) nudging 401 406 WRITE ( 14 ) 'nx ' 402 407 WRITE ( 14 ) nx
Note: See TracChangeset
for help on using the changeset viewer.