mus_time_module Module

This module contains time definition needed for musubi



Functions

public pure function mus_time_modulo(now, reqInt) result(triggered)

Check for multilevel cycle complete by modulo of nIters by scaleFactor depends on acoustic or diffusive scaling. Acoustic scaling: scale factor = 2 Diffusive scaling: scale factor = 4

Arguments

Type IntentOptional Attributes Name
type(tem_time_type), intent(in) :: now

current simulation time

integer, intent(in) :: reqInt

Required interval, in which the update MUST occur. This is required for the musubi multilevel, where the time step should only be determined active, when the end of the largest cycle is reached.

Return Value logical


Subroutines

public subroutine mus_time_homogenize(me, dt, readRestart)

Convert itime from restart to real time

Arguments

Type IntentOptional Attributes Name
type(tem_time_type), intent(inout) :: me
real(kind=rk), intent(in) :: dt
logical, intent(in) :: readRestart

public subroutine mus_timeControl_homogenize(me, dt, reqInt)

Converts sim time to iter and vice versa depends on which one is defined in the configuration file

Arguments

Type IntentOptional Attributes Name
type(tem_timeControl_type), intent(inout) :: me

simulation time control

real(kind=rk), intent(in) :: dt

dt of maxlevel or smallest dt

integer, intent(in) :: reqInt

Required interval, in which the update MUST occur. This is required for the musubi multilevel, where the time step should only be determined active, when the end of the largest cycle is reached.