DCPAM Reference Manual

GFD Dennou Club

平成 17 年 2 月 18 日

目次

1 Module nmlfile 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 and acquire NAMELIST . . . . . . 3 1.8.2 Open NAMELIST file, and Return Device Number . 3 1.8.3 Close NAMELIST file . . . . . . . . . . . . . . . . . . 4 1.8.4 Return NAMELIST file name . . . . . . . . . . . . . 4 1.8.5 Terminate module . . . . . . . . . . . . . . . . . . . . 4

1 Module nmlfile mod

• Developers: Morikawa Yasuhiro

• Version: $Id: nmlfile.f90,v 1.9 2005/01/19 08:52:37 morikawa Exp $

• Tag Name: $Name: $

• Change History:

1.1 Overview

This module support to input NAMELIST.

NAMELIST を取得するための支援モジュールである。ファイルから NAMELIST を取得する場合に便利なサブルーチンを用意している。 NAMELIST を取得するモジュールおよびプログラムは、原則的に全てこのモジュールを呼ぶ。

1.2 Error Handling

1.3 Known Bugs

1.4 Note

1.5 Future Plans

現在、あるプログラムで読み込む事が可能な NAMELIST ファイルは、メインプログラムで nmlfile init(nml) と呼んだ際の nml というファイル名に固定されてしまう。実行プログラムで引数としてファイル名を取得したり、標準入力からファイル名を取得するなどして、再コンパイル無しに NAMELIST ファイルを変更できると良いかもしれない。

1.6 Dependency

use type_mod,   only : TOKEN, INTKIND, STRING

1.7 Public Interface

private
public :: nmlfile_init, nmlfile_end    ! subroutines
public :: nmlfile_open, nmlfile_close  ! subroutines
public :: nmlfile                      ! functions

1.8 Procedure Interface

1.8.1 Initialize module and acquire NAMELIST

nmlfile mod モジュールの初期化ルーチン。引数 nml に渡された文字列を NAMELIST ファイル名として格納し、そのファイルを nmlfile open で open、 nmlfile close で close する。

メインプログラムにおいて、他のモジュールの初期化ルーチンよりも先に呼ばれる事が想定されており、その際に引数 nml に渡された NAMELIST ファイル名を以降 (正確には nmlfile end が呼ばれるまで)、他のモジュールでも利用する事となる。

もしも、メインプログラムにおいて呼ばなかった場合や引数無しで呼ばれた場合、または引数に空白を与えた場合は、デフォルトの NAMELIST ファイル nmlfile.nml が読み込まれる。

subroutine nmlfile_init(nml)

Dependency

use type_mod,  only: STRING, TOKEN, INTKIND
use dc_trace,  only: BeginSub, EndSub, DbgMessage
use dc_message,only: MessageNotify

Input

character(*), intent(in), optional :: nml  ! NAMELIST file name

1.8.2 Open NAMELIST file, and Return Device Number

nmlfile mod に格納している NAMELIST ファイルを「適当な」装置番号で Open し、その装置番号を nmlunit として返し、 readable に .true. を返す。もしも Open が失敗した、またはファイルが読み取り不可能な場合には nmlunit に -1 を、 readable に .false. を返す。

なお、以前にこのプログラムにて NAMELIST ファイルが Open されている場合、既に Open されている装置番号を自動的に閉じる。

subroutine nmlfile_open(nmlunit, readable)

Dependency

use type_mod,  only: STRING, TOKEN, INTKIND
use dc_trace,  only: BeginSub, EndSub, DbgMessage
use dc_string, only: CPrintf
use dc_message,only: MessageNotify

Output

integer(INTKIND), intent(out):: nmlunit  ! Device Number for nml file
logical         , intent(out):: readable ! Readable Flag

1.8.3 Close NAMELIST file

nmlfile open で開いたファイルを Close する。 nmlfile open が呼ばれていない場合には何もせずに終了する。

subroutine nmlfile_close()

Dependency

use type_mod,  only: STRING, TOKEN, INTKIND
use dc_trace,  only: BeginSub, EndSub, DbgMessage
use dc_string, only: CPrintf
use dc_message,only: MessageNotify

1.8.4 Return NAMELIST file name

character(TOKEN) function nmlfile() result(result)

Dependency

use type_mod,  only: STRING, TOKEN, INTKIND
use dc_trace,  only: BeginSub, EndSub, DbgMessage
use dc_string, only: CPrintf
use dc_message,only: MessageNotify

1.8.5 Terminate module

nmlfile init で設定された値を破棄し、読み込む NAMELIST ファイルの名前を nmlfile.nml に戻す。

subroutine nmlfile_end()

Dependency

use type_mod,  only: STRING
use dc_trace,  only: BeginSub, EndSub, DbgMessage