DCPAM Reference Manual

GFD Dennou Club

平成 17 年 2 月 18 日

目次

1 Module dycore time mod 2 1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Known Bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4 Note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.5 Future Plans . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.6 Dependency . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.7 Public Interface . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.8 Procedure Interface . . . . . . . . . . . . . . . . . . . . . . . 3

1.8.1 Initialize module . . . . . . . . . . . . . . . . . . . . . 3 1.8.2 Progress Time . . . . . . . . . . . . . . . . . . . . . . 3 1.8.3 Time Filter . . . . . . . . . . . . . . . . . . . . . . . . 3 1.8.4 Terminate module . . . . . . . . . . . . . . . . . . . . 4

1 Module dycore time mod

• Developers: Morikawa Yasuhiro

• Version: $Id: dycore time.f90,v 1.8 2005/01/12 02:31:32 morikawa Exp $

• Tag Name: $Name: $

• Change History:

1.1 Overview

Time manage module directly called by GCM run program.

1.2 Error Handling

1.3 Known Bugs

1.4 Note

1.5 Future Plans

1.6 Dependency

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

1.7 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

1.8 Procedure Interface

1.8.1 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

1.8.2 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)

1.8.3 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)

1.8.4 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