Module dycore_in_mod

Overview

gtool4 netCDF data Input module directly called by GCM run program.

Error Handling

Known Bugs

Note

Future Plans

まだテストケースが少なく、上部モジュールと下部モジュールで切り分ける べきかも知れない部分が多く残っている。 その切り分けを将来的にはすべきである。

Dependency

use dycore_type_mod, only : STRING, DBKIND
use dycore_grid_mod, only : im, jm, km

Public Interface

private
public :: dycore_in_init, dycore_in_dims  ! subroutines
public :: dycore_in_vars, dycore_in_end   ! subroutines

Procedure Interface

Initialize module and acquire NAMELIST

モジュールを初期化し、NAMELIST から値を取得する。 NAMELIST から値が取得できないものに関しては上記のデフォルト値が 用いられる。

NAMELIST ファイルは、メインプログラムにて nmlfile_mod nmlfile_init で指定されることが想定されているが、 もしもこの初期化ルーチンより以前に指定されていなければ、 nmlfile_init のデフォルトで指定される NAMELIST ファイルを 読む。

subroutine dycore_in_init

Dependency

use dycore_type_mod, only : STRING, DBKIND, INTKIND
use nmlfile_mod, only : nmlfile_init, nmlfile_open, nmlfile_close
use axis_x_mod, only: axis_x_init
use axis_y_mod, only: axis_y_init
use axis_z_mod, only: axis_z_init
use dc_trace,  only: BeginSub, EndSub, DbgMessage
use dc_message,only: MessageNotify
use dc_string, only: toChar

NAMELIST

character(STRING) :: &

     & input_file = 'init.nc'  , &  ! 初期値ファイル

     & vlonname   = 'vlon'     , &  ! 速度経度成分の変数名
     & vlatname   = 'vlat'     , &  ! 速度緯度成分の変数名
     & vorname    = 'vor'      , &  ! 渦度の変数名
     & divname    = 'div'      , &  ! 発散の変数名
     & psname     = 'ps'       , &  ! 地表面気圧の変数名
     & tempname   = 'temp'     , &  ! 温度の変数名
     & qvapname   = 'qvap'          ! 比湿の変数名

real(DBKIND) :: input_time(2) = (/0,0/)  ! 入力データの時刻

namelist /dycore_in_nml/ &

     & input_file   , &  ! 初期値ファイル
     & input_time   , &  ! 入力データの時刻 (t-Δt, t)

     & vlonname     , &  ! 速度経度成分の変数名
     & vlatname     , &  ! 速度緯度成分の変数名
     & vorname      , &  ! 渦度の変数名
     & divname      , &  ! 発散の変数名
     & psname       , &  ! 地表面気圧の変数名
     & tempname     , &  ! 温度の変数名
     & qvapname          ! 比湿の変数名

Return Data and Information of Dimensions

axis_x_mod , axis_y_mod , axis_z_mod から座標情報を取得し、Dims に格納して返す。

subroutine dycore_in_dims(Dims)

Dependency

use dycore_type_mod, only: DYCORE_DIMS
use dycore_grid_mod, only: im, jm, km
use axis_x_mod, only: axis_x_spectral, axis_x_manual, axis_x_netcdf
use axis_y_mod, only: axis_y_spectral, axis_y_manual, axis_y_netcdf
use axis_z_mod, only: axis_z_manual, axis_z_netcdf, &
     &                axis_z_sigmahalf_manual, axis_z_sigmahalf_netcdf
use gt4_history,only: HistoryGetPointer
use dc_trace,   only: BeginSub, EndSub, DbgMessage
use dc_string,  only: toChar

Output

type(DYCORE_DIMS), intent(out):: Dims  ! 次元データ全種

Return Data and Information of Dimensions

dycore_in_init の NAMELIST dycore_in_nml の情報に従い、変数データのデータを入力して、 Vars_B および Vars に返す。

subroutine dycore_in_vars(Vars_B, Vars)

Dependency

use dycore_type_mod, only: DYCORE_VARS
use dycore_grid_mod, only: im, jm, km
use gt4_history,     only: HistoryGetPointer
use dc_trace,        only: BeginSub, EndSub, DbgMessage
use dc_string,       only: toChar

Output

type(DYCORE_VARS), intent(out):: Vars_B  ! 格子点データ全種 (t-Δt)
type(DYCORE_VARS), intent(out):: Vars    ! 格子点データ全種 (t)

Terminate module

dycore_in_init で設定された値を破棄し、 デフォルトの値に戻します。

subroutine dycore_in_end

Dependency

use dc_trace,  only: BeginSub, EndSub, DbgMessage
use dc_error,  only: StoreError, USR_ECHAR
use dc_string, only: toChar