Class | gridset |
In: |
setup/gridset.f90
|
Note that Japanese and English are described in parallel.
格子点数の設定および保管を行います. スペクトル法を用いることを前提にしており, 最大波数の設定と保管も行います.
Number of grid points is set and stored. Maximum truncated wavenumber is set and stored too, because spectral method is expected to be used.
nmax : | 最大全波数 |
imax : | 経度格子点数 |
jmax : | 緯度格子点数 |
kmax : | 鉛直層数 |
———— : | ———— |
nmax : | Maximum truncated wavenumber |
imax : | Number of grid points in longitude |
jmax : | Number of grid points in latitude |
kmax : | Number of vertical level |
GridsetInit : | 格子点数と最大波数の設定 |
———— : | ———— |
GridsetInit : | Settings of number of grid points and maximum truncated wavenumber |
Subroutine : | |||
im : | integer, intent(in), optional
| ||
jm : | integer, intent(in), optional
| ||
km : | integer, intent(in), optional
|
(in) optional
格子点数の変更を行います. 主に並列化のために用いられます. このサブルーチンは演算プログラム群が呼ばれる前に 使用してください.
Grid number is changes. Mainly, this subroutine is used for parallelization. Use this subroutine before programs for calculation are called.
subroutine GridsetChange( im, jm, km ) ! (in) optional ! ! 格子点数の変更を行います. ! 主に並列化のために用いられます. ! このサブルーチンは演算プログラム群が呼ばれる前に ! 使用してください. ! ! Grid number is changes. ! Mainly, this subroutine is used for parallelization. ! Use this subroutine before programs for calculation are called. ! ! モジュール引用 ; USE statements ! ! メッセージ出力 ! Message output ! use dc_message, only: MessageNotify ! 宣言文 ; Declaration statements ! implicit none integer, intent(in), optional:: im ! 経度格子点数. ! Number of grid points in longitude integer, intent(in), optional:: jm ! 緯度格子点数. ! Number of grid points in latitude integer, intent(in), optional:: km ! 鉛直層数. ! Number of vertical level ! 実行文 ; Executable statement ! if ( .not. gridset_inited ) then call MessageNotify( 'E', module_name, 'call "GridsetInit" before "GridsetChange" is called' ) end if ! 格子点数の変更 ! Change grid number ! if ( present(im) ) imax = im if ( present(jm) ) jmax = jm if ( present(km) ) kmax = km ! 印字 ; Print ! call MessageNotify( 'M', module_name, '----- GridsetChange Messages -----' ) call MessageNotify( 'M', module_name, ' nmax = %d -> %d', i = (/ nmax_save, nmax /) ) call MessageNotify( 'M', module_name, ' imax = %d -> %d', i = (/ imax_save, imax /) ) call MessageNotify( 'M', module_name, ' jmax = %d -> %d', i = (/ jmax_save, jmax /) ) call MessageNotify( 'M', module_name, ' kmax = %d -> %d', i = (/ kmax_save, kmax /) ) call MessageNotify( 'M', module_name, '-- version = %c', c1 = trim(version) ) end subroutine GridsetChange
Subroutine : |
gridset モジュールの初期化を行います. NAMELIST#gridset_nml の読み込みはこの手続きで行われます.
"gridset" module is initialized. NAMELIST#gridset_nml is loaded in this procedure.
This procedure input/output NAMELIST#gridset_nml .
subroutine GridsetInit ! ! gridset モジュールの初期化を行います. ! NAMELIST#gridset_nml の読み込みはこの手続きで行われます. ! ! "gridset" module is initialized. ! NAMELIST#gridset_nml is loaded in this procedure. ! ! モジュール引用 ; USE statements ! ! NAMELIST ファイル入力に関するユーティリティ ! Utilities for NAMELIST file input ! use namelist_util, only: namelist_filename, NmlutilMsg ! ファイル入出力補助 ! File I/O support ! use dc_iounit, only: FileOpen ! 種別型パラメタ ! Kind type parameter ! use dc_types, only: STDOUT ! 標準出力の装置番号. Unit number of standard output ! メッセージ出力 ! Message output ! use dc_message, only: MessageNotify ! 宣言文 ; Declaration statements ! implicit none integer:: unit_nml ! NAMELIST ファイルオープン用装置番号. ! Unit number for NAMELIST file open integer:: iostat_nml ! NAMELIST 読み込み時の IOSTAT. ! IOSTAT of NAMELIST read ! NAMELIST 変数群 ! NAMELIST group name ! namelist /gridset_nml/ nmax, imax, jmax, kmax ! ! デフォルト値については初期化手続 "gridset#GridsetInit" ! のソースコードを参照のこと. ! ! Refer to source codes in the initialization procedure ! "gridset#GridsetInit" for the default values. ! ! 実行文 ; Executable statement ! if ( gridset_inited ) return call InitCheck ! デフォルト値の設定 ! Default values settings ! nmax = 10 imax = 32 jmax = 16 kmax = 5 ! NAMELIST の読み込み ! NAMELIST is input ! if ( trim(namelist_filename) /= '' ) then call FileOpen( unit_nml, namelist_filename, mode = 'r' ) ! (in) rewind( unit_nml ) read( unit_nml, nml = gridset_nml, iostat = iostat_nml ) ! (out) close( unit_nml ) call NmlutilMsg( iostat_nml, module_name ) ! (in) if ( iostat_nml == 0 ) write( STDOUT, nml = gridset_nml ) end if ! 格子点数のチェック ! Check number of grid points ! if ( nmax < 1 .or. imax < 1 .or. jmax < 1 .or. kmax < 1 ) then call MessageNotify( 'E', module_name, 'number of grid points and maximum truncated wavenumber must be more than 0. ' // 'nmax=%d, imax=%d, jmax=%d, kmax=%d' , i = (/ nmax, imax, jmax, kmax /) ) end if ! 格子点数の保存 ! Save grid number ! nmax_save = nmax imax_save = imax jmax_save = jmax kmax_save = kmax ! 印字 ; Print ! call MessageNotify( 'M', module_name, '----- Initialization Messages -----' ) call MessageNotify( 'M', module_name, ' nmax = %d', i = (/ nmax /) ) call MessageNotify( 'M', module_name, ' imax = %d', i = (/ imax /) ) call MessageNotify( 'M', module_name, ' jmax = %d', i = (/ jmax /) ) call MessageNotify( 'M', module_name, ' kmax = %d', i = (/ kmax /) ) call MessageNotify( 'M', module_name, '-- version = %c', c1 = trim(version) ) gridset_inited = .true. end subroutine GridsetInit
Variable : | |||
gridset_inited = .false. : | logical, save, public
|
Subroutine : |
依存モジュールの初期化チェック
Check initialization of dependency modules
subroutine InitCheck ! ! 依存モジュールの初期化チェック ! ! Check initialization of dependency modules ! モジュール引用 ; USE statements ! ! NAMELIST ファイル入力に関するユーティリティ ! Utilities for NAMELIST file input ! use namelist_util, only: namelist_util_inited ! メッセージ出力 ! Message output ! use dc_message, only: MessageNotify ! 実行文 ; Executable statement ! if ( .not. namelist_util_inited ) call MessageNotify( 'E', module_name, '"namelist_util" module is not initialized.' ) end subroutine InitCheck
Constant : | |||
version = ’$Name: dcpam5-20090319 $’ // ’$Id: gridset.f90,v 1.3 2008-10-09 10:15:39 morikawa Exp $’ : | character(*), parameter
|