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~tem_timer_module tem_timer_module module~mus_timer_module->module~tem_timer_module module~env_module env_module module~mus_timer_module->module~env_module

Used by

  • module~~mus_timer_module~~UsedByGraph module~mus_timer_module mus_timer_module module~mus_config_module mus_config_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_hvs_construction_module mus_hvs_construction_module module~mus_hvs_construction_module->module~mus_timer_module module~mus_weights_module mus_weights_module module~mus_weights_module->module~mus_timer_module module~mus_tools_module->module~mus_timer_module module~mus_control_module mus_control_module module~mus_control_module->module~mus_timer_module module~mus_source_module mus_source_module module~mus_control_module->module~mus_source_module module~mus_aux_module mus_aux_module module~mus_control_module->module~mus_aux_module module~mus_source_module->module~mus_timer_module module~mus_aux_module->module~mus_timer_module module~mus_aux_module->module~mus_tools_module module~mus_aux_module->module~mus_source_module module~mus_tracking_module mus_tracking_module module~mus_aux_module->module~mus_tracking_module module~mus_dynloadbal_module mus_dynLoadBal_module module~mus_dynloadbal_module->module~mus_timer_module module~mus_dynloadbal_module->module~mus_weights_module module~mus_dynloadbal_module->module~mus_tools_module module~mus_dynloadbal_module->module~mus_source_module module~mus_dynloadbal_module->module~mus_tracking_module module~mus_hvs_config_module mus_hvs_config_module module~mus_hvs_config_module->module~mus_timer_module module~mus_hvs_config_module->module~mus_config_module program~musubi musubi program~musubi->module~mus_timer_module program~musubi->module~mus_config_module program~musubi->module~mus_control_module program~musubi->module~mus_aux_module program~mus_harvesting mus_harvesting program~mus_harvesting->module~mus_timer_module program~mus_harvesting->module~mus_hvs_construction_module program~mus_harvesting->module~mus_hvs_config_module module~mus_hvs_aux_module mus_hvs_aux_module program~mus_harvesting->module~mus_hvs_aux_module module~mus_hvs_aux_module->module~mus_tools_module module~mus_hvs_aux_module->module~mus_tracking_module module~mus_tracking_module->module~mus_tools_module

Contents


Variables

Type Visibility Attributes Name Initial
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

    Type IntentOptional Attributes Name
    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

    Type IntentOptional Attributes Name
    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

    Type IntentOptional Attributes Name
    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

    Type IntentOptional Attributes Name
    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

    Type IntentOptional Attributes Name
    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

    Type IntentOptional Attributes Name
    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

    Type IntentOptional Attributes Name
    integer, intent(in) :: level

    Return Value real(kind=rk)


Derived Types

type, public ::  mus_timer_handle_type

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

Components

Type Visibility Attributes Name Initial
integer, public :: mainloop

handle for the complete mainloop

integer, public :: loadMesh

handle for loading / creating the mesh and config

integer, public :: initLvlD

handle for initialising the levelDescriptor

integer, public :: wRestart

handle for writing restart

integer, public :: balance

handle for the dyn_loadBal routine

integer, public :: source

handle for source terms

integer, public :: first = 0

First main handle position in treelm timer object

integer, public :: last = -1

Last main handle position in treelm timer object

integer, public, allocatable :: compute(:)

handle for advection relaxation

integer, public, allocatable :: aux(:)

handle for auxfield calculation

integer, public, allocatable :: relax(:)

handle for relax parameter update

integer, public, allocatable :: comm(:)

handle for communicate

integer, public, allocatable :: intpFromCoarser(:)

handle for interpolation and communicate

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

handle for setboundary

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

handle for immersed boundary method

integer, public :: stage(nStages)

Stage timers for multi level recursive algorithm

integer, public :: minLevel

min. level in mesh

integer, public :: maxLevel

max. level in mesh

integer, public :: 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

Type IntentOptional Attributes Name
integer, intent(in) :: ii

Return Value real(kind=rk)

public function get_stageRatio(ii) result(ratio)

Arguments

Type IntentOptional Attributes Name
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

Type IntentOptional Attributes Name
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

Type IntentOptional Attributes Name
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

Type IntentOptional Attributes Name
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

Type IntentOptional Attributes Name
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

Type IntentOptional Attributes Name
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

Type IntentOptional Attributes Name
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

Type IntentOptional Attributes Name
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

Type IntentOptional Attributes Name
integer :: level

Return Value real(kind=rk)

private function get_boundaryTime_byID(bcID) result(time)

Arguments

Type IntentOptional Attributes Name
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

Type IntentOptional Attributes Name
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

Type IntentOptional Attributes Name
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

Type IntentOptional Attributes Name
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

Type IntentOptional Attributes Name
type(mus_timer_handle_type), intent(in) :: timerHandles

public subroutine mus_init_bcTimer(nBCs)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nBCs

public subroutine mus_reset_bcTimer()

Arguments

None