Changeset 1318
- Timestamp:
- Mar 17, 2014 1:35:16 PM (11 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 1 deleted
- 49 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/Makefile
r1312 r1318 20 20 # Current revisions: 21 21 # ------------------ 22 # 22 # +cpulog, dependencies for cpulog added 23 # -cpu_log, cpu_statistics 23 24 # 24 25 # Former revisions: … … 142 143 calc_radiation.f90 calc_spectra.f90 check_for_restart.f90 \ 143 144 check_open.f90 check_parameters.f90 close_file.f90 compute_vpt.f90 \ 144 coriolis.f90 cpu_log.f90 cpu_statistics.f90 cuda_fft_interfaces.f90 \ 145 data_log.f90 \ 145 coriolis.f90 cpulog.f90 cuda_fft_interfaces.f90 data_log.f90 \ 146 146 data_output_dvrp.f90 data_output_mask.f90 data_output_profiles.f90 \ 147 147 data_output_ptseries.f90 data_output_spectra.f90 \ … … 221 221 222 222 223 advec_particles.o: modules.o 224 advec_s_bc.o: modules.o 223 advec_s_bc.o: modules.o cpulog.o 225 224 advec_s_pw.o: modules.o 226 225 advec_s_up.o: modules.o … … 232 231 advec_w_pw.o: modules.o 233 232 advec_w_up.o: modules.o 234 average_3d_data.o: modules.o 233 average_3d_data.o: modules.o cpulog.o 235 234 boundary_conds.o: modules.o 236 235 buoyancy.o: modules.o … … 238 237 calc_precipitation.o: modules.o 239 238 calc_radiation.o: modules.o 240 calc_spectra.o: modules.o fft_xy.o239 calc_spectra.o: modules.o cpulog.o fft_xy.o 241 240 check_for_restart.o: modules.o 242 241 check_open.o: modules.o … … 245 244 compute_vpt.o: modules.o 246 245 coriolis.o: modules.o 247 cpu _log.o: modules.o246 cpulog.o: modules.o 248 247 cpu_statistics.o: modules.o 249 248 cuda_fft_interfaces.o: cuda_fft_interfaces.f90 modules.o 250 249 data_log.o: modules.o 251 data_output_dvrp.o: modules.o 252 data_output_mask.o: modules.o 253 data_output_profiles.o: modules.o 254 data_output_ptseries.o: modules.o 255 data_output_spectra.o: modules.o 256 data_output_tseries.o: modules.o 257 data_output_2d.o: modules.o 258 data_output_3d.o: modules.o 250 data_output_dvrp.o: modules.o cpulog.o 251 data_output_mask.o: modules.o cpulog.o 252 data_output_profiles.o: modules.o cpulog.o 253 data_output_ptseries.o: modules.o cpulog.o 254 data_output_spectra.o: modules.o cpulog.o 255 data_output_tseries.o: modules.o cpulog.o 256 data_output_2d.o: modules.o cpulog.o 257 data_output_3d.o: modules.o cpulog.o 259 258 diffusion_e.o: modules.o 260 259 diffusion_s.o: modules.o … … 263 262 diffusion_w.o: modules.o wall_fluxes.o 264 263 diffusivities.o: modules.o 265 disturb_field.o: modules.o random_function.o264 disturb_field.o: modules.o cpulog.o random_function.o 266 265 disturb_heatflux.o: modules.o 267 266 eqn_state_seawater.o: modules.o 268 exchange_horiz.o: modules.o 269 exchange_horiz_2d.o: modules.o 267 exchange_horiz.o: modules.o cpulog.o 268 exchange_horiz_2d.o: modules.o cpulog.o 270 269 fft_xy.o: cuda_fft_interfaces.o modules.o singleton.o temperton_fft.o 271 flow_statistics.o: modules.o 270 flow_statistics.o: modules.o cpulog.o 272 271 global_min_max.o: modules.o 273 header.o: modules.o subsidence.o272 header.o: modules.o cpulog.o subsidence.o 274 273 impact_of_latent_heat.o: modules.o 275 inflow_turbulence.o: modules.o 274 inflow_turbulence.o: modules.o cpulog.o 276 275 init_1d_model.o: modules.o 277 init_3d_model.o: modules.o random_function.o advec_ws.o ls_forcing.o276 init_3d_model.o: modules.o cpulog.o random_function.o advec_ws.o ls_forcing.o 278 277 init_advec.o: modules.o 279 278 init_cloud_physics.o: modules.o … … 290 289 local_getenv.o: modules.o 291 290 local_stop.o: modules.o 292 local_tremain.o: modules.o 293 local_tremain_ini.o: modules.o 294 lpm.o: modules.o 291 local_tremain.o: modules.o cpulog.o 292 local_tremain_ini.o: modules.o cpulog.o 293 lpm.o: modules.o cpulog.o 295 294 lpm_advec.o: modules.o 296 lpm_boundary_conds.o: modules.o 297 lpm_calc_liquid_water_content.o: modules.o 298 lpm_collision_kernels.o: modules.o user_module.o299 lpm_data_output_particles.o: modules.o 300 lpm_droplet_collision.o: modules.o lpm_collision_kernels.o301 lpm_droplet_condensation.o: modules.o lpm_collision_kernels.o302 lpm_exchange_horiz.o: modules.o 295 lpm_boundary_conds.o: modules.o cpulog.o 296 lpm_calc_liquid_water_content.o: modules.o cpulog.o 297 lpm_collision_kernels.o: modules.o cpulog.o user_module.o 298 lpm_data_output_particles.o: modules.o cpulog.o 299 lpm_droplet_collision.o: modules.o cpulog.o lpm_collision_kernels.o 300 lpm_droplet_condensation.o: modules.o cpulog.o lpm_collision_kernels.o 301 lpm_exchange_horiz.o: modules.o cpulog.o 303 302 lpm_extend_particle_array.o: modules.o 304 303 lpm_extend_tails.o: modules.o … … 309 308 lpm_read_restart_file.o: modules.o 310 309 lpm_release_set.o: modules.o random_function.o 311 lpm_set_attributes.o: modules.o 312 lpm_sort_arrays.o: modules.o 310 lpm_set_attributes.o: modules.o cpulog.o 311 lpm_sort_arrays.o: modules.o cpulog.o 313 312 lpm_write_exchange_statistics.o: modules.o 314 313 lpm_write_restart_file.o: modules.o 315 ls_forcing.o: modules.o 314 ls_forcing.o: modules.o cpulog.o 316 315 message.o: modules.o 317 316 microphysics.o: modules.o 318 317 modules.o: modules.f90 319 318 netcdf.o: modules.o 320 nudging.o: modules.o buoyancy.o 319 nudging.o: modules.o buoyancy.o cpulog.o 321 320 package_parin.o: modules.o 322 palm.o: modules.o ls_forcing.o nudging.o323 parin.o: modules.o 321 palm.o: modules.o cpulog.o ls_forcing.o nudging.o 322 parin.o: modules.o cpulog.o 324 323 plant_canopy_model.o: modules.o 325 poisfft.o: modules.o fft_xy.o tridia_solver.o326 poismg.o: modules.o 324 poisfft.o: modules.o cpulog.o fft_xy.o tridia_solver.o 325 poismg.o: modules.o cpulog.o 327 326 prandtl_fluxes.o: modules.o 328 pres.o: modules.o poisfft.o329 print_1d.o: modules.o 327 pres.o: modules.o cpulog.o poisfft.o 328 print_1d.o: modules.o cpulog.o 330 329 production_e.o: modules.o wall_fluxes.o 331 330 prognostic_equations.o: modules.o advec_s_pw.o advec_s_up.o advec_u_pw.o \ 332 331 advec_u_up.o advec_v_pw.o advec_v_up.o advec_w_pw.o advec_w_up.o \ 333 334 diffusion_e.o diffusion_s.o diffusion_u.o diffusion_v.o diffusion_w.o \332 advec_ws.o buoyancy.o calc_precipitation.o calc_radiation.o coriolis.o \ 333 cpulog.o diffusion_e.o diffusion_s.o diffusion_u.o diffusion_v.o diffusion_w.o \ 335 334 eqn_state_seawater.o impact_of_latent_heat.o microphysics.o \ 336 335 nudging.o plant_canopy_model.o production_e.o subsidence.o user_actions.o 337 336 random_gauss.o: random_function.o 338 read_3d_binary.o: modules.o random_function.o337 read_3d_binary.o: modules.o cpulog.o random_function.o 339 338 read_var_list.o: modules.o 340 run_control.o: modules.o 339 run_control.o: modules.o cpulog.o 341 340 set_slicer_attributes_dvrp.o: modules.o 342 341 singleton.o: singleton.f90 343 342 sor.o: modules.o 344 343 subsidence.o: modules.o 345 sum_up_3d_data.o: modules.o 346 surface_coupler.o: modules.o 347 swap_timelevel.o: modules.o 344 sum_up_3d_data.o: modules.o cpulog.o 345 surface_coupler.o: modules.o cpulog.o 346 swap_timelevel.o: modules.o cpulog.o 348 347 temperton_fft.o: modules.o 349 time_integration.o: modules.o advec_ws.o buoyancy.o interaction_droplets_ptq.o \348 time_integration.o: modules.o advec_ws.o buoyancy.o cpulog.o interaction_droplets_ptq.o \ 350 349 ls_forcing.o production_e.o prognostic_equations.o user_actions.o 351 timestep.o: modules.o 350 timestep.o: modules.o cpulog.o 352 351 timestep_scheme_steering.o: modules.o 353 transpose.o: modules.o 352 transpose.o: modules.o cpulog.o 354 353 tridia_solver.o: modules.o 355 354 user_3d_data_averaging.o: modules.o user_module.o 356 user_actions.o: modules.o user_module.o355 user_actions.o: modules.o cpulog.o user_module.o 357 356 user_additional_routines.o: modules.o user_module.o 358 357 user_check_data_output.o: modules.o user_module.o … … 380 379 user_statistics.o: modules.o user_module.o 381 380 wall_fluxes.o: modules.o 382 write_3d_binary.o: modules.o random_function.o381 write_3d_binary.o: modules.o cpulog.o random_function.o 383 382 write_compressed.o: modules.o 384 383 write_var_list.o: modules.o -
palm/trunk/SOURCE/advec_s_bc.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 80 80 USE grid_variables 81 81 USE indices 82 USE interfaces83 82 USE pegrid 84 83 USE statistics -
palm/trunk/SOURCE/average_3d_data.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! barrier argument removed from cpu_log, 23 ! module interfaces removed 23 24 ! 24 25 ! Former revisions: … … 70 71 USE cpulog 71 72 USE indices 72 USE interfaces73 73 74 74 IMPLICIT NONE … … 360 360 average_count_3d = 0.0 361 361 362 CALL cpu_log (log_point(35),'average_3d_data','stop','nobarrier')362 CALL cpu_log( log_point(35), 'average_3d_data', 'stop' ) 363 363 364 364 -
palm/trunk/SOURCE/calc_spectra.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 83 83 USE fft_xy 84 84 USE indices 85 USE interfaces86 85 USE pegrid 87 86 USE spectrum -
palm/trunk/SOURCE/cpulog.f90
r1313 r1318 1 SUBROUTINE cpu_log( log_event, place, modus, barrierwait )1 MODULE cpulog 2 2 3 3 !--------------------------------------------------------------------------------! … … 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! former files/routines cpu_log and cpu_statistics combined to one module, 23 ! which also includes the former data module cpulog from the modules-file 23 24 ! 24 25 ! Former revisions: … … 55 56 56 57 USE control_parameters 57 USE cpulog58 USE indices, ONLY: nx, ny, nz 58 59 USE pegrid 59 60 60 61 IMPLICIT NONE 61 62 62 CHARACTER (LEN=*) :: modus, place 63 CHARACTER (LEN=*), OPTIONAL :: barrierwait 64 LOGICAL, SAVE :: first = .TRUE. 65 REAL :: mtime = 0.0, mtimevec = 0.0 66 TYPE(logpoint) :: log_event 63 PRIVATE 64 PUBLIC cpu_log, cpu_log_barrierwait, cpu_log_nowait, cpu_statistics, & 65 initial_wallclock_time, log_point, log_point_s 66 67 INTERFACE cpu_log 68 MODULE PROCEDURE cpu_log 69 END INTERFACE cpu_log 70 71 INTERFACE cpu_statistics 72 MODULE PROCEDURE cpu_statistics 73 END INTERFACE cpu_statistics 74 75 INTEGER, PARAMETER :: cpu_log_continue = 0, cpu_log_pause = 1, & 76 cpu_log_start = 2, cpu_log_stop = 3 77 78 LOGICAL :: cpu_log_barrierwait = .FALSE. 79 LOGICAL, PARAMETER :: cpu_log_nowait = .FALSE. 80 81 REAL :: initial_wallclock_time 82 83 TYPE logpoint 84 REAL :: isum, ivect, mean, mtime, mtimevec, sum, vector 85 INTEGER :: counts 86 CHARACTER (LEN=20) :: place 87 END TYPE logpoint 88 89 TYPE(logpoint), DIMENSION(100) :: log_point = logpoint( 0.0, 0.0, 0.0, & 90 0.0, 0.0, 0.0, 0.0, 0, ' ' ), & 91 log_point_s = logpoint( 0.0, 0.0, 0.0, & 92 0.0, 0.0, 0.0, 0.0, 0, ' ' ) 93 94 SAVE 95 96 CONTAINS 97 98 SUBROUTINE cpu_log( log_event, place, modus, barrierwait ) 99 100 IMPLICIT NONE 101 102 CHARACTER (LEN=*) :: modus, place 103 LOGICAL :: wait_allowed 104 LOGICAL, OPTIONAL :: barrierwait 105 LOGICAL, SAVE :: first = .TRUE. 106 REAL :: mtime = 0.0, mtimevec = 0.0 107 TYPE(logpoint) :: log_event 67 108 68 109 #if defined( __lc ) || defined( __decalpha ) 69 INTEGER(8) :: count, count_rate110 INTEGER(8) :: count, count_rate 70 111 #elif defined( __nec ) 71 INTEGER :: count, count_rate112 INTEGER :: count, count_rate 72 113 #elif defined( __ibm ) 73 INTEGER(8) :: IRTC 74 #endif 75 76 77 ! 78 !-- Initialize and check, respectively, point of measurement 79 IF ( log_event%place == ' ' ) THEN 80 log_event%place = place 81 ELSEIF ( log_event%place /= place ) THEN 82 WRITE( message_string, * ) 'wrong argument & expected: ', & 83 TRIM(log_event%place), ' given: ', TRIM( place ) 84 CALL message( 'cpu_log', 'PA0174', 1, 2, 0, 6, 0 ) 85 ENDIF 86 87 ! 88 !-- Take current time 114 INTEGER(8) :: IRTC 115 #endif 116 117 118 ! 119 !-- Initialize and check, respectively, point of measurement 120 IF ( log_event%place == ' ' ) THEN 121 log_event%place = place 122 ELSEIF ( log_event%place /= place ) THEN 123 WRITE( message_string, * ) 'wrong argument & expected: ', & 124 TRIM(log_event%place), ' given: ', TRIM( place ) 125 CALL message( 'cpu_log', 'PA0174', 1, 2, 0, 6, 0 ) 126 ENDIF 127 128 ! 129 !-- Determine, if barriers are allowed to set 130 IF ( PRESENT( barrierwait ) ) THEN 131 wait_allowed = barrierwait 132 ELSE 133 wait_allowed = .TRUE. 134 ENDIF 135 136 ! 137 !-- MPI barrier, if requested, in order to avoid measuring wait times 138 !-- caused by MPI routines waiting for other MPI routines of other 139 !-- PEs that have not yet finished 140 #if defined( __parallel ) 141 IF ( cpu_log_barrierwait .AND. wait_allowed .AND. & 142 ( modus == 'start' .OR. modus == 'continue' ) ) THEN 143 CALL MPI_BARRIER( comm2d, ierr ) 144 ENDIF 145 #endif 146 147 ! 148 !-- Take current time 89 149 #if defined( __lc ) || defined( __decalpha ) || defined( __nec ) 90 CALL SYSTEM_CLOCK( count, count_rate )91 mtime = REAL( count ) / REAL( count_rate )150 CALL SYSTEM_CLOCK( count, count_rate ) 151 mtime = REAL( count ) / REAL( count_rate ) 92 152 #elif defined( __ibm ) 93 mtime = IRTC( ) * 1E-9153 mtime = IRTC( ) * 1E-9 94 154 #else 95 message_string = 'no time measurement defined on this host' 96 CALL message( 'cpu_log', 'PA0175', 1, 2, 0, 6, 0 ) 97 #endif 98 99 ! 100 !-- Start, stop or pause measurement 101 IF ( modus == 'start' .OR. modus == 'continue' ) THEN 102 log_event%mtime = mtime 103 log_event%mtimevec = mtimevec 104 ELSEIF ( modus == 'pause' ) THEN 105 IF ( ( mtime - log_event%mtime ) < 0.0 .AND. first ) THEN 106 WRITE( message_string, * ) 'negative time interval occured', & 107 ' &PE',myid,' L=PAUSE "',TRIM(log_event%place),'" new=', & 108 mtime,' last=',log_event%mtime 109 CALL message( 'cpu_log', 'PA0176', 0, 1, -1, 6, 0 ) 110 first = .FALSE. 111 ENDIF 112 log_event%isum = log_event%isum + mtime - log_event%mtime 113 log_event%ivect = log_event%ivect + mtimevec - log_event%mtimevec 114 ELSEIF ( modus == 'stop' ) THEN 115 IF ( ( mtime - log_event%mtime + log_event%isum ) < 0.0 .AND. & 116 first ) THEN 117 WRITE( message_string, * ) 'negative time interval occured', & 118 ' &PE',myid,' L=STOP "',TRIM(log_event%place),'" new=', & 119 mtime,' last=',log_event%mtime,' isum=',log_event%isum 120 CALL message( 'cpu_log', 'PA0177', 0, 1, -1, 6, 0 ) 121 first = .FALSE. 122 ENDIF 123 log_event%mtime = mtime - log_event%mtime + log_event%isum 124 log_event%mtimevec = mtimevec - log_event%mtimevec + log_event%ivect 125 log_event%sum = log_event%sum + log_event%mtime 126 IF ( log_event%sum < 0.0 .AND. first ) THEN 127 WRITE( message_string, * ) 'negative time interval occured', & 128 ' &PE',myid,' L=STOP "',TRIM(log_event%place),'" sum=', & 129 log_event%sum,' mtime=',log_event%mtime 130 CALL message( 'cpu_log', 'PA0178', 0, 1, -1, 6, 0 ) 131 first = .FALSE. 132 ENDIF 133 log_event%vector = log_event%vector + log_event%mtimevec 134 log_event%counts = log_event%counts + 1 135 log_event%isum = 0.0 136 log_event%ivect = 0.0 137 ELSE 138 message_string = 'unknown modus of time measurement: ' // TRIM( modus ) 139 CALL message( 'cpu_log', 'PA0179', 0, 1, -1, 6, 0 ) 140 ENDIF 141 142 143 END SUBROUTINE cpu_log 155 message_string = 'no time measurement defined on this host' 156 CALL message( 'cpu_log', 'PA0175', 1, 2, 0, 6, 0 ) 157 #endif 158 159 ! 160 !-- Start, stop or pause measurement 161 IF ( modus == 'start' .OR. modus == 'continue' ) THEN 162 log_event%mtime = mtime 163 log_event%mtimevec = mtimevec 164 ELSEIF ( modus == 'pause' ) THEN 165 IF ( ( mtime - log_event%mtime ) < 0.0 .AND. first ) THEN 166 WRITE( message_string, * ) 'negative time interval occured', & 167 ' &PE',myid,' L=PAUSE "',TRIM(log_event%place),'" new=', & 168 mtime,' last=',log_event%mtime 169 CALL message( 'cpu_log', 'PA0176', 0, 1, -1, 6, 0 ) 170 first = .FALSE. 171 ENDIF 172 log_event%isum = log_event%isum + mtime - log_event%mtime 173 log_event%ivect = log_event%ivect + mtimevec - log_event%mtimevec 174 ELSEIF ( modus == 'stop' ) THEN 175 IF ( ( mtime - log_event%mtime + log_event%isum ) < 0.0 .AND. & 176 first ) THEN 177 WRITE( message_string, * ) 'negative time interval occured', & 178 ' &PE',myid,' L=STOP "',TRIM(log_event%place),'" new=', & 179 mtime,' last=',log_event%mtime,' isum=',log_event%isum 180 CALL message( 'cpu_log', 'PA0177', 0, 1, -1, 6, 0 ) 181 first = .FALSE. 182 ENDIF 183 log_event%mtime = mtime - log_event%mtime + log_event%isum 184 log_event%mtimevec = mtimevec - log_event%mtimevec + log_event%ivect 185 log_event%sum = log_event%sum + log_event%mtime 186 IF ( log_event%sum < 0.0 .AND. first ) THEN 187 WRITE( message_string, * ) 'negative time interval occured', & 188 ' &PE',myid,' L=STOP "',TRIM(log_event%place),'" sum=', & 189 log_event%sum,' mtime=',log_event%mtime 190 CALL message( 'cpu_log', 'PA0178', 0, 1, -1, 6, 0 ) 191 first = .FALSE. 192 ENDIF 193 log_event%vector = log_event%vector + log_event%mtimevec 194 log_event%counts = log_event%counts + 1 195 log_event%isum = 0.0 196 log_event%ivect = 0.0 197 ELSE 198 message_string = 'unknown modus of time measurement: ' // TRIM( modus ) 199 CALL message( 'cpu_log', 'PA0179', 0, 1, -1, 6, 0 ) 200 ENDIF 201 202 END SUBROUTINE cpu_log 203 204 205 SUBROUTINE cpu_statistics 206 !------------------------------------------------------------------------------! 207 ! Description: 208 ! ------------ 209 ! Analysis and output of the cpu-times measured. All PE results are collected 210 ! on PE0 in order to calculate the mean cpu-time over all PEs and other 211 ! statistics. The output is sorted according to the amount of cpu-time consumed 212 ! and output on PE0. 213 !------------------------------------------------------------------------------! 214 215 IMPLICIT NONE 216 217 INTEGER :: i, ii(1), iii, sender 218 REAL :: average_cputime 219 REAL, SAVE :: norm = 1.0 220 REAL, DIMENSION(:), ALLOCATABLE :: pe_max, pe_min, pe_rms, sum 221 REAL, DIMENSION(:,:), ALLOCATABLE :: pe_log_points 222 223 224 ! 225 !-- Compute cpu-times in seconds 226 log_point%mtime = log_point%mtime / norm 227 log_point%sum = log_point%sum / norm 228 log_point%vector = log_point%vector / norm 229 WHERE ( log_point%counts /= 0 ) 230 log_point%mean = log_point%sum / log_point%counts 231 END WHERE 232 233 234 ! 235 !-- Collect cpu-times from all PEs and calculate statistics 236 IF ( myid == 0 ) THEN 237 ! 238 !-- Allocate and initialize temporary arrays needed for statistics 239 ALLOCATE( pe_max( SIZE( log_point ) ), pe_min( SIZE( log_point ) ), & 240 pe_rms( SIZE( log_point ) ), & 241 pe_log_points( SIZE( log_point ), 0:numprocs-1 ) ) 242 pe_min = log_point%sum 243 pe_max = log_point%sum ! need to be set in case of 1 PE 244 pe_rms = 0.0 245 246 #if defined( __parallel ) 247 ! 248 !-- Receive data from all PEs 249 DO i = 1, numprocs-1 250 CALL MPI_RECV( pe_max(1), SIZE( log_point ), MPI_REAL, & 251 i, i, comm2d, status, ierr ) 252 sender = status(MPI_SOURCE) 253 pe_log_points(:,sender) = pe_max 254 ENDDO 255 pe_log_points(:,0) = log_point%sum ! Results from PE0 256 ! 257 !-- Calculate mean of all PEs, store it on log_point%sum 258 !-- and find minimum and maximum 259 DO iii = 1, SIZE( log_point ) 260 DO i = 1, numprocs-1 261 log_point(iii)%sum = log_point(iii)%sum + pe_log_points(iii,i) 262 pe_min(iii) = MIN( pe_min(iii), pe_log_points(iii,i) ) 263 pe_max(iii) = MAX( pe_max(iii), pe_log_points(iii,i) ) 264 ENDDO 265 log_point(iii)%sum = log_point(iii)%sum / numprocs 266 ! 267 !-- Calculate rms 268 DO i = 0, numprocs-1 269 pe_rms(iii) = pe_rms(iii) + ( & 270 pe_log_points(iii,i) - log_point(iii)%sum & 271 )**2 272 ENDDO 273 pe_rms(iii) = SQRT( pe_rms(iii) / numprocs ) 274 ENDDO 275 ELSE 276 ! 277 !-- Send data to PE0 (pe_max is used as temporary storage to send 278 !-- the data in order to avoid sending the data type log) 279 ALLOCATE( pe_max( SIZE( log_point ) ) ) 280 pe_max = log_point%sum 281 CALL MPI_SEND( pe_max(1), SIZE( log_point ), MPI_REAL, 0, myid, comm2d, & 282 ierr ) 283 #endif 284 285 ENDIF 286 287 ! 288 !-- Write cpu-times 289 IF ( myid == 0 ) THEN 290 ! 291 !-- Re-store sums 292 ALLOCATE( sum( SIZE( log_point ) ) ) 293 WHERE ( log_point%counts /= 0 ) 294 sum = log_point%sum 295 ELSEWHERE 296 sum = -1.0 297 ENDWHERE 298 299 ! 300 !-- Get total time in order to calculate CPU-time per gridpoint and timestep 301 IF ( nr_timesteps_this_run /= 0 ) THEN 302 average_cputime = log_point(1)%sum / REAL( (nx+1) * (ny+1) * nz ) / & 303 REAL( nr_timesteps_this_run ) * 1E6 ! in micro-sec 304 ELSE 305 average_cputime = -1.0 306 ENDIF 307 308 ! 309 !-- Write cpu-times sorted by size 310 CALL check_open( 18 ) 311 #if defined( __parallel ) 312 WRITE ( 18, 100 ) TRIM( run_description_header ), & 313 numprocs * threads_per_task, pdims(1), pdims(2), & 314 threads_per_task, nx+1, ny+1, nz, nr_timesteps_this_run, & 315 average_cputime 316 317 IF ( num_acc_per_node /= 0 ) WRITE ( 18, 108 ) num_acc_per_node 318 WRITE ( 18, 110 ) 319 #else 320 WRITE ( 18, 100 ) TRIM( run_description_header ), & 321 numprocs * threads_per_task, 1, 1, & 322 threads_per_task, nx+1, ny+1, nz, nr_timesteps_this_run, & 323 average_cputime 324 325 IF ( num_acc_per_node /= 0 ) WRITE ( 18, 109 ) num_acc_per_node 326 WRITE ( 18, 110 ) 327 #endif 328 DO 329 ii = MAXLOC( sum ) 330 i = ii(1) 331 IF ( sum(i) /= -1.0 ) THEN 332 WRITE ( 18, 102 ) & 333 log_point(i)%place, log_point(i)%sum, & 334 log_point(i)%sum / log_point(1)%sum * 100.0, & 335 log_point(i)%counts, pe_min(i), pe_max(i), pe_rms(i) 336 sum(i) = -1.0 337 ELSE 338 EXIT 339 ENDIF 340 ENDDO 341 ENDIF 342 343 344 ! 345 !-- The same procedure again for the individual measurements. 346 ! 347 !-- Compute cpu-times in seconds 348 log_point_s%mtime = log_point_s%mtime / norm 349 log_point_s%sum = log_point_s%sum / norm 350 log_point_s%vector = log_point_s%vector / norm 351 WHERE ( log_point_s%counts /= 0 ) 352 log_point_s%mean = log_point_s%sum / log_point_s%counts 353 END WHERE 354 355 ! 356 !-- Collect cpu-times from all PEs and calculate statistics 357 #if defined( __parallel ) 358 ! 359 !-- Set barrier in order to avoid that PE0 receives log_point_s-data 360 !-- while still busy with receiving log_point-data (see above) 361 CALL MPI_BARRIER( comm2d, ierr ) 362 #endif 363 IF ( myid == 0 ) THEN 364 ! 365 !-- Initialize temporary arrays needed for statistics 366 pe_min = log_point_s%sum 367 pe_max = log_point_s%sum ! need to be set in case of 1 PE 368 pe_rms = 0.0 369 370 #if defined( __parallel ) 371 ! 372 !-- Receive data from all PEs 373 DO i = 1, numprocs-1 374 CALL MPI_RECV( pe_max(1), SIZE( log_point ), MPI_REAL, & 375 MPI_ANY_SOURCE, MPI_ANY_TAG, comm2d, status, ierr ) 376 sender = status(MPI_SOURCE) 377 pe_log_points(:,sender) = pe_max 378 ENDDO 379 pe_log_points(:,0) = log_point_s%sum ! Results from PE0 380 ! 381 !-- Calculate mean of all PEs, store it on log_point_s%sum 382 !-- and find minimum and maximum 383 DO iii = 1, SIZE( log_point ) 384 DO i = 1, numprocs-1 385 log_point_s(iii)%sum = log_point_s(iii)%sum + pe_log_points(iii,i) 386 pe_min(iii) = MIN( pe_min(iii), pe_log_points(iii,i) ) 387 pe_max(iii) = MAX( pe_max(iii), pe_log_points(iii,i) ) 388 ENDDO 389 log_point_s(iii)%sum = log_point_s(iii)%sum / numprocs 390 ! 391 !-- Calculate rms 392 DO i = 0, numprocs-1 393 pe_rms(iii) = pe_rms(iii) + ( & 394 pe_log_points(iii,i) - log_point_s(iii)%sum & 395 )**2 396 ENDDO 397 pe_rms(iii) = SQRT( pe_rms(iii) / numprocs ) 398 ENDDO 399 ELSE 400 ! 401 !-- Send data to PE0 (pe_max is used as temporary storage to send 402 !-- the data in order to avoid sending the data type log) 403 pe_max = log_point_s%sum 404 CALL MPI_SEND( pe_max(1), SIZE( log_point ), MPI_REAL, 0, 0, comm2d, & 405 ierr ) 406 #endif 407 408 ENDIF 409 410 ! 411 !-- Write cpu-times 412 IF ( myid == 0 ) THEN 413 ! 414 !-- Re-store sums 415 WHERE ( log_point_s%counts /= 0 ) 416 sum = log_point_s%sum 417 ELSEWHERE 418 sum = -1.0 419 ENDWHERE 420 421 ! 422 !-- Write cpu-times sorted by size 423 WRITE ( 18, 101 ) 424 DO 425 ii = MAXLOC( sum ) 426 i = ii(1) 427 IF ( sum(i) /= -1.0 ) THEN 428 WRITE ( 18, 102 ) & 429 log_point_s(i)%place, log_point_s(i)%sum, & 430 log_point_s(i)%sum / log_point(1)%sum * 100.0, & 431 log_point_s(i)%counts, pe_min(i), pe_max(i), pe_rms(i) 432 sum(i) = -1.0 433 ELSE 434 EXIT 435 ENDIF 436 ENDDO 437 438 ! 439 !-- Output of handling of MPI operations 440 IF ( collective_wait ) THEN 441 WRITE ( 18, 103 ) 442 ELSE 443 WRITE ( 18, 104 ) 444 ENDIF 445 IF ( cpu_log_barrierwait ) WRITE ( 18, 111 ) 446 IF ( synchronous_exchange ) THEN 447 WRITE ( 18, 105 ) 448 ELSE 449 WRITE ( 18, 106 ) 450 ENDIF 451 452 ! 453 !-- Empty lines in order to create a gap to the results of the model 454 !-- continuation runs 455 WRITE ( 18, 107 ) 456 457 ! 458 !-- Unit 18 is not needed anymore 459 CALL close_file( 18 ) 460 461 ENDIF 462 463 464 100 FORMAT (A/11('-')//'CPU measures for ',I5,' PEs (',I5,'(x) * ',I5,'(y', & 465 &') tasks *',I5,' threads):'// & 466 'gridpoints (x/y/z): ',20X,I5,' * ',I5,' * ',I5/ & 467 'nr of timesteps: ',22X,I6/ & 468 'cpu time per grid point and timestep: ',5X,F8.5,' * 10**-6 s') 469 470 101 FORMAT (/'special measures:'/ & 471 &'-----------------------------------------------------------', & 472 &'--------------------') 473 474 102 FORMAT (A20,2X,F9.3,2X,F7.2,1X,I7,3(1X,F9.3)) 475 103 FORMAT (/'Barriers are set in front of collective operations') 476 104 FORMAT (/'No barriers are set in front of collective operations') 477 105 FORMAT (/'Exchange of ghostpoints via MPI_SENDRCV') 478 106 FORMAT (/'Exchange of ghostpoints via MPI_ISEND/MPI_IRECV') 479 107 FORMAT (//) 480 108 FORMAT ('Accelerator boards per node: ',14X,I2) 481 109 FORMAT ('Accelerator boards: ',23X,I2) 482 110 FORMAT ('----------------------------------------------------------', & 483 &'------------'//& 484 &'place: mean counts min ', & 485 &' max rms'/ & 486 &' sec. % sec. ', & 487 &' sec. sec.'/ & 488 &'-----------------------------------------------------------', & 489 &'-------------------') 490 111 FORMAT (/'Barriers are set at beginning (start/continue) of measurements') 491 492 END SUBROUTINE cpu_statistics 493 494 END MODULE cpulog -
palm/trunk/SOURCE/data_output_2d.f90
r1312 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! barrier argument removed from cpu_log. 23 ! module interfaces removed 23 24 ! 24 25 ! Former revisions: … … 143 144 USE grid_variables 144 145 USE indices 145 USE interfaces146 146 USE netcdf_control 147 147 USE particle_attributes … … 1808 1808 ENDIF 1809 1809 1810 CALL cpu_log (log_point(3),'data_output_2d','stop','nobarrier')1810 CALL cpu_log( log_point(3), 'data_output_2d', 'stop' ) 1811 1811 1812 1812 END SUBROUTINE data_output_2d -
palm/trunk/SOURCE/data_output_3d.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! barrier argument removed from cpu_log, 23 ! module interfaces removed 23 24 ! 24 25 ! Former revisions: … … 126 127 USE cpulog 127 128 USE indices 128 USE interfaces129 129 USE netcdf_control 130 130 USE particle_attributes … … 634 634 635 635 636 CALL cpu_log (log_point(14),'data_output_3d','stop','nobarrier')636 CALL cpu_log( log_point(14), 'data_output_3d', 'stop' ) 637 637 638 638 ! -
palm/trunk/SOURCE/data_output_dvrp.f90
r1310 r1318 18 18 ! Current revisions: 19 19 ! ----------------- 20 ! 20 ! module interfaces removed 21 21 ! 22 22 ! Former revisions: … … 109 109 USE grid_variables 110 110 USE indices 111 USE interfaces112 111 USE particle_attributes 113 112 USE pegrid -
palm/trunk/SOURCE/data_output_mask.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! barrier argument removed from cpu_log, 23 ! module interfaces removed 23 24 ! 24 25 ! Former revisions: … … 71 72 USE grid_variables 72 73 USE indices 73 USE interfaces74 74 USE netcdf 75 75 USE netcdf_control … … 518 518 519 519 520 CALL cpu_log (log_point(49),'data_output_mask','stop','nobarrier')520 CALL cpu_log( log_point(49), 'data_output_mask', 'stop' ) 521 521 #endif 522 522 -
palm/trunk/SOURCE/data_output_profiles.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! barrier argument removed from cpu_log, 23 ! module interfaces removed 23 24 ! 24 25 ! Former revisions: … … 71 72 USE cpulog 72 73 USE indices 73 USE interfaces74 74 USE netcdf_control 75 75 USE pegrid … … 310 310 ENDIF 311 311 312 CALL cpu_log( log_point(15), 'data_output_profiles','stop' , 'nobarrier')312 CALL cpu_log( log_point(15), 'data_output_profiles','stop' ) 313 313 314 314 ! -
palm/trunk/SOURCE/data_output_ptseries.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! barrier argument removed from cpu_log, 23 ! module interfaces removed 23 24 ! 24 25 ! Former revisions: … … 61 62 USE cpulog 62 63 USE indices 63 USE interfaces64 64 USE netcdf_control 65 65 USE particle_attributes … … 332 332 DEALLOCATE( pts_value, pts_value_l ) 333 333 334 CALL cpu_log( log_point(36), 'data_output_ptseries', 'stop', 'nobarrier' )334 CALL cpu_log( log_point(36), 'data_output_ptseries', 'stop' ) 335 335 336 336 END SUBROUTINE data_output_ptseries -
palm/trunk/SOURCE/data_output_spectra.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 61 61 USE control_parameters 62 62 USE cpulog 63 USE interfaces64 63 USE netcdf_control 65 64 USE pegrid -
palm/trunk/SOURCE/data_output_tseries.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! barrier argument removed from cpu_log. 23 ! module interfaces removed 23 24 ! 24 25 ! Former revisions: … … 58 59 USE cpulog 59 60 USE indices 60 USE interfaces61 61 USE netcdf_control 62 62 USE pegrid … … 118 118 119 119 120 CALL cpu_log( log_point(21), 'data_output_tseries', 'stop', 'nobarrier' )120 CALL cpu_log( log_point(21), 'data_output_tseries', 'stop' ) 121 121 122 122 ! -
palm/trunk/SOURCE/disturb_field.f90
r1310 r1318 19 19 ! 20 20 ! Current revisions: 21 ! ----------------- 21 ! ------------------ 22 ! module interfaces removed 22 23 ! 23 24 ! Former revisions: … … 60 61 USE grid_variables 61 62 USE indices 62 USE interfaces63 63 USE random_function_mod 64 64 -
palm/trunk/SOURCE/disturb_heatflux.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 56 56 USE grid_variables 57 57 USE indices 58 USE interfaces59 58 60 59 IMPLICIT NONE -
palm/trunk/SOURCE/exchange_horiz.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 87 87 USE cpulog 88 88 USE indices 89 USE interfaces90 89 USE pegrid 91 90 -
palm/trunk/SOURCE/exchange_horiz_2d.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 68 68 USE cpulog 69 69 USE indices 70 USE interfaces71 70 USE pegrid 72 71 … … 189 188 USE cpulog 190 189 USE indices 191 USE interfaces192 190 USE pegrid 193 191 -
palm/trunk/SOURCE/flow_statistics.f90
r1310 r1318 21 21 ! Current revisions: 22 22 ! ----------------- 23 ! 23 ! module interfaces removed 24 24 ! 25 25 ! Former revisions: … … 180 180 USE grid_variables 181 181 USE indices 182 USE interfaces183 182 USE pegrid 184 183 USE statistics … … 1353 1352 USE grid_variables 1354 1353 USE indices 1355 USE interfaces1356 1354 USE pegrid 1357 1355 USE statistics -
palm/trunk/SOURCE/inflow_turbulence.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 58 58 USE grid_variables 59 59 USE indices 60 USE interfaces61 60 USE pegrid 62 61 -
palm/trunk/SOURCE/init_3d_model.f90
r1317 r1318 1 #if defined( __ibmy_special )2 @PROCESS NOOPTimize3 #endif4 1 SUBROUTINE init_3d_model 5 2 … … 23 20 ! Current revisions: 24 21 ! ------------------ 25 ! 22 ! module interfaces removed 26 23 ! 27 24 ! Former revisions: … … 270 267 USE grid_variables 271 268 USE indices 272 USE interfaces273 269 USE ls_forcing_mod 274 270 USE model_1d -
palm/trunk/SOURCE/lpm.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 79 79 USE control_parameters 80 80 USE cpulog 81 USE interfaces82 81 USE particle_attributes 83 82 USE pegrid -
palm/trunk/SOURCE/lpm_boundary_conds.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 63 63 USE grid_variables 64 64 USE indices 65 USE interfaces66 65 USE particle_attributes 67 66 USE pegrid -
palm/trunk/SOURCE/lpm_calc_liquid_water_content.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 45 45 USE grid_variables 46 46 USE indices 47 USE interfaces48 47 USE particle_attributes 49 48 -
palm/trunk/SOURCE/lpm_collision_kernels.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 264 264 USE cpulog 265 265 USE indices 266 USE interfaces267 266 USE particle_attributes 268 267 -
palm/trunk/SOURCE/lpm_data_output_particles.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 41 41 USE control_parameters 42 42 USE cpulog 43 USE interfaces44 43 USE netcdf_control 45 44 USE particle_attributes -
palm/trunk/SOURCE/lpm_droplet_collision.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 71 71 USE grid_variables 72 72 USE indices 73 USE interfaces74 73 USE lpm_collision_kernels_mod 75 74 USE particle_attributes -
palm/trunk/SOURCE/lpm_droplet_condensation.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 64 64 USE cpulog 65 65 USE grid_variables 66 USE interfaces67 66 USE lpm_collision_kernels_mod 68 67 USE particle_attributes -
palm/trunk/SOURCE/lpm_exchange_horiz.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 46 46 USE grid_variables 47 47 USE indices 48 USE interfaces49 48 USE particle_attributes 50 49 USE pegrid -
palm/trunk/SOURCE/lpm_set_attributes.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 53 53 USE grid_variables 54 54 USE indices 55 USE interfaces56 55 USE particle_attributes 57 56 USE pegrid -
palm/trunk/SOURCE/lpm_sort_arrays.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 43 43 USE grid_variables 44 44 USE indices 45 USE interfaces46 45 USE particle_attributes 47 46 -
palm/trunk/SOURCE/ls_forcing.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 60 60 USE cpulog 61 61 USE indices 62 USE interfaces63 62 USE pegrid 64 63 … … 228 227 USE cpulog 229 228 USE indices 230 USE interfaces231 229 USE pegrid 232 230 … … 287 285 USE cpulog 288 286 USE indices 289 USE interfaces290 287 USE pegrid 291 288 -
palm/trunk/SOURCE/mod_kinds.f90
r1310 r1318 49 49 !-- Integer kinds 50 50 INTEGER, PARAMETER :: isp = SELECTED_INT_KIND( 9 ) ! single precision (32 bit) 51 INTEGER, PARAMETER :: idp = SELECTED_INT_KIND( 14 ) ! double precision ( 32bit)51 INTEGER, PARAMETER :: idp = SELECTED_INT_KIND( 14 ) ! double precision (64 bit) 52 52 53 53 ! 54 54 !-- Set kinds to be used as defaults 55 55 INTEGER, PARAMETER :: wp = dp ! default real kind 56 INTEGER, PARAMETER :: iwp = i dp ! default integer kind56 INTEGER, PARAMETER :: iwp = isp ! default integer kind 57 57 58 58 SAVE -
palm/trunk/SOURCE/modules.f90
r1315 r1318 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! module cpulog moved to new separate module-file 23 ! interface for cpu_log removed 23 24 ! Former revisions: 24 25 ! ----------------- … … 942 943 943 944 944 945 MODULE cpulog946 947 !------------------------------------------------------------------------------!948 ! Description:949 ! ------------950 ! Definition of variables for cpu-time measurements951 !------------------------------------------------------------------------------!952 953 REAL :: initial_wallclock_time954 955 TYPE logpoint956 REAL :: isum, ivect, mean, mtime, mtimevec, sum, vector957 INTEGER :: counts958 CHARACTER (LEN=20) :: place959 END TYPE logpoint960 961 TYPE(logpoint), DIMENSION(100) :: log_point = logpoint( 0.0, 0.0, 0.0, &962 0.0, 0.0, 0.0, 0.0, 0, ' ' ), &963 log_point_s = logpoint( 0.0, 0.0, 0.0, &964 0.0, 0.0, 0.0, 0.0, 0, ' ' )965 966 SAVE967 968 END MODULE cpulog969 970 971 972 973 945 MODULE dvrp_variables 974 946 … … 1166 1138 ! Interfaces for special subroutines which use optional parameters 1167 1139 !------------------------------------------------------------------------------! 1168 1169 INTERFACE1170 1171 SUBROUTINE cpu_log( log_event, place, modus, barrierwait )1172 1173 USE cpulog1174 1175 CHARACTER (LEN=*) :: modus, place1176 CHARACTER (LEN=*), OPTIONAL :: barrierwait1177 TYPE(logpoint) :: log_event1178 1179 END SUBROUTINE cpu_log1180 1181 END INTERFACE1182 1183 1184 1140 1185 1141 INTERFACE -
palm/trunk/SOURCE/nudging.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 63 63 USE cpulog 64 64 USE indices 65 USE interfaces66 65 USE pegrid 67 66 … … 191 190 USE cpulog 192 191 USE indices 193 USE interfaces194 192 USE pegrid 195 193 USE statistics … … 313 311 USE cpulog 314 312 USE indices 315 USE interfaces316 313 USE pegrid 317 314 USE statistics -
palm/trunk/SOURCE/palm.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 112 112 USE grid_variables 113 113 USE indices 114 USE interfaces115 114 USE ls_forcing_mod 116 115 USE model_1d -
palm/trunk/SOURCE/parin.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! +cpu_log_barrierwait in d3par 23 23 ! 24 24 ! Former revisions: … … 212 212 USE cloud_parameters 213 213 USE control_parameters 214 USE cpulog 214 215 USE dvrp_variables 215 216 USE grid_variables … … 281 282 282 283 NAMELIST /d3par/ averaging_interval, averaging_interval_pr, & 283 c reate_disturbances, &284 cpu_log_barrierwait, create_disturbances, & 284 285 cross_profiles, cross_ts_uymax, cross_ts_uymin, & 285 286 data_output, data_output_format, data_output_masks, & -
palm/trunk/SOURCE/poisfft.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 218 218 USE control_parameters, ONLY : fft_method, transpose_compute_overlap 219 219 USE cpulog 220 USE interfaces221 220 USE pegrid 222 221 … … 372 371 !-- 2d-domain-decomposition or no decomposition (1 PE run) with 373 372 !-- overlapping transposition / fft 373 !-- cputime logging must not use barriers, which would prevent overlapping 374 374 ALLOCATE( f_out_y(0:ny,nxl_y:nxr_y,nzb_y:nzt_y), & 375 375 f_out_z(0:nx,nys_x:nyn_x,nzb_x:nzt_x) ) … … 399 399 400 400 IF ( kk == 1 ) THEN 401 CALL cpu_log( log_point_s(5), 'transpo forward', 'start' )401 CALL cpu_log( log_point_s(5), 'transpo forward', 'start', cpu_log_nowait ) 402 402 ELSE 403 CALL cpu_log( log_point_s(5), 'transpo forward', 'continue' )403 CALL cpu_log( log_point_s(5), 'transpo forward', 'continue', cpu_log_nowait ) 404 404 ENDIF 405 405 … … 413 413 414 414 IF ( kk == 1 ) THEN 415 CALL cpu_log( log_point_s(4), 'fft_x', 'start' )415 CALL cpu_log( log_point_s(4), 'fft_x', 'start', cpu_log_nowait ) 416 416 ELSE 417 CALL cpu_log( log_point_s(4), 'fft_x', 'continue' )417 CALL cpu_log( log_point_s(4), 'fft_x', 'continue', cpu_log_nowait ) 418 418 ENDIF 419 419 … … 456 456 DO ii = 0, nblk 457 457 458 CALL cpu_log( log_point_s(5), 'transpo forward', 'continue' )458 CALL cpu_log( log_point_s(5), 'transpo forward', 'continue', cpu_log_nowait ) 459 459 460 460 DO inew = 0, nx-1 … … 468 468 469 469 IF ( ii == 1 ) THEN 470 CALL cpu_log( log_point_s(7), 'fft_y', 'start' )470 CALL cpu_log( log_point_s(7), 'fft_y', 'start', cpu_log_nowait ) 471 471 ELSE 472 CALL cpu_log( log_point_s(7), 'fft_y', 'continue' )472 CALL cpu_log( log_point_s(7), 'fft_y', 'continue', cpu_log_nowait ) 473 473 ENDIF 474 474 … … 518 518 !-- Forward Fourier Transformation 519 519 !-- Transposition y --> z 520 CALL cpu_log( log_point_s(5), 'transpo forward', 'continue' )520 CALL cpu_log( log_point_s(5), 'transpo forward', 'continue', cpu_log_nowait ) 521 521 522 522 DO jnew = 0, ny-1 … … 535 535 ! 536 536 !-- Solve the tridiagonal equation system along z 537 CALL cpu_log( log_point_s(6), 'tridia', 'start' )537 CALL cpu_log( log_point_s(6), 'tridia', 'start', cpu_log_nowait ) 538 538 539 539 n = isave(2) + jj … … 548 548 !-- backward tranpose are in the same section 549 549 IF ( jj == 0 ) THEN 550 CALL cpu_log( log_point_s(8), 'transpo invers', 'start' )550 CALL cpu_log( log_point_s(8), 'transpo invers', 'start', cpu_log_nowait ) 551 551 ELSE 552 CALL cpu_log( log_point_s(8), 'transpo invers', 'continue' )552 CALL cpu_log( log_point_s(8), 'transpo invers', 'continue', cpu_log_nowait ) 553 553 ENDIF 554 554 … … 597 597 DO ii = 0, nblk 598 598 599 CALL cpu_log( log_point_s(7), 'fft_y', 'continue' )599 CALL cpu_log( log_point_s(7), 'fft_y', 'continue', cpu_log_nowait ) 600 600 601 601 n = isave(2) + ii … … 613 613 ENDIF 614 614 615 CALL cpu_log( log_point_s(8), 'transpo invers', 'continue' )615 CALL cpu_log( log_point_s(8), 'transpo invers', 'continue', cpu_log_nowait ) 616 616 617 617 CALL transpose_yx( ar1(:,:,:), f_in ) … … 659 659 DO kk = 1, nblk 660 660 661 CALL cpu_log( log_point_s(4), 'fft_x', 'continue' )661 CALL cpu_log( log_point_s(4), 'fft_x', 'continue', cpu_log_nowait ) 662 662 663 663 n = isave(2) + kk - 1 … … 670 670 ENDIF 671 671 672 CALL cpu_log( log_point_s(8), 'transpo invers', 'continue' )672 CALL cpu_log( log_point_s(8), 'transpo invers', 'continue', cpu_log_nowait ) 673 673 674 674 CALL transpose_xz( ar1(:,:,:), f_in ) … … 723 723 USE cpulog 724 724 USE indices 725 USE interfaces726 725 USE pegrid 727 726 USE transpose_indices … … 841 840 USE cpulog 842 841 USE indices 843 USE interfaces844 842 USE pegrid 845 843 USE transpose_indices … … 963 961 USE grid_variables 964 962 USE indices 965 USE interfaces966 963 USE pegrid 967 964 USE transpose_indices … … 1094 1091 USE cpulog 1095 1092 USE indices 1096 USE interfaces1097 1093 USE pegrid 1098 1094 USE transpose_indices … … 1200 1196 USE cpulog 1201 1197 USE indices 1202 USE interfaces1203 1198 USE pegrid 1204 1199 USE transpose_indices … … 1307 1302 USE grid_variables 1308 1303 USE indices 1309 USE interfaces1310 1304 USE pegrid 1311 1305 USE transpose_indices -
palm/trunk/SOURCE/poismg.f90
r1310 r1318 23 23 ! Current revisions: 24 24 ! ----------------- 25 ! 25 ! module interfaces removed 26 26 ! 27 27 ! Former revisions: … … 110 110 USE grid_variables 111 111 USE indices 112 USE interfaces113 112 USE pegrid 114 113 … … 616 615 USE grid_variables 617 616 USE indices 618 USE interfaces619 617 USE pegrid 620 618 … … 1029 1027 USE cpulog 1030 1028 USE indices 1031 USE interfaces1032 1029 USE pegrid 1033 1030 … … 1094 1091 USE cpulog 1095 1092 USE indices 1096 USE interfaces1097 1093 USE pegrid 1098 1094 -
palm/trunk/SOURCE/pres.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 143 143 USE grid_variables 144 144 USE indices 145 USE interfaces146 145 USE pegrid 147 146 USE poisfft_mod -
palm/trunk/SOURCE/print_1d.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! barrier argument removed from cpu_log, 23 ! module interfaces removed 23 24 ! 24 25 ! Former revisions: … … 47 48 USE cpulog 48 49 USE indices 49 USE interfaces50 50 USE pegrid 51 51 USE statistics … … 136 136 ENDIF 137 137 138 CALL cpu_log( log_point(18), 'print_1d', 'stop', 'nobarrier' )138 CALL cpu_log( log_point(18), 'print_1d', 'stop' ) 139 139 140 140 ! -
palm/trunk/SOURCE/prognostic_equations.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 167 167 USE grid_variables 168 168 USE indices 169 USE interfaces170 169 USE pegrid 171 170 USE pointer_interfaces -
palm/trunk/SOURCE/read_3d_binary.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 110 110 USE cpulog 111 111 USE indices 112 USE interfaces113 112 USE particle_attributes 114 113 USE pegrid -
palm/trunk/SOURCE/run_control.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 61 61 USE cpulog 62 62 USE indices 63 USE interfaces64 63 USE pegrid 65 64 USE statistics -
palm/trunk/SOURCE/sum_up_3d_data.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! barrier argument removed from cpu_log, 23 ! module interfaces removed 23 24 ! 24 25 ! Former revisions: … … 80 81 USE cpulog 81 82 USE indices 82 USE interfaces83 83 USE particle_attributes 84 84 … … 603 603 ENDDO 604 604 605 CALL cpu_log (log_point(34),'sum_up_3d_data','stop','nobarrier')605 CALL cpu_log( log_point(34), 'sum_up_3d_data', 'stop' ) 606 606 607 607 -
palm/trunk/SOURCE/surface_coupler.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 64 64 USE grid_variables 65 65 USE indices 66 USE interfaces67 66 USE pegrid 68 67 -
palm/trunk/SOURCE/swap_timelevel.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 75 75 USE arrays_3d 76 76 USE cpulog 77 USE interfaces78 77 USE control_parameters 79 78 -
palm/trunk/SOURCE/time_integration.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 179 179 USE indices 180 180 USE interaction_droplets_ptq_mod 181 USE interfaces182 181 USE ls_forcing_mod 183 182 USE particle_attributes -
palm/trunk/SOURCE/transpose.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! cpu_log_nowait parameter added to cpu measurements of the transpositions 23 ! required for solving the Poisson equation (poisfft), 24 ! module interfaces removed 23 25 ! 24 26 ! Former revisions: … … 125 127 USE cpulog 126 128 USE indices 127 USE interfaces128 129 USE pegrid 129 130 USE transpose_indices … … 143 144 ! 144 145 !-- Transpose array 145 CALL cpu_log( log_point_s(32), 'mpi_alltoall', 'start' )146 CALL cpu_log( log_point_s(32), 'mpi_alltoall', 'start', cpu_log_nowait ) 146 147 IF ( collective_wait ) CALL MPI_BARRIER( comm2d, ierr ) 147 148 !$acc update host( f_inv ) … … 247 248 USE cpulog 248 249 USE indices 249 USE interfaces250 250 USE pegrid 251 251 USE transpose_indices … … 288 288 ! 289 289 !-- Transpose array 290 CALL cpu_log( log_point_s(32), 'mpi_alltoall', 'start' )290 CALL cpu_log( log_point_s(32), 'mpi_alltoall', 'start', cpu_log_nowait ) 291 291 IF ( collective_wait ) CALL MPI_BARRIER( comm2d, ierr ) 292 292 CALL MPI_ALLTOALL( work(nys_x,1,nzb_x,0), sendrecvcount_zx, MPI_REAL, & … … 370 370 USE cpulog 371 371 USE indices 372 USE interfaces373 372 USE pegrid 374 373 USE transpose_indices … … 408 407 ! 409 408 !-- Transpose array 410 CALL cpu_log( log_point_s(32), 'mpi_alltoall', 'start' )409 CALL cpu_log( log_point_s(32), 'mpi_alltoall', 'start', cpu_log_nowait ) 411 410 IF ( collective_wait ) CALL MPI_BARRIER( comm2d, ierr ) 412 411 CALL MPI_ALLTOALL( work(1,nzb_y,nxl_y,0), sendrecvcount_xy, MPI_REAL, & … … 453 452 USE cpulog 454 453 USE indices 455 USE interfaces456 454 USE pegrid 457 455 USE transpose_indices … … 558 556 USE cpulog 559 557 USE indices 560 USE interfaces561 558 USE pegrid 562 559 USE transpose_indices … … 594 591 ! 595 592 !-- Transpose array 596 CALL cpu_log( log_point_s(32), 'mpi_alltoall', 'start' )593 CALL cpu_log( log_point_s(32), 'mpi_alltoall', 'start', cpu_log_nowait ) 597 594 IF ( collective_wait ) CALL MPI_BARRIER( comm2d, ierr ) 598 595 !$acc update host( f_inv ) … … 679 676 USE cpulog 680 677 USE indices 681 USE interfaces682 678 USE pegrid 683 679 USE transpose_indices … … 715 711 ! 716 712 !-- Transpose array 717 CALL cpu_log( log_point_s(32), 'mpi_alltoall', 'start' )713 CALL cpu_log( log_point_s(32), 'mpi_alltoall', 'start', cpu_log_nowait ) 718 714 IF ( collective_wait ) CALL MPI_BARRIER( comm2d, ierr ) 719 715 !$acc update host( f_inv ) … … 800 796 USE cpulog 801 797 USE indices 802 USE interfaces803 798 USE pegrid 804 799 USE transpose_indices … … 841 836 ! 842 837 !-- Transpose array 843 CALL cpu_log( log_point_s(32), 'mpi_alltoall', 'start' )838 CALL cpu_log( log_point_s(32), 'mpi_alltoall', 'start', cpu_log_nowait ) 844 839 IF ( collective_wait ) CALL MPI_BARRIER( comm2d, ierr ) 845 840 CALL MPI_ALLTOALL( work(nxl_z,1,nys_z,0), sendrecvcount_yz, MPI_REAL, & … … 885 880 USE cpulog 886 881 USE indices 887 USE interfaces888 882 USE pegrid 889 883 USE transpose_indices -
palm/trunk/SOURCE/user_actions.f90
r1310 r1318 19 19 ! 20 20 ! Current revisions: 21 ! ----------------- 21 ! ------------------ 22 ! module interfaces removed 22 23 ! 23 24 ! Former revisions: … … 64 65 USE cpulog 65 66 USE indices 66 USE interfaces67 67 USE pegrid 68 68 USE user -
palm/trunk/SOURCE/write_3d_binary.f90
r1310 r1318 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! module interfaces removed 23 23 ! 24 24 ! Former revisions: … … 100 100 USE cpulog 101 101 USE indices 102 USE interfaces103 102 USE particle_attributes 104 103 USE pegrid
Note: See TracChangeset
for help on using the changeset viewer.