Changeset 197 for palm/trunk/SOURCE
- Timestamp:
- Sep 16, 2008 3:29:03 PM (16 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/CURRENT_MODIFICATIONS
r192 r197 28 28 Particle advection adjusted for ocean runs. 29 29 30 Multigrid levels are limited by subdomains if mg_switch_to_pe0_level = -1. 31 30 32 User-defined spectra. 33 34 Output of q*2 profile added. 31 35 32 36 Argument -c introduced to most of the subjob calls, which allows the user to … … 91 95 (combine_plot_fields) 92 96 93 advec_s_ups, advec_u_ups, advec_v_ups, advec_w_ups, calc_spectra, check_open, check_parameters, cpu_statistics, data_output_spectra, header, init_1d_model, init_3d_model, modules, netcdf, palm, parin, poisfft, production_e, read_var_list, read_3d_binary, transpose, wall_fluxes, write_var_list, write_3d_binary 97 Time coordinate t=0 stored on netcdf-file only if an output is required for 98 this time for at least one of the profiles 99 100 Spline timeseries splptx etc. removed, timeseries w'u', w'v', w'q' (k=0) added 101 (flow_statistics) 102 103 advec_s_ups, advec_u_ups, advec_v_ups, advec_w_ups, calc_spectra, check_open, check_parameters, cpu_statistics, data_output_profiles, data_output_spectra, flow_statistics, header, init_1d_model, init_3d_model, modules, netcdf, palm, parin, poisfft, production_e, read_var_list, read_3d_binary, transpose, wall_fluxes, write_var_list, write_3d_binary 94 104 95 105 … … 148 158 Bugfix: misplaced #endif directives (combine_plot_fields) 149 159 150 calc_spectra, check_parameters, diffusion_s, flow_statistics, init_dvrp, init_3d_model, local_stop, plant_canopy_model, poismg, prandtl_fluxes, pres, read_3d_binary, user_interface, wall_fluxes, write_3d_binary 160 data are collected from PE0 in an ordered sequence which seems to avoid hanging of processes on SGI-ICE (cpu_statistics) 151 161 162 calc_spectra, check_parameters, cpu_statistics, diffusion_s, flow_statistics, init_dvrp, init_3d_model, local_stop, plant_canopy_model, poismg, prandtl_fluxes, pres, read_3d_binary, user_interface, wall_fluxes, write_3d_binary 163 -
palm/trunk/SOURCE/check_parameters.f90
r181 r197 10 10 ! Leaf area density (LAD) explicitly set to its surface value at k=0 11 11 ! Case of reading data for recycling included in initializing_actions, 12 ! check of turbulent_inflow and calculation of recycling_plane 12 ! check of turbulent_inflow and calculation of recycling_plane. 13 ! q*2 profile added 13 14 ! 14 15 ! Former revisions: … … 2256 2257 hom(:,2,69,:) = SPREAD( zu, 2, statistic_regions+1 ) 2257 2258 2259 CASE ( 'q*2' ) 2260 IF ( .NOT. humidity ) THEN 2261 IF ( myid == 0 ) THEN 2262 PRINT*, '+++ check_parameters: data_output_pr = ', & 2263 data_output_pr(i), & 2264 ' is not implemented for humidity = FALSE' 2265 ENDIF 2266 CALL local_stop 2267 ELSE 2268 dopr_index(i) = 70 2269 dopr_unit(i) = 'kg2/kg2' 2270 hom(:,2,70,:) = SPREAD( zu, 2, statistic_regions+1 ) 2271 ENDIF 2258 2272 2259 2273 CASE DEFAULT -
palm/trunk/SOURCE/cpu_statistics.f90
r181 r197 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! Format adjustments in order to allow CPU# > 999 6 ! Format adjustments in order to allow CPU# > 999, 7 ! data are collected from PE0 in an ordered sequence which seems to avoid 8 ! hanging of processes on SGI-ICE 7 9 ! 8 10 ! Former revisions: … … 69 71 DO i = 1, numprocs-1 70 72 CALL MPI_RECV( pe_max(1), SIZE( log_point ), MPI_REAL, & 71 MPI_ANY_SOURCE, MPI_ANY_TAG, comm2d, status, ierr )73 i, i, comm2d, status, ierr ) 72 74 sender = status(MPI_SOURCE) 73 75 pe_log_points(:,sender) = pe_max … … 87 89 !-- Calculate rms 88 90 DO i = 0, numprocs-1 89 ! IF ( log_point(iii)%place == 'run_control' ) THEN90 ! PRINT*, 'pe_rms=',pe_rms(iii),' plp=',pe_log_points(iii,i), &91 ! ' lps=',log_point(iii)%sum92 ! ENDIF93 91 pe_rms(iii) = pe_rms(iii) + ( & 94 92 pe_log_points(iii,i) - log_point(iii)%sum & … … 103 101 ALLOCATE( pe_max( SIZE( log_point ) ) ) 104 102 pe_max = log_point%sum 105 CALL MPI_SEND( pe_max(1), SIZE( log_point ), MPI_REAL, 0, 0, comm2d, &103 CALL MPI_SEND( pe_max(1), SIZE( log_point ), MPI_REAL, 0, myid, comm2d, & 106 104 ierr ) 107 105 #endif -
palm/trunk/SOURCE/data_output_profiles.f90
r90 r197 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! Time coordinate t=0 stored on netcdf-file only if an output is required for 7 ! this time for at least one of the profiles 7 8 ! 8 9 ! Former revisions: … … 39 40 40 41 INTEGER :: i, id, ilc, ils, j, k, sr 42 LOGICAL :: output_for_t0 41 43 REAL :: uxma, uxmi 42 44 … … 101 103 #if defined( __netcdf ) 102 104 ! 103 !-- Store initial time (t=0) to time axis 104 nc_stat = NF90_PUT_VAR( id_set_pr, id_var_time_pr, (/ 0.0 /), & 105 start = (/ 1 /), count = (/ 1 /) ) 106 IF ( nc_stat /= NF90_NOERR ) CALL handle_netcdf_error( 329 ) 105 !-- Store initial time (t=0) to time axis, but only if an output 106 !-- is required for at least one of the profiles 107 output_for_t0 = .FALSE. 108 DO i = 1, dopr_n 109 IF ( dopr_initial_index(i) /= 0 ) THEN 110 nc_stat = NF90_PUT_VAR( id_set_pr, id_var_time_pr, & 111 (/ 0.0 /), start = (/ 1 /), & 112 count = (/ 1 /) ) 113 IF ( nc_stat /= NF90_NOERR ) CALL handle_netcdf_error( 329 ) 114 output_for_t0 = .TRUE. 115 EXIT 116 ENDIF 117 ENDDO 107 118 108 119 ! … … 331 342 ENDDO ! Loop over dopr_n for initial profiles 332 343 333 IF ( netcdf_output ) dopr_time_count = dopr_time_count + 1 344 IF ( netcdf_output .AND. output_for_t0 ) THEN 345 dopr_time_count = dopr_time_count + 1 346 ENDIF 334 347 335 348 ENDIF ! Initial profiles -
palm/trunk/SOURCE/flow_statistics.f90
r142 r197 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! Spline timeseries splptx etc. removed, timeseries w'u', w'v', w'q' (k=0) 7 ! added 6 8 ! Bugfix: divide sums(k,8) (e) and sums(k,34) (e*) by ngp_2dh_s_inner(k,sr) 7 9 ! (like other scalars) … … 109 111 sums_l(nzb+9,pr_palm,0) = sums_divold_l(sr) ! old divergence from pres 110 112 sums_l(nzb+10,pr_palm,0) = sums_divnew_l(sr) ! new divergence from pres 111 !-- WARNING: next four lines still may have to be adjusted for OpenMP112 sums_l(nzb:nzb+2,pr_palm-1,0) = sums_up_fraction_l(1,1:3,sr)! upstream113 sums_l(nzb+3:nzb+5,pr_palm-1,0) = sums_up_fraction_l(2,1:3,sr)! parts114 sums_l(nzb+6:nzb+8,pr_palm-1,0) = sums_up_fraction_l(3,1:3,sr)! from115 sums_l(nzb+9:nzb+11,pr_palm-1,0) = sums_up_fraction_l(4,1:3,sr)! spline116 113 117 114 ! … … 380 377 sums_l(nzb+3,pr_palm,tn) = sums_l(nzb+3,pr_palm,tn) + & 381 378 ts(j,i) * rmask(j,i,sr) 379 IF ( humidity ) THEN 380 sums_l(nzb+12,pr_palm,tn) = sums_l(nzb+12,pr_palm,tn) + & 381 qs(j,i) * rmask(j,i,sr) 382 ENDIF 382 383 ENDDO 383 384 ENDDO … … 807 808 !-- above the topography, they are being divided by ngp_2dh(sr) 808 809 sums(nzb:nzb+3,pr_palm) = sums(nzb:nzb+3,pr_palm) / & 810 ngp_2dh(sr) 811 sums(nzb+12,pr_palm) = sums(nzb+12,pr_palm) / & ! qs 809 812 ngp_2dh(sr) 810 813 !-- eges, e* … … 882 885 hom(:,1,68,sr) = sums(:,68) ! w*p* 883 886 hom(:,1,69,sr) = sums(:,69) ! w"e + w"p"/rho 887 hom(:,1,70,sr) = sums(:,70) ! q*2 884 888 885 889 hom(:,1,pr_palm-1,sr) = sums(:,pr_palm-1) … … 999 1003 ts_value(17,sr) = hom(nzb,1,4,sr) ! pt(0) 1000 1004 ts_value(18,sr) = hom(nzb+1,1,4,sr) ! pt(zp) 1001 ts_value(19,sr) = hom(nzb+9,1,pr_palm-1,sr) ! splptx 1002 ts_value(20,sr) = hom(nzb+10,1,pr_palm-1,sr) ! splpty 1003 ts_value(21,sr) = hom(nzb+11,1,pr_palm-1,sr) ! splptz 1005 ts_value(19,sr) = hom(nzb+1,1,pr_palm,sr) ! u'w' at k=0 1006 ts_value(20,sr) = hom(nzb+2,1,pr_palm,sr) ! v'w' at k=0 1007 ts_value(21,sr) = hom(nzb+12,1,pr_palm,sr) ! w'q' at k=0 1008 1004 1009 IF ( ts_value(5,sr) /= 0.0 ) THEN 1005 1010 ts_value(22,sr) = ts_value(4,sr)**2 / & -
palm/trunk/SOURCE/header.f90
r189 r197 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! TEST: mg_switch_to_pe0_level = -1!!!!!!!!! 6 7 ! allow 100 spectra levels instead of 10 for consistency with 7 8 ! define_netcdf_header … … 117 118 ELSEIF ( INDEX( initializing_actions, 'set_constant_profiles' ) /= 0 ) THEN 118 119 run_classification = '3D - run without 1D - prerun' 119 ELSEIF ( INDEX( initializing_actions, 'set_1d-model_profiles') /= 0 )THEN120 ELSEIF ( INDEX( initializing_actions, 'set_1d-model_profiles' ) /= 0 ) THEN 120 121 run_classification = '3D - run with 1D - prerun' 122 ELSEIF ( INDEX( initializing_actions, 'by_user' ) /=0 ) THEN 123 run_classification = '3D - run initialized by user' 121 124 ELSE 122 125 PRINT*,'+++ header: unknown action(s): ',initializing_actions … … 184 187 WRITE ( io, 136 ) nxr_mg(1)-nxl_mg(1)+1, nyn_mg(1)-nys_mg(1)+1, & 185 188 nzt_mg(1) 186 ELSE 189 ELSEIF ( mg_switch_to_pe0_level /= -1 ) THEN 187 190 WRITE ( io, 137 ) mg_switch_to_pe0_level, & 188 191 mg_loc_ind(2,0)-mg_loc_ind(1,0)+1, & -
palm/trunk/SOURCE/init_pegrid.f90
r181 r197 5 5 ! ----------------- 6 6 ! ATTENTION: nnz_x undefined problem still has to be solved!!!!!!!! 7 ! multigrid levels are limited by subdomains if mg_switch_to_pe0_level = -1, 7 8 ! nz is used instead nnz for calculating mg-levels 8 9 ! Collect on PE0 horizontal index bounds from all other PEs, … … 719 720 !-- Find out, if the total domain allows more levels. These additional 720 721 !-- levels are processed on PE0 only. 721 IF ( numprocs > 1 ) THEN722 IF ( numprocs > 1 .AND. mg_switch_to_pe0_level /= -1 ) THEN 722 723 IF ( mg_levels_z > MIN( mg_levels_x, mg_levels_y ) ) THEN 723 724 mg_switch_to_pe0_level_l = maximum_grid_level -
palm/trunk/SOURCE/modules.f90
r189 r197 788 788 'vmax ', 'wmax ', 'div_new', 'div_old', 'z_i_wpt', 'z_i_pt ', & 789 789 'w* ', 'w"pt"0 ', 'w"pt" ', 'wpt ', 'pt(0) ', 'pt(zp) ', & 790 ' splptx ', 'splpty ', 'splptz', 'mo_L ', &790 'w"u"0 ', 'w"v"0 ', 'w"q"0 ', 'mo_L ', & 791 791 ( 'unknown', i9 = 1, 78) /) 792 792 … … 795 795 'm/s ', 'm/s ', 's-1 ', 's-1 ', 'm ', 'm ', & 796 796 'm/s ', 'K m/s ', 'K m/s ', 'k m/s ', 'K ', 'K ', & 797 ' % ', '% ', '%', 'm ', &797 'm2/s2 ', 'm2/s2 ', 'kg m/s ', 'm ', & 798 798 ( 'unknown', i9 = 1, 78 ) /) 799 799 -
palm/trunk/SOURCE/palm.f90
r164 r197 66 66 INTEGER :: i, run_description_header_i(80) 67 67 68 version = 'PALM 3. 4a'68 version = 'PALM 3.5' 69 69 70 70 #if defined( __parallel ) -
palm/trunk/SOURCE/parin.f90
r153 r197 8 8 ! +inflow_damping_height, inflow_damping_width, recycling_width, 9 9 ! turbulent_inflow in inipar 10 ! -skip_time_dosp in d3par, 10 11 ! Allocation of hom_sum moved from init_3d_model to here, 11 12 ! npex, npey moved from inipar to d3par, setting of myid_char_14 removed, … … 109 110 surface_heatflux, surface_pressure, surface_scalarflux, & 110 111 surface_waterflux, s_surface, s_surface_initial_change, & 111 s_vertical_gradient, s_vertical_gradient_level, t op_heatflux, &112 top _momentumflux_u, top_momentumflux_v, top_salinityflux, &113 t imestep_scheme, topography, turbulent_inflow, ug_surface, &112 s_vertical_gradient, s_vertical_gradient_level, timestep_scheme, 113 topography, top_heatflux, top_momentumflux_u, top_momentumflux_v, & 114 top_salinityflux, turbulent_inflow, ug_surface, & 114 115 ug_vertical_gradient, ug_vertical_gradient_level, ups_limit_e, & 115 116 ups_limit_pt, ups_limit_u, ups_limit_v, ups_limit_w, & … … 143 144 section_yz, skip_time_data_output, & 144 145 skip_time_data_output_av, skip_time_dopr, & 145 skip_time_do sp, skip_time_do2d_xy, skip_time_do2d_xz, &146 skip_time_do2d_xy, skip_time_do2d_xz, & 146 147 skip_time_do2d_yz, skip_time_do3d, & 147 148 termination_time_needed, use_prior_plot1d_parameters, &
Note: See TracChangeset
for help on using the changeset viewer.