文:プログラム単位に対して,モジュール内の公開言語要素の参照許可を提供します。
形式
USE name [, rename-list ] ...
USE name, ONLY : [, only-list ]
name
モジュール名。
rename-list
次の形式を持つ 1 つまたは複数の項目。
local-name => mod-name
local-name
モジュールを使用するプログラム単位の言語要素名。
mod-name
モジュール内の公開言語要素名。
only-list
モジュール内の公開言語要素名,または総称識別子 (総称名,ユーザー定義演算子,またはユーザー定義代入)。
only-list 中の言語要素は次の形式を取ることもできます。
[local-name =>] mod-name
規則と振る舞い
USE 文が ONLY 句なしで指定されている場合,プログラム単位は名前付きモジュール内のすべての公開言語要素を参照することができます。
USE 文が ONLY 句付きで指定されている場合,プログラム単位は ONLY 句の後に続く言語要素だけを参照することができます。
1 つの有効域中に,特定のモジュールに対する USE 文が複数存在する場合,以下の規則が適用されます。
1 つの USE 文が ONLY 句を持っていない場合,モジュール内のすべての公開言語要素が参照可能になり,すべての rename-list および only-list が 1 つの連結された rename-list として解釈されます。
すべての USE 文が ONLY 句を持っている場合,すべての only-list が 1 つの連結された only-list として解釈されます。1 つまたは複数の only-list で指定された言語要素だけが参照可能です。
1 つの有効域中で参照可能な 2 つ以上の総称インタフェースが同じ名前か同じ演算子を持っている場合,またはすべてが代入である場合,それらは 1 つの総称インタフェースとして解釈されます。それ以外の場合,複数の参照可能な言語要素が同じ名前を持てるのは,有効域中にその名前に対する引用がない場合に限られます。
USE 文によって参照可能になった言語要素の局所名は,PUBLIC または PRIVATE 以外の属性を付けて再宣言されてはなりません。局所名は変数群要素並びに入れることはできますが,COMMON または EQUIVALENCE 文に入れることはできません。
互換性
CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB
関連情報
例
以下に,USE 文の例を示します。
MODULE MOD_A INTEGER :: B, C REAL E(25,5), D(100) END MODULE MOD_A ... SUBROUTINE SUB_Y USE MOD_A, DX => D, EX => E ! 配列 D は DX に,配列 E は EX に ... ! 名前が変更されます。スカラ変数 B END SUBROUTINE SUB_Y ! と C もまたこのサブルーチンで利用 ... ! 可能です (モジュール名を使って)。 SUBROUTINE SUB_Z USE MOD_A, ONLY: B, C ! スカラ変数 B と C のみが ... ! このサブルーチンで利用可能です。 END SUBROUTINE SUB_Z ...
次の例は,共通ブロックを含んでいるモジュールを示しています。
MODULE COLORS COMMON /BLOCKA/ C, D(15) COMMON /BLOCKB/ E, F ... END MODULE COLORS ... FUNCTION HUE(A, B) USE COLORS ... END FUNCTION HUE
USE 文は,モジュール COLORS 中の共通ブロックに含まれるすべての変数を,関数 HUE から参照可能にします。
データを抽象化するために,ユーザー定義のデータ型と,この型の値に対して行われる演算を,1 つのモジュール中にパッケージ化することができます。次の例は,このようなモジュールを示しています。
MODULE CALCULATION TYPE ITEM REAL :: X, Y END TYPE ITEM INTERFACE OPERATOR (+) MODULE PROCEDURE ITEM_CALC END INTERFACE CONTAINS FUNCTION ITEM_CALC (A1, A2) TYPE(ITEM) A1, A2, ITEM_CALC ... END FUNCTION ITEM_CALC ... END MODULE CALCULATION PROGRAM TOTALS USE CALCULATION TYPE(ITEM) X, Y, Z ... X = Y + Z ... END
USE 文により,プログラム TOTALS は,型 ITEM と拡張組込み演算子 + の両方を使って計算を行えるようになります。
以下に他の例を示します。
! モジュールには元になる型宣言が含まれています。 MODULE geometry type square real side integer border end type type circle real radius integer border end type END MODULE ! プログラムは局所的利用のためモジュール型の名前を変えます。 PROGRAM test USE GEOMETRY,LSQUARE=>SQUARE,LCIRCLE=>CIRCLE ! これらの型を宣言に使用します。 type (LSQUARE) s1,s2 type (LCIRCLE) c1,c2,c3