mus_timer_module Module

This module contains data types and routines used to measure time spend on musubi routines. author: Kannan Masilamani


Uses

  • module~~mus_timer_module~~UsesGraph module~mus_timer_module mus_timer_module module~env_module env_module module~mus_timer_module->module~env_module module~tem_timer_module tem_timer_module module~mus_timer_module->module~tem_timer_module

Used by

  • module~~mus_timer_module~~UsedByGraph module~mus_timer_module mus_timer_module module~mus_bc_general_module mus_bc_general_module module~mus_bc_general_module->module~mus_timer_module module~mus_weights_module mus_weights_module module~mus_weights_module->module~mus_timer_module module~mus_ibm_module mus_IBM_module module~mus_ibm_module->module~mus_timer_module module~mus_hvs_config_module mus_hvs_config_module module~mus_hvs_config_module->module~mus_timer_module module~mus_config_module mus_config_module module~mus_hvs_config_module->module~mus_config_module module~mus_geom_module mus_geom_module module~mus_hvs_config_module->module~mus_geom_module module~mus_construction_module mus_construction_module module~mus_construction_module->module~mus_timer_module module~mus_construction_module->module~mus_ibm_module module~mus_debug_module mus_debug_module module~mus_construction_module->module~mus_debug_module module~mus_construction_module->module~mus_geom_module program~musubi musubi program~musubi->module~mus_timer_module module~mus_control_module mus_control_module program~musubi->module~mus_control_module program~musubi->module~mus_config_module module~mus_program_module mus_program_module program~musubi->module~mus_program_module module~mus_aux_module mus_aux_module program~musubi->module~mus_aux_module program~musubi->module~mus_geom_module module~mus_control_module->module~mus_timer_module module~mus_control_module->module~mus_bc_general_module module~mus_control_module->module~mus_ibm_module module~mus_source_module mus_source_module module~mus_control_module->module~mus_source_module module~mus_control_module->module~mus_aux_module module~mus_control_module->module~mus_debug_module module~mus_control_module->module~mus_geom_module module~mus_source_module->module~mus_timer_module module~mus_config_module->module~mus_timer_module module~mus_tools_module mus_tools_module module~mus_config_module->module~mus_tools_module module~mus_config_module->module~mus_geom_module module~mus_dynloadbal_module mus_dynLoadBal_module module~mus_dynloadbal_module->module~mus_timer_module module~mus_dynloadbal_module->module~mus_bc_general_module module~mus_dynloadbal_module->module~mus_weights_module module~mus_dynloadbal_module->module~mus_ibm_module module~mus_dynloadbal_module->module~mus_construction_module module~mus_dynloadbal_module->module~mus_source_module module~mus_dynloadbal_module->module~mus_tools_module module~mus_dynloadbal_module->module~mus_geom_module module~mus_tracking_module mus_tracking_module module~mus_dynloadbal_module->module~mus_tracking_module module~mus_hvs_construction_module mus_hvs_construction_module module~mus_hvs_construction_module->module~mus_timer_module module~mus_hvs_construction_module->module~mus_construction_module module~mus_hvs_construction_module->module~mus_geom_module module~mus_program_module->module~mus_timer_module module~mus_program_module->module~mus_bc_general_module module~mus_program_module->module~mus_weights_module module~mus_program_module->module~mus_ibm_module module~mus_program_module->module~mus_construction_module module~mus_program_module->module~mus_control_module module~mus_program_module->module~mus_dynloadbal_module module~mus_program_module->module~mus_aux_module module~mus_program_module->module~mus_tools_module module~mus_program_module->module~mus_geom_module program~mus_harvesting mus_harvesting program~mus_harvesting->module~mus_timer_module program~mus_harvesting->module~mus_hvs_config_module program~mus_harvesting->module~mus_construction_module program~mus_harvesting->module~mus_hvs_construction_module program~mus_harvesting->module~mus_geom_module module~mus_hvs_aux_module mus_hvs_aux_module program~mus_harvesting->module~mus_hvs_aux_module module~mus_aux_module->module~mus_timer_module module~mus_aux_module->module~mus_ibm_module module~mus_aux_module->module~mus_source_module module~mus_aux_module->module~mus_tools_module module~mus_aux_module->module~mus_geom_module module~mus_aux_module->module~mus_tracking_module module~mus_tools_module->module~mus_timer_module module~mus_tools_module->module~mus_ibm_module module~mus_debug_module->module~mus_bc_general_module module~mus_debug_module->module~mus_geom_module module~mus_geom_module->module~mus_ibm_module module~mus_hvs_aux_module->module~mus_tools_module module~mus_hvs_aux_module->module~mus_geom_module module~mus_hvs_aux_module->module~mus_tracking_module module~mus_tracking_module->module~mus_tools_module module~mus_tracking_module->module~mus_geom_module module~mus_interpolate_verify_module mus_interpolate_verify_module module~mus_interpolate_verify_module->module~mus_config_module module~mus_geomincr_module mus_geomIncr_module module~mus_geomincr_module->module~mus_geom_module module~mus_varsys_module mus_varSys_module module~mus_varsys_module->module~mus_geom_module module~mus_mesh_adaptation_module mus_mesh_adaptation_module module~mus_mesh_adaptation_module->module~mus_geom_module module~mus_scheme_module mus_scheme_module module~mus_scheme_module->module~mus_geom_module module~mus_flow_module mus_flow_module module~mus_flow_module->module~mus_interpolate_verify_module

Contents


Variables

TypeVisibilityAttributesNameInitial
integer, public, parameter:: nStages =12
type(mus_timer_handle_type), public, save:: mus_timerHandles

Musubi timer type --------------------------------------------------


Interfaces

public interface get_boundaryTime

  • private function get_boundaryTime_total() result(time)

    Arguments

    None

    Return Value real(kind=rk)

  • private function get_boundaryTime_byID(bcID) result(time)

    Arguments

    TypeIntentOptionalAttributesName
    integer, intent(in) :: bcID

    Return Value real(kind=rk)

public interface get_computeTime

  • private function get_computeTime_total() result(time)

    Arguments

    None

    Return Value real(kind=rk)

  • private function get_computeTime_atLevel(level) result(time)

    Arguments

    TypeIntentOptionalAttributesName
    integer, intent(in) :: level

    Return Value real(kind=rk)

public interface get_computeRatio

  • private function get_computeRatio_total() result(ratio)

    Arguments

    None

    Return Value real(kind=rk)

  • private function get_computeRatio_atLevel(level) result(ratio)

    Arguments

    TypeIntentOptionalAttributesName
    integer, intent(in) :: level

    Return Value real(kind=rk)

public interface get_auxTime

  • private function get_auxTime_total() result(time)

    Arguments

    None

    Return Value real(kind=rk)

  • private function get_auxTime_atLevel(level) result(time)

    Arguments

    TypeIntentOptionalAttributesName
    integer, intent(in) :: level

    Return Value real(kind=rk)

public interface get_relaxTime

  • private function get_relaxTime_total() result(time)

    Arguments

    None

    Return Value real(kind=rk)

  • private function get_relaxTime_atLevel(level) result(time)

    Arguments

    TypeIntentOptionalAttributesName
    integer, intent(in) :: level

    Return Value real(kind=rk)

public interface get_intpFromCoarserTime

public interface get_intpFromCoarserRatio

public interface get_intpFromFinerTime

public interface get_intpFromFinerRatio

public interface get_bcBufferTime

  • private function get_bcBufferTime_total() result(time)

    Arguments

    None

    Return Value real(kind=rk)

  • private function get_bcBufferTime_atLevel(level) result(time)

    Arguments

    TypeIntentOptionalAttributesName
    integer, intent(in) :: level

    Return Value real(kind=rk)

public interface get_bcBufferRatio

  • private function get_bcBufferRatio_total() result(ratio)

    Arguments

    None

    Return Value real(kind=rk)

  • private function get_bcBufferRatio_atLevel(level) result(ratio)

    Arguments

    TypeIntentOptionalAttributesName
    integer, intent(in) :: level

    Return Value real(kind=rk)


Derived Types

type, public :: mus_timer_handle_type

Musubi timer type --------------------------------------------------

Components

TypeVisibilityAttributesNameInitial
integer, private :: mainloop

handle for the complete mainloop

integer, private :: loadMesh

handle for loading / creating the mesh and config

integer, private :: initLvlD

handle for initialising the levelDescriptor

integer, private :: wRestart

handle for writing restart

integer, private :: balance

handle for the dyn_loadBal routine

integer, private :: source

handle for source terms

integer, private :: first =0

First main handle position in treelm timer object

integer, private :: last =-1

Last main handle position in treelm timer object

integer, private, allocatable:: compute(:)

handle for advection relaxation

integer, private, allocatable:: aux(:)

handle for auxfield calculation

integer, private, allocatable:: relax(:)

handle for relax parameter update

integer, private, allocatable:: comm(:)

handle for communicate

integer, private, allocatable:: intpFromCoarser(:)

handle for interpolation and communicate

integer, private, allocatable:: intpFromFiner(:)
integer, private, allocatable:: commFromCoarser(:)
integer, private, allocatable:: commFromFiner(:)
integer, private, allocatable:: setBnd(:)

handle for setboundary

integer, private, allocatable:: bcBuffer(:)
integer, private, allocatable:: doIBM(:)

handle for immersed boundary method

integer, private :: stage(nStages)

Stage timers for multi level recursive algorithm

integer, private :: minLevel

min. level in mesh

integer, private :: maxLevel

max. level in mesh

integer, private :: nBCs

number of BCs


Functions

public function mus_get_timerHandles() result(timerHandles)

This function returns musubi modular variable mus_timerHandles to apesmate and deallocate mus_timerHandles level timers.

Arguments

None

Return Value type(mus_timer_handle_type)

public function get_communicateTime() result(time)

Arguments

None

Return Value real(kind=rk)

public function get_communicateRatio() result(ratio)

Arguments

None

Return Value real(kind=rk)

public function get_boundaryRatio() result(ratio)

Arguments

None

Return Value real(kind=rk)

public function get_intpRatio() result(ratio)

Arguments

None

Return Value real(kind=rk)

public function get_mainLoopTime() result(time)

Arguments

None

Return Value real(kind=rk)

public function get_stageTime(ii) result(time)

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ii

Return Value real(kind=rk)

public function get_stageRatio(ii) result(ratio)

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ii

Return Value real(kind=rk)

private function get_computeTime_total() result(time)

Arguments

None

Return Value real(kind=rk)

private function get_computeTime_atLevel(level) result(time)

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: level

Return Value real(kind=rk)

private function get_computeRatio_total() result(ratio)

Arguments

None

Return Value real(kind=rk)

private function get_computeRatio_atLevel(level) result(ratio)

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: level

Return Value real(kind=rk)

private function get_auxTime_total() result(time)

Arguments

None

Return Value real(kind=rk)

private function get_auxTime_atLevel(level) result(time)

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: level

Return Value real(kind=rk)

private function get_relaxTime_total() result(time)

Arguments

None

Return Value real(kind=rk)

private function get_relaxTime_atLevel(level) result(time)

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: level

Return Value real(kind=rk)

private function get_intpFromCoarserTime_total() result(time)

Arguments

None

Return Value real(kind=rk)

private function get_intpFromCoarserTime_atLevel(level) result(time)

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: level

Return Value real(kind=rk)

private function get_intpFromCoarserRatio_total() result(ratio)

Arguments

None

Return Value real(kind=rk)

private function get_intpFromCoarserRatio_atLevel(level) result(ratio)

Arguments

TypeIntentOptionalAttributesName
integer :: level

Return Value real(kind=rk)

private function get_intpFromFinerTime_total() result(time)

Arguments

None

Return Value real(kind=rk)

private function get_intpFromFinerTime_atLevel(level) result(time)

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: level

Return Value real(kind=rk)

private function get_intpFromFinerRatio_total() result(ratio)

Arguments

None

Return Value real(kind=rk)

private function get_intpFromFinerRatio_atLevel(level) result(ratio)

Arguments

TypeIntentOptionalAttributesName
integer :: level

Return Value real(kind=rk)

private function get_boundaryTime_byID(bcID) result(time)

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: bcID

Return Value real(kind=rk)

private function get_boundaryTime_total() result(time)

Arguments

None

Return Value real(kind=rk)

private function get_intpTime() result(time)

Arguments

None

Return Value real(kind=rk)

private function get_bcBufferTime_atLevel(level) result(time)

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: level

Return Value real(kind=rk)

private function get_bcBufferTime_total() result(time)

Arguments

None

Return Value real(kind=rk)

private function get_bcBufferRatio_atLevel(level) result(ratio)

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: level

Return Value real(kind=rk)

private function get_bcBufferRatio_total() result(ratio)

Arguments

None

Return Value real(kind=rk)


Subroutines

public subroutine mus_init_mainTimer()

Timers initialization routine for whatever

Arguments

None

public subroutine mus_init_levelTimer(minLevel, maxLevel)

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: minLevel
integer, intent(in) :: maxLevel

public subroutine mus_reset_levelTimer()

Arguments

None

public subroutine mus_reset_mainTimer()

Arguments

None

public subroutine mus_set_timerHandles(timerHandles)

This routine sets mus_timerHandles passed by apesmate

Arguments

TypeIntentOptionalAttributesName
type(mus_timer_handle_type), intent(in) :: timerHandles

public subroutine mus_init_bcTimer(nBCs)

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: nBCs

public subroutine mus_reset_bcTimer()

Arguments

None