bin_search_test Program

Uses

  • program~~bin_search_test~~UsesGraph program~bin_search_test bin_search_test module~env_module env_module program~bin_search_test->module~env_module module~tem_general_module tem_general_module program~bin_search_test->module~tem_general_module module~tem_timer_module tem_timer_module program~bin_search_test->module~tem_timer_module module~tem_dyn_array_module tem_dyn_array_module program~bin_search_test->module~tem_dyn_array_module module~aotus_module aotus_module module~env_module->module~aotus_module iso_fortran_env iso_fortran_env module~env_module->iso_fortran_env mpi mpi module~env_module->mpi module~flu_binding flu_binding module~env_module->module~flu_binding module~tem_general_module->module~env_module module~tem_general_module->module~tem_timer_module module~tem_restart_module tem_restart_module module~tem_general_module->module~tem_restart_module tem_precice_module tem_precice_module module~tem_general_module->tem_precice_module module~tem_general_module->module~aotus_module module~tem_balance_module tem_balance_module module~tem_general_module->module~tem_balance_module module~tem_abortcriteria_module tem_abortCriteria_module module~tem_general_module->module~tem_abortcriteria_module module~tem_simcontrol_module tem_simControl_module module~tem_general_module->module~tem_simcontrol_module tem_sparse_comm_module tem_sparse_comm_module module~tem_general_module->tem_sparse_comm_module module~tem_comm_env_module tem_comm_env_module module~tem_general_module->module~tem_comm_env_module module~tem_comm_module tem_comm_module module~tem_general_module->module~tem_comm_module module~tem_tools_module tem_tools_module module~tem_general_module->module~tem_tools_module module~tem_aux_module tem_aux_module module~tem_general_module->module~tem_aux_module module~tem_solvehead_module tem_solveHead_module module~tem_general_module->module~tem_solvehead_module module~tem_logging_module tem_logging_module module~tem_general_module->module~tem_logging_module module~tem_status_module tem_status_module module~tem_general_module->module~tem_status_module module~tem_timer_module->module~env_module module~tem_timer_module->module~tem_dyn_array_module module~tem_grow_array_module tem_grow_array_module module~tem_timer_module->module~tem_grow_array_module module~tem_timer_module->module~aotus_module module~tem_timer_module->module~tem_tools_module module~tem_timer_module->module~tem_aux_module module~tem_timer_module->module~tem_logging_module module~tem_timer_module->mpi module~tem_timer_module->module~flu_binding module~aot_table_ops_module aot_table_ops_module module~tem_timer_module->module~aot_table_ops_module module~tem_dyn_array_module->module~env_module

Calls

program~~bin_search_test~~CallsGraph program~bin_search_test bin_search_test proc~tem_stoptimer tem_stopTimer program~bin_search_test->proc~tem_stoptimer interface~append~13 append program~bin_search_test->interface~append~13 proc~tem_finalize tem_finalize program~bin_search_test->proc~tem_finalize proc~tem_start tem_start program~bin_search_test->proc~tem_start interface~init~12 init program~bin_search_test->interface~init~12 proc~tem_gettimerval tem_getTimerVal program~bin_search_test->proc~tem_gettimerval proc~tem_starttimer tem_startTimer program~bin_search_test->proc~tem_starttimer proc~tem_addtimer tem_addTimer program~bin_search_test->proc~tem_addtimer mpi_wtime mpi_wtime proc~tem_stoptimer->mpi_wtime proc~append_da_label append_da_label interface~append~13->proc~append_da_label proc~append_da_veclabel append_da_veclabel interface~append~13->proc~append_da_veclabel proc~tem_finalize->proc~tem_gettimerval proc~fin_env fin_env proc~tem_finalize->proc~fin_env proc~tem_timer_dump_glob tem_timer_dump_glob proc~tem_finalize->proc~tem_timer_dump_glob proc~tem_gettimername tem_getTimerName proc~tem_finalize->proc~tem_gettimername proc~tem_status_run_terminate tem_status_run_terminate proc~tem_finalize->proc~tem_status_run_terminate proc~tem_abort tem_abort proc~tem_finalize->proc~tem_abort proc~print_self_status print_self_status proc~tem_finalize->proc~print_self_status proc~tem_start->proc~tem_starttimer proc~tem_start->proc~tem_addtimer proc~tem_init_solvehead tem_init_solveHead proc~tem_start->proc~tem_init_solvehead proc~tem_comm_env_init tem_comm_env_init proc~tem_start->proc~tem_comm_env_init proc~tem_simcontrol_start tem_simControl_start proc~tem_start->proc~tem_simcontrol_start proc~init_env init_env proc~tem_start->proc~init_env proc~init_da_label init_da_label interface~init~12->proc~init_da_label proc~tem_gettimerval->proc~tem_stoptimer proc~tem_starttimer->mpi_wtime proc~tem_addtimer->interface~append~13 proc~tem_appendtimers tem_appendTimers proc~tem_addtimer->proc~tem_appendtimers

Contents

Source Code


Variables

Type AttributesNameInitial
integer, parameter:: nVals =1000000
integer :: long_timing
integer :: iVal
integer :: pos(nVals)
type(dyn_longarray_type) :: longArray
type(tem_labeledtimer_type) :: timer
type(tem_general_type) :: general
real(kind=rk) :: timerVal

Source Code

program bin_search_test
  use env_module, only: long_k, rk
  use tem_timer_module, only: tem_addTimer, tem_startTimer, tem_stopTimer,     &
    &                         tem_labeledtimer_type, tem_getTimerVal
  use tem_dyn_array_module, only: dyn_longArray_type, init, append,            &
    &                             PositionOfVal
  use tem_general_module,    only: tem_general_type, tem_start, tem_finalize

  !mpi!nprocs = 1

  implicit none

  integer, parameter :: nVals = 1000000

  integer :: long_timing
  integer :: iVal
  integer :: pos(nVals)
  type(dyn_longArray_type) :: longArray
  type(tem_labeledtimer_type) :: timer
  type(tem_general_type) :: general
  real(kind=rk) :: timerVal

  write(*,*) 'Running binary search test...'
  write(*,*) 'on ', nVals, ' Values'

  ! Init the Treelm environment
  call tem_start('TREELM unit test', 'utest', general)

  call tem_addTimer( me          = timer,        &
    &                timerHandle = long_timing,  &
    &                timerName   = 'long_timing' )

  call init(me = longArray, length = nVals)

  call tem_startTimer( timer%timedat, long_timing )
  do iVal=1,nVals
    call append(me = longArray, val = int(iVal, kind=long_k), pos = pos(iVal))
  end do
  call tem_stopTimer( timer%timedat, long_timing )
  timerVal = tem_getTimerVal(timer%timedat, long_timing)
  write(*,'(a,f15.4,a)') ' Run-time long_timing:', timerVal, ' s'

  call tem_finalize(general)

  ! access an element from the pos array, to stop compiler from optimizing the
  ! loop away:
  write(*,*) 'last Value has position:', pos(nVals)

  write(*,*) 'PASSED'

end program bin_search_test