前のページ

次のページ


gtool4/Fortran 90 リファレンス - ライブラリ概観

オブジェクト指向構成

2000年11月17日 豊田英司


オブジェクト指向スタイル

gtgraph, gtdata ライブラリは独自のオブジェクト指向スタイルで記述されています。

実例を示しましょう。

データアクセスをするには必ず変数を開かなくてはなりません。変数を開くというのを Fortran ではどう書くかというと、たとえば

use gtool
type(GT_VARIABLE):: var
type(VARYING_STRING):: filename
  ...
filename = "gtool.nc"
call Open(var, filename)

のようになります。ある gtool 変数というのは type(GT_VARIABLE) 型の (Fortran の) 変数であらわされます。これを Open というサブルーチンに突っ込むと、変数が開かれるわけです。ではこの Open の実体はどこにあるかというと、gtdata_generic モジュールにその手がかりが書かれています。

! 一部省略があります
interface open
    subroutine GTVarOpen(var, url, writable, err)
        type(GT_VARIABLE), intent(inout):: var
        type(VARYING_STRING), intent(in):: url
        logical, intent(in), optional:: writable
        logical, intent(out), optional:: err
    end subroutine
    subroutine GTVarOpenByDimOrd(dimvar, var, dimord, ount_compact, err)
        type(GT_VARIABLE), intent(inout):: dimvar
        type(GT_VARIABLE), intent(in):: var
        integer, intent(in):: dimord
        logical, intent(in), optional:: count_compact
        logical, intent(out), optional:: err
    end subroutine
end interface

ここで open というインターフェイスは GTVarOpen と GTVarOpenByDimOrd という2つのサブルーチンが提供するのであるといっています。上の例をコンパイルすると、コンパイラが引数リストに合う GTVarOpen を選択してくれます。GTVarOpen については別に書いたのでそちらを見てください。

実は上記の2つだけではなく、gtool4/Fortran 90 にはさまざまな型に対する数多くの Open サブルーチンが存在します。これらを総称して Open サブルーチンと呼ぶことにします。Open に限らず、総称サブルーチンは多くの場合先頭引数の型が異なっています。多くのサブルーチンは先頭引数を操作するものだと考えられるように設計されているので、GT_VARIABLE に対する Open を区別する場合は Open(GT_VARIABLE) と呼ぶことにします。

構造型のリスト

gtool4/Fortran 90 では設計上のオブジェクトを構造型で表現しています。ライブラリのユーザが目にする可能性のある構造型は以下のとおりです。

VARYING STRING
可変長の文字列 (ISO_VARYING_STRING モジュールにて定義)
STRING_LIST
可変長の文字列の可変長のリスト
GT_DEVICE
図形出力デバイス
GT_OBJECT
GT_FRAME, GT_FIGURE, GT_CONTOURS, GT_LINE, GT_AXIS, GT_VARIABLE のいずれかの構造型になりうる「もの」
GT_FRAME
枠、これは印刷時のページや画面表示時のウィンドウをあらわす
GT_FIGURE
GT_CONTOURS
等値線群
GT_LINE
線グラフ
GT_AXIS
座標軸
GT_VARIABLE
gtool 変数、これは現状では netCDF 変数にしかなれないが、いずれ多種のファイル形式に対応する予定。
AN_VARIABLE
netCDF 変数
GR_VARIABLE
GrADS 格子点形式の変数

総称名のリスト

Attr_Rewind
属性列挙の初期化
function Attr_Next
属性列挙
function Attr_Trule
属性を真偽値として評価
Clear
オブジェクトを開かれていない状態にする初期化命令
Close
オブジェクトを閉じる
Del_Attr
属性削除
Display
オブジェクトをデバイスに出力する
Get, Get_Line
入力
Get_Attr
属性入力
Load
gtool 変数からオブジェクトを読み込む
function Name
ファイル名を含まない変数名を返します。この名前は Open には使えません。
Open
開く (初期化)、開いたものは必ず閉じなければならない
Option
オブジェクトに何らかの操作をする
Put(オブジェクト1, オブジェクト2)
オブジェクト2 を オブジェクト1 の持ち物にする。オブジェクト1 を Close すると オブジェクト2 は自動的に Close されるようになる。
Put, Put_Line
ファイル、gtool 変数などに出力する
Put_Attr
属性出力
Save
オブジェクトを gtool 変数に格納
function Type
オブジェクトの種別
function Url
URL, Open に使える名前です。

前のページ

次のページ