SCALE-RM
Data Types | Functions/Subroutines
scale_prof Module Reference

module profiler More...

Functions/Subroutines

subroutine, public prof_setup
 
subroutine, public prof_setprefx (prefxname)
 
subroutine, public prof_rapstart (rapname_base, level, disable_barrier)
 Start raptime. More...
 
subroutine, public prof_rapend (rapname_base, level, disable_barrier)
 Save raptime. More...
 
subroutine, public prof_rapreport
 Report raptime. More...
 

Detailed Description

module profiler

Description
Time counter & FLOP counter(PAPI) toolbox
Author
Team SCALE
NAMELIST
  • PARAM_PROF
    nametypedefault valuecomment
    PROF_RAP_LEVEL integer 2
    PROF_MPI_BARRIER logical .false.

History Output
No history output

Function/Subroutine Documentation

◆ prof_setup()

subroutine, public scale_prof::prof_setup

Definition at line 105 of file scale_prof.F90.

105  use scale_prc, only: &
106  prc_abort
107  implicit none
108 
109  namelist / param_prof / &
110  prof_rap_level, &
111  prof_mpi_barrier
112 
113  integer :: ierr
114 
115  log_newline
116  log_info("PROF_setup",*) 'Setup'
117 
118  !--- read namelist
119  rewind(io_fid_conf)
120  read(io_fid_conf,nml=param_prof,iostat=ierr)
121  if( ierr < 0 ) then !--- missing
122  log_info("PROF_setup",*) 'Not found namelist. Default used.'
123  elseif( ierr > 0 ) then !--- fatal error
124  log_error("PROF_setup",*) 'Not appropriate names in namelist PARAM_PROF. Check!'
125  call prc_abort
126  endif
127  log_nml(param_prof)
128 
129  log_newline
130  log_info("PROF_setup",*) 'Rap output level = ', prof_rap_level
131  log_info("PROF_setup",*) 'Add MPI_barrier in every rap? = ', prof_mpi_barrier
132 
133  prof_prefix = ''
134 
135  return

References scale_io::io_fid_conf, and scale_prc::prc_abort().

Referenced by mod_rm_driver::rm_driver(), mod_rm_prep::rm_prep(), and scale::scale_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ prof_setprefx()

subroutine, public scale_prof::prof_setprefx ( character(len=*), intent(in)  prefxname)
Parameters
[in]prefxnameprefix

Definition at line 141 of file scale_prof.F90.

141  implicit none
142 
143  character(len=*), intent(in) :: prefxname
144 
145  !---------------------------------------------------------------------------
146 
147  if ( prefxname == '' ) then !--- no prefix
148  prof_prefix = ''
149  else
150  prof_prefix = trim(prefxname)//'_'
151  endif
152 
153  return

Referenced by mod_rm_driver::rm_driver(), and mod_rm_prep::rm_prep().

Here is the caller graph for this function:

◆ prof_rapstart()

subroutine, public scale_prof::prof_rapstart ( character(len=*), intent(in)  rapname_base,
integer, intent(in), optional  level,
logical, intent(in), optional  disable_barrier 
)

Start raptime.

Parameters
[in]rapname_basename of item
[in]levellevel of item
[in]disable_barrierdisable barrier if .true.

Definition at line 159 of file scale_prof.F90.

159  use scale_prc, only: &
160  prc_mpibarrier, &
162  implicit none
163 
164  character(len=*), intent(in) :: rapname_base
165  integer, intent(in), optional :: level
166  logical, intent(in), optional :: disable_barrier
167 
168  character(len=H_SHORT) :: rapname
169 
170  integer :: id
171  integer :: level_
172  integer :: tn
173  logical :: disable_barrier_
174  !$ integer :: omp_get_thread_num
175  !---------------------------------------------------------------------------
176 
177  tn = 0
178  !$ tn = omp_get_thread_num()
179  if ( tn > 0 ) return
180 
181  if ( present(level) ) then
182  level_ = level
183  else
184  level_ = prof_default_rap_level
185  endif
186 
187  if ( present(disable_barrier) ) then
188  disable_barrier_ = disable_barrier
189  else
190  disable_barrier_ = .false.
191  endif
192 
193  if( level_ > prof_rap_level ) return
194 
195  rapname = trim(prof_prefix)//trim(rapname_base)
196 
197  id = get_rapid( rapname, level_ )
198 
199  if ( ( .not. disable_barrier_ ) .and. prof_mpi_barrier ) call prc_mpibarrier
200 
201  prof_raptstr(id) = prc_mpitime()
202  prof_rapnstr(id) = prof_rapnstr(id) + 1
203 
204  !LOG_INFO("PROF_rapstart",'(1x,A,I8)') rapname, PROF_rapnstr(id)
205  !call flush(IO_FID_LOG)
206 
207 #ifdef FAPP
208  call fapp_start( trim(prof_grpname(get_grpid(rapname))), id, level_ )
209 #endif
210 
211  return

References scale_prc::prc_mpibarrier(), and scale_prc::prc_mpitime().

Referenced by mod_atmos_driver::atmos_driver_calc_tendency(), mod_atmos_driver::atmos_driver_calc_tendency_from_sflux(), mod_atmos_driver::atmos_driver_setup(), mod_atmos_driver::atmos_driver_update(), scale_atmos_dyn::atmos_dyn(), scale_atmos_dyn_common::atmos_dyn_divergence(), scale_atmos_dyn_fvm_numfilter::atmos_dyn_fvm_apply_numfilter(), scale_atmos_dyn_fvm_numfilter::atmos_dyn_fvm_numfilter_flux(), scale_atmos_dyn_fvm_numfilter::atmos_dyn_fvm_numfilter_flux_q(), scale_atmos_dyn_tinteg_large_rk3::atmos_dyn_tinteg_large_rk3(), scale_atmos_dyn_tinteg_short_rk11s8o::atmos_dyn_tinteg_short_rk11s8o(), scale_atmos_dyn_tinteg_short_rk3::atmos_dyn_tinteg_short_rk3(), scale_atmos_dyn_tinteg_short_rk4::atmos_dyn_tinteg_short_rk4(), scale_atmos_dyn_tinteg_short_rk7s6o::atmos_dyn_tinteg_short_rk7s6o(), scale_atmos_dyn_tstep_large_fvm_heve::atmos_dyn_tstep_large_fvm_heve(), scale_atmos_phy_ae_kajino13::atmos_phy_ae_kajino13_negative_fixer(), scale_atmos_phy_cp_kf::atmos_phy_cp_kf_tendency(), scale_atmos_phy_lt_sato2019::atmos_phy_lt_electric_field(), scale_atmos_phy_lt_sato2019::atmos_phy_lt_neutralization_f2013(), scale_atmos_phy_lt_sato2019::atmos_phy_lt_neutralization_mg2001(), mod_atmos_phy_mp_driver::atmos_phy_mp_driver_calc_tendency(), scale_atmos_phy_mp_kessler::atmos_phy_mp_kessler_adjustment(), scale_atmos_phy_mp_common::atmos_phy_mp_negative_fixer(), scale_atmos_phy_mp_common::atmos_phy_mp_saturation_adjustment_3d(), scale_atmos_phy_mp_suzuki10::atmos_phy_mp_suzuki10_crg_qtrc2qhyd(), scale_atmos_phy_mp_suzuki10::atmos_phy_mp_suzuki10_tendency(), scale_atmos_phy_mp_tomita08::atmos_phy_mp_tomita08_adjustment(), scale_atmos_phy_rd_mstrnx::atmos_phy_rd_mstrnx_flux(), mod_atmos_driver::atmos_surface_get(), mod_atmos_driver::atmos_surface_set(), mod_atmos_vars::atmos_vars_history(), mod_atmos_vars::atmos_vars_restart_check(), scale_debug::check(), scale_comm_cartesc::comm_bcast_1d_dp(), scale_comm_cartesc::comm_bcast_1d_sp(), scale_comm_cartesc::comm_bcast_2d_dp(), scale_comm_cartesc::comm_bcast_2d_sp(), scale_comm_cartesc::comm_bcast_3d_dp(), scale_comm_cartesc::comm_bcast_3d_sp(), scale_comm_cartesc::comm_bcast_4d_dp(), scale_comm_cartesc::comm_bcast_4d_sp(), scale_comm_cartesc::comm_bcast_character(), scale_comm_cartesc::comm_bcast_int_1d(), scale_comm_cartesc::comm_bcast_int_2d(), scale_comm_cartesc::comm_bcast_int_scr(), scale_comm_cartesc::comm_bcast_logical_scr(), scale_comm_cartesc::comm_bcast_scr_dp(), scale_comm_cartesc::comm_bcast_scr_sp(), scale_comm_cartesc_nest::comm_cartesc_nest_nestdown(), scale_comm_cartesc_nest::comm_cartesc_nest_recvwait_issue(), scale_comm_cartesc_nest::comm_cartesc_nest_test(), scale_comm_icoa::comm_data_transfer_dp(), scale_comm_icoa::comm_data_transfer_nopl(), scale_comm_icoa::comm_data_transfer_sp(), scale_comm_cartesc::comm_horizontal_mean_3d(), scale_comm_icoa::comm_var_dp(), scale_comm_icoa::comm_var_sp(), scale_comm_cartesc::comm_vars8_init(), scale_comm_cartesc::comm_vars_init(), scale_file_cartesc::file_cartesc_close(), scale_file_cartesc::file_cartesc_create(), scale_file_cartesc::file_cartesc_def_axes(), scale_file_cartesc::file_cartesc_def_var(), scale_file_cartesc::file_cartesc_enddef(), scale_file_cartesc::file_cartesc_flush(), scale_file_cartesc::file_cartesc_open(), scale_file_cartesc::file_cartesc_put_globalattributes(), scale_file_cartesc::file_cartesc_read_1d(), scale_file_cartesc::file_cartesc_read_auto_2d(), scale_file_cartesc::file_cartesc_read_auto_3d(), scale_file_cartesc::file_cartesc_read_var_2d(), scale_file_cartesc::file_cartesc_read_var_3d(), scale_file_cartesc::file_cartesc_read_var_4d(), scale_file_cartesc::file_cartesc_write_axes(), scale_file_cartesc::file_cartesc_write_var_1d(), scale_file_cartesc::file_cartesc_write_var_2d(), scale_file_cartesc::file_cartesc_write_var_3d(), scale_file_cartesc::file_cartesc_write_var_3d_t(), scale_file_cartesc::file_cartesc_write_var_4d(), scale_file_history_cartesc::file_history_cartesc_truncate_3d(), scale_file_history::file_history_in_0d(), scale_file_history::file_history_in_1d(), scale_file_history::file_history_in_2d(), scale_file_history::file_history_in_3d(), scale_file_history::file_history_reg(), scale_file_history::file_history_write(), scale_interp::interp_factor2d_linear_latlon(), scale_interp::interp_factor2d_linear_xy(), scale_interp::interp_factor2d_weight(), scale_interp::interp_factor3d_linear_latlon(), scale_interp::interp_factor3d_linear_xy(), scale_interp::interp_factor3d_weight(), scale_interp::interp_interp1d(), scale_interp::interp_interp2d(), scale_interp::interp_interp3d(), mod_land_driver::land_driver_calc_tendency(), mod_land_driver::land_driver_update(), mod_land_driver::land_surface_get(), mod_land_driver::land_surface_set(), mod_land_vars::land_vars_history(), mod_mkinit::mkinit(), scale_monitor::monitor_write(), mod_ocean_driver::ocean_driver_calc_tendency(), mod_ocean_driver::ocean_driver_update(), mod_ocean_driver::ocean_surface_get(), mod_ocean_driver::ocean_surface_set(), mod_ocean_vars::ocean_vars_history(), scale_comm_cartesc::pack_3d(), mod_mkinit::read_sounding(), mod_realinput::realinput_surface(), mod_rm_driver::rm_driver(), mod_rm_prep::rm_prep(), scale::scale_init(), scale_statistics::statistics_detail_2d(), scale_statistics::statistics_detail_3d(), scale_statistics::statistics_horizontal_max_2d(), scale_statistics::statistics_horizontal_max_3d(), scale_statistics::statistics_horizontal_mean_2d(), scale_statistics::statistics_horizontal_mean_3d(), scale_statistics::statistics_horizontal_min_2d(), scale_statistics::statistics_horizontal_min_3d(), scale_statistics::statistics_total_2d(), scale_statistics::statistics_total_3d(), mod_urban_driver::urban_driver_calc_tendency(), mod_urban_driver::urban_driver_update(), mod_urban_driver::urban_surface_get(), mod_urban_driver::urban_surface_set(), mod_urban_vars::urban_vars_history(), scale_debug::valcheck_1d(), scale_debug::valcheck_2d(), and scale_debug::valcheck_3d().

Here is the call graph for this function:

◆ prof_rapend()

subroutine, public scale_prof::prof_rapend ( character(len=*), intent(in)  rapname_base,
integer, intent(in), optional  level,
logical, intent(in), optional  disable_barrier 
)

Save raptime.

Parameters
[in]rapname_basename of item
[in]levellevel of item
[in]disable_barrierdisable barrier if .true.

Definition at line 217 of file scale_prof.F90.

217  use scale_prc, only: &
218  prc_mpibarrier, &
220  implicit none
221 
222  character(len=*), intent(in) :: rapname_base
223  integer, intent(in), optional :: level
224  logical, intent(in), optional :: disable_barrier
225 
226  character(len=H_SHORT) :: rapname
227 
228  integer :: id
229  integer :: level_
230  integer :: tn
231  logical :: disable_barrier_
232 
233  !$ integer :: omp_get_thread_num
234  !---------------------------------------------------------------------------
235 
236  tn = 0
237  !$ tn = omp_get_thread_num()
238  if ( tn > 0 ) return
239 
240  if ( present(level) ) then
241  if( level > prof_rap_level ) return
242  endif
243 
244  if ( present(disable_barrier) ) then
245  disable_barrier_ = disable_barrier
246  else
247  disable_barrier_ = .false.
248  endif
249 
250  rapname = trim(prof_prefix)//trim(rapname_base)
251 
252  id = get_rapid( rapname, level_ )
253 
254  if( level_ > prof_rap_level ) return
255 
256  prof_rapttot(id) = prof_rapttot(id) + ( prc_mpitime()-prof_raptstr(id) )
257  prof_rapnend(id) = prof_rapnend(id) + 1
258 
259  if ( ( .not. disable_barrier_ ) .and. prof_mpi_barrier ) call prc_mpibarrier
260 
261 #ifdef FAPP
262  call fapp_stop( trim(prof_grpname(prof_grpid(id))), id, level_ )
263 #endif
264 
265  return

References scale_prc::prc_mpibarrier(), and scale_prc::prc_mpitime().

Referenced by mod_atmos_driver::atmos_driver_calc_tendency(), mod_atmos_driver::atmos_driver_calc_tendency_from_sflux(), mod_atmos_driver::atmos_driver_setup(), mod_atmos_driver::atmos_driver_update(), scale_atmos_dyn::atmos_dyn(), scale_atmos_dyn_common::atmos_dyn_divergence(), scale_atmos_dyn_fvm_numfilter::atmos_dyn_fvm_apply_numfilter(), scale_atmos_dyn_fvm_numfilter::atmos_dyn_fvm_numfilter_flux(), scale_atmos_dyn_fvm_numfilter::atmos_dyn_fvm_numfilter_flux_q(), scale_atmos_dyn_tinteg_large_rk3::atmos_dyn_tinteg_large_rk3(), scale_atmos_dyn_tinteg_short_rk11s8o::atmos_dyn_tinteg_short_rk11s8o(), scale_atmos_dyn_tinteg_short_rk3::atmos_dyn_tinteg_short_rk3(), scale_atmos_dyn_tinteg_short_rk4::atmos_dyn_tinteg_short_rk4(), scale_atmos_dyn_tinteg_short_rk7s6o::atmos_dyn_tinteg_short_rk7s6o(), scale_atmos_dyn_tstep_large_fvm_heve::atmos_dyn_tstep_large_fvm_heve(), scale_atmos_phy_ae_kajino13::atmos_phy_ae_kajino13_negative_fixer(), scale_atmos_phy_cp_kf::atmos_phy_cp_kf_tendency(), scale_atmos_phy_lt_sato2019::atmos_phy_lt_electric_field(), scale_atmos_phy_lt_sato2019::atmos_phy_lt_neutralization_f2013(), scale_atmos_phy_lt_sato2019::atmos_phy_lt_neutralization_mg2001(), mod_atmos_phy_mp_driver::atmos_phy_mp_driver_calc_tendency(), scale_atmos_phy_mp_kessler::atmos_phy_mp_kessler_adjustment(), scale_atmos_phy_mp_common::atmos_phy_mp_negative_fixer(), scale_atmos_phy_mp_common::atmos_phy_mp_saturation_adjustment_3d(), scale_atmos_phy_mp_suzuki10::atmos_phy_mp_suzuki10_crg_qtrc2qhyd(), scale_atmos_phy_mp_suzuki10::atmos_phy_mp_suzuki10_tendency(), scale_atmos_phy_mp_tomita08::atmos_phy_mp_tomita08_adjustment(), scale_atmos_phy_rd_mstrnx::atmos_phy_rd_mstrnx_flux(), mod_atmos_driver::atmos_surface_get(), mod_atmos_driver::atmos_surface_set(), mod_atmos_vars::atmos_vars_history(), mod_atmos_vars::atmos_vars_restart_check(), scale_debug::check(), scale_comm_cartesc::comm_bcast_1d_dp(), scale_comm_cartesc::comm_bcast_1d_sp(), scale_comm_cartesc::comm_bcast_2d_dp(), scale_comm_cartesc::comm_bcast_2d_sp(), scale_comm_cartesc::comm_bcast_3d_dp(), scale_comm_cartesc::comm_bcast_3d_sp(), scale_comm_cartesc::comm_bcast_4d_dp(), scale_comm_cartesc::comm_bcast_4d_sp(), scale_comm_cartesc::comm_bcast_character(), scale_comm_cartesc::comm_bcast_int_1d(), scale_comm_cartesc::comm_bcast_int_2d(), scale_comm_cartesc::comm_bcast_int_scr(), scale_comm_cartesc::comm_bcast_logical_scr(), scale_comm_cartesc::comm_bcast_scr_dp(), scale_comm_cartesc::comm_bcast_scr_sp(), scale_comm_cartesc_nest::comm_cartesc_nest_nestdown(), scale_comm_cartesc_nest::comm_cartesc_nest_recvwait_issue(), scale_comm_cartesc_nest::comm_cartesc_nest_test(), scale_comm_icoa::comm_data_transfer_dp(), scale_comm_icoa::comm_data_transfer_nopl(), scale_comm_icoa::comm_data_transfer_sp(), scale_comm_cartesc::comm_horizontal_mean_3d(), scale_comm_icoa::comm_var_dp(), scale_comm_icoa::comm_var_sp(), scale_comm_cartesc::comm_vars8_init(), scale_comm_cartesc::comm_vars_init(), scale_file_cartesc::file_cartesc_close(), scale_file_cartesc::file_cartesc_create(), scale_file_cartesc::file_cartesc_def_axes(), scale_file_cartesc::file_cartesc_def_var(), scale_file_cartesc::file_cartesc_enddef(), scale_file_cartesc::file_cartesc_flush(), scale_file_cartesc::file_cartesc_open(), scale_file_cartesc::file_cartesc_put_globalattributes(), scale_file_cartesc::file_cartesc_read_1d(), scale_file_cartesc::file_cartesc_read_auto_2d(), scale_file_cartesc::file_cartesc_read_auto_3d(), scale_file_cartesc::file_cartesc_read_var_2d(), scale_file_cartesc::file_cartesc_read_var_3d(), scale_file_cartesc::file_cartesc_read_var_4d(), scale_file_cartesc::file_cartesc_write_axes(), scale_file_cartesc::file_cartesc_write_var_1d(), scale_file_cartesc::file_cartesc_write_var_2d(), scale_file_cartesc::file_cartesc_write_var_3d(), scale_file_cartesc::file_cartesc_write_var_3d_t(), scale_file_cartesc::file_cartesc_write_var_4d(), scale_file_history_cartesc::file_history_cartesc_truncate_3d(), scale_file_history::file_history_in_0d(), scale_file_history::file_history_in_1d(), scale_file_history::file_history_in_2d(), scale_file_history::file_history_in_3d(), scale_file_history::file_history_reg(), scale_file_history::file_history_write(), scale_interp::interp_factor2d_linear_latlon(), scale_interp::interp_factor2d_linear_xy(), scale_interp::interp_factor2d_weight(), scale_interp::interp_factor3d_linear_latlon(), scale_interp::interp_factor3d_linear_xy(), scale_interp::interp_factor3d_weight(), scale_interp::interp_interp1d(), scale_interp::interp_interp2d(), scale_interp::interp_interp3d(), mod_land_driver::land_driver_calc_tendency(), mod_land_driver::land_driver_update(), mod_land_driver::land_surface_get(), mod_land_driver::land_surface_set(), mod_land_vars::land_vars_history(), mod_mkinit::mkinit(), scale_monitor::monitor_write(), mod_ocean_driver::ocean_driver_calc_tendency(), mod_ocean_driver::ocean_driver_update(), mod_ocean_driver::ocean_surface_get(), mod_ocean_driver::ocean_surface_set(), mod_ocean_vars::ocean_vars_history(), scale_comm_cartesc::pack_3d(), mod_mkinit::read_sounding(), mod_realinput::realinput_surface(), mod_rm_driver::rm_driver(), mod_rm_prep::rm_prep(), scale::scale_finalize(), scale_statistics::statistics_detail_2d(), scale_statistics::statistics_detail_3d(), scale_statistics::statistics_horizontal_max_2d(), scale_statistics::statistics_horizontal_max_3d(), scale_statistics::statistics_horizontal_mean_2d(), scale_statistics::statistics_horizontal_mean_3d(), scale_statistics::statistics_horizontal_min_2d(), scale_statistics::statistics_horizontal_min_3d(), scale_statistics::statistics_total_2d(), scale_statistics::statistics_total_3d(), mod_urban_driver::urban_driver_calc_tendency(), mod_urban_driver::urban_driver_update(), mod_urban_driver::urban_surface_get(), mod_urban_driver::urban_surface_set(), mod_urban_vars::urban_vars_history(), scale_debug::valcheck_1d(), scale_debug::valcheck_2d(), and scale_debug::valcheck_3d().

Here is the call graph for this function:

◆ prof_rapreport()

subroutine, public scale_prof::prof_rapreport

Report raptime.

Definition at line 271 of file scale_prof.F90.

271  use scale_prc, only: &
272  prc_mpitimestat, &
273  prc_ismaster
274  implicit none
275 
276  real(DP) :: avgvar(PROF_rapnlimit)
277  real(DP) :: maxvar(PROF_rapnlimit)
278  real(DP) :: minvar(PROF_rapnlimit)
279  integer :: maxidx(PROF_rapnlimit)
280  integer :: minidx(PROF_rapnlimit)
281 
282  integer :: id, gid
283  integer :: fid
284  !---------------------------------------------------------------------------
285 
286  do id = 1, prof_rapnmax
287  if ( prof_rapnstr(id) /= prof_rapnend(id) ) then
288  log_warn("PROF_rapreport",*) 'Mismatch Report',id,prof_rapname(id),prof_rapnstr(id),prof_rapnend(id)
289  endif
290  enddo
291 
292  log_newline
293  log_info("PROF_rapreport",'(1x,A,I2,A)') 'Computational Time Report (Rap level = ', prof_rap_level, ')'
294 
295  if ( io_log_allnode ) then ! report for each node
296 
297  do gid = 1, prof_rapnmax
298  do id = 1, prof_rapnmax
299  if ( prof_raplevel(id) <= prof_rap_level &
300  .AND. prof_grpid(id) == gid ) then
301  log_info_cont('(1x,A,I3.3,A,A,A,F10.3,A,I9)') &
302  'ID=',id,' : ',prof_rapname(id),' T=',prof_rapttot(id),' N=',prof_rapnstr(id)
303  endif
304  enddo
305  enddo
306 
307  else
308 
309  call prc_mpitimestat( avgvar(1:prof_rapnmax), &
310  maxvar(1:prof_rapnmax), &
311  minvar(1:prof_rapnmax), &
312  maxidx(1:prof_rapnmax), &
313  minidx(1:prof_rapnmax), &
314  prof_rapttot(1:prof_rapnmax) )
315 
316  fid = -1
317  if ( io_log_suppress ) then ! report to STDOUT
318  if ( prc_ismaster ) then
319  write(*,*) 'INFO [PROF_rapreport] Computational Time Report'
320  fid = io_fid_stdout ! master node
321  endif
322  else
323  if ( io_l ) fid = io_fid_log
324  endif
325 
326  do gid = 1, prof_rapnmax
327  do id = 1, prof_rapnmax
328  if ( prof_raplevel(id) <= prof_rap_level &
329  .AND. prof_grpid(id) == gid &
330  .AND. fid > 0 ) then
331  write(fid,'(6x,A,I3.3,3A,F10.3,A,F10.3,A,I5,2A,F10.3,A,I5,2A,I9)') &
332  'ID=',id,' : ',prof_rapname(id), &
333  ' T(avg)=',avgvar(id), &
334  ', T(max)=',maxvar(id),'[',maxidx(id),']', &
335  ', T(min)=',minvar(id),'[',minidx(id),']', &
336  ', N=',prof_rapnstr(id)
337  endif
338  enddo
339  enddo
340 
341  endif
342 
343  return

References scale_io::io_fid_log, scale_io::io_fid_stdout, scale_io::io_l, scale_io::io_log_allnode, scale_io::io_log_suppress, scale_prc::prc_ismaster, scale_prc::prc_mpitimestat(), and scale_prc::prc_nprocs.

Referenced by mod_rm_driver::rm_driver(), mod_rm_prep::rm_prep(), and scale::scale_finalize().

Here is the call graph for this function:
Here is the caller graph for this function:
scale_prc::prc_abort
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:342
scale_prc
module PROCESS
Definition: scale_prc.F90:11
scale_prc::prc_mpibarrier
subroutine, public prc_mpibarrier
Barrier MPI.
Definition: scale_prc.F90:831
scale_prc::prc_mpitimestat
subroutine, public prc_mpitimestat(avgvar, maxvar, minvar, maxidx, minidx, var)
Calc global statistics for timer.
Definition: scale_prc.F90:868
scale_prc::prc_mpitime
real(dp) function, public prc_mpitime()
Get MPI time.
Definition: scale_prc.F90:846