Module dycore_time_mod

Overview

Time manage module directly called by GCM run program.

Error Handling

Known Bugs

Note

Future Plans

Dependency

use dycore_type_mod , only: STRING
use time_mod        , only: StepInterval, OutputStep  , &
     &                      CurrentLoop , CurrentTime , &
     &                      DelTime

Public Interface

private
public :: dycore_time_init, dycore_time_progress ! subroutines
public :: dycore_time_filter                     ! subroutines
public :: dycore_time_end                        ! subroutines
public :: StepInterval, OutputStep               ! variables
public :: CurrentLoop , CurrentTime              ! variables
public :: DelTime                                ! variables

Procedure Interface

Initialize module

time_mod の初期化を行なう。

subroutine dycore_time_init

Dependency

use time_mod,        only: time_init
use dycore_type_mod, only: DYCORE_VARS, DYCORE_DIMS, &
     &                     STRING, DBKIND, INTKIND
use dc_trace,        only: BeginSub, EndSub, DbgMessage

Progress Time

Vars_a 内の各種データを Vars に、 Vars_n 内の各種データを Vas_b に移す。 Vars_a 内のデータは全てゼロにクリアする。

また、 time_mod time_progress を呼ぶ事によって time_mod の CurrentTime と CurrentLoop を進める。

subroutine dycore_time_progress( Vars_b, Vars_n, Vars_a )

Dependency

use dycore_type_mod, only: DYCORE_VARS,  &
     &                     STRING, REKIND, DBKIND, INTKIND
use time_mod       , only: time_progress
use dc_trace       , only: BeginSub, EndSub, DbgMessage

In/Out

type(DYCORE_VARS), intent(inout):: Vars_b ! 格子点データ全種(t-Δt)
type(DYCORE_VARS), intent(inout):: Vars_n ! 格子点データ全種(t)
type(DYCORE_VARS), intent(inout):: Vars_a ! 格子点データ全種(t+Δt)

Time Filter

Vars_b, Vars_n, Vars_a を用い、Vars_n に時間フィルターをかける

constants_mod の TimeFilter を時間フィルターの係数として 用いる。ゼロの場合は実質的にフィルターがかからない。

constants_mod の TimeFilterStepInt から、何ステップ毎に フィルターがかかるか制御される。

subroutine dycore_time_filter( Vars_b, Vars_n, Vars_a )

Dependency

use dycore_type_mod, only: DYCORE_VARS,  &
     &                     STRING, REKIND, DBKIND, INTKIND
use constants_mod  , only: TimeFilter, TimeFilterStepInt
use dc_trace       , only: BeginSub, EndSub, DbgMessage

In/Out

type(DYCORE_VARS), intent(in)   :: Vars_b ! 格子点データ全種(t-Δt)
type(DYCORE_VARS), intent(inout):: Vars_n ! 格子点データ全種(t)
type(DYCORE_VARS), intent(in)   :: Vars_a ! 格子点データ全種(t+Δt)

Terminate module

今の所、何もしない。

subroutine dycore_time_end

Dependency

use time_mod       , only: time_end
use dycore_type_mod, only: STRING, REKIND, DBKIND, INTKIND
use dc_trace,        only: BeginSub, EndSub, DbgMessage