前のページ

次のページ


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

オブジェクト指向構成

2000年11月26日 豊田英司


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

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つのサブルーチンが提供するのであるといっています。上の例をコンパイルすると、単に Open と書いてあるところでコンパイラが引数リストに合う GTVarOpen を選択してくれるのです。GTVarOpen については別に書いたのでそちらを見てくださいね。

Fortran 90 言語では Open のような interface 文に書かれている名前を総称名、GTVarOpen などのような本当の名前を個別名といいます。引数の型の違うサブルーチンは同じ総称名を持つことができます。同様に、引数の型の違う関数は同じ総称名を持つことができます。gtool4/Fortran 90 ではこの総称名というメカニズムを使って多数のサブルーチンや引数を整理しています。

構造型のリスト

ライブラリのユーザが目にする可能性のある構造型は以下のとおりです。

型名 内容
gtgraph 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 座標軸
gtdata GT_VARIABLE 変数 (ユーザ向けのインターフェイス、現状では AN_VARIABLE しか包含していないが、拡張される予定)
AN_VARIABLE netCDF 変数
GR_VARIABLE GrADS 格子点形式の変数 (サポート予定)
dc-isovst STRING_LIST 可変長の文字列の可変長のリスト
VARYING_STRING 可変長の文字列

総称名のリスト

総称名 関数結果の型
空欄は
サブルーチン
機能
Attr_Next   変数属性の列挙
Attr_Rewind   変数属性列挙の初期化
Attr_True logical 変数属性を論理型として読み取り
Bind   オブジェクト(第二引数)をオブジェクト(第一引数)の一部にする
Clear   初期化
Close   Open したものの終了処理
Del   変数の削除 (実装予定)
Del_Attr   変数属性の削除
Get, Get_Line   入力、第1引数から第2引数へ
Get_Attr   変数属性の読み取り
Inquire   変数または属性の外部型の問い合わせ
Name VARYING_STRING ファイル名を含まない変数名
Open   初期化、Close をしなければならない
Option   オブジェクトに何らかのメッセージを伝える
Put_Attr   変数属性の書き出し
Put, Put_Line   出力、第2引数から第1引数へ
Type VARYING_STRING オブジェクトとしての変数の種別
URL VARYING_STRING Open に使える変数名

前のページ

次のページ