XL Fortran for AIX V8.1.1

ランゲージ・リファレンス

+----------------------------------IBM 拡張----------------------------------+

DOUBLE COMPLEX

目的

DOUBLE COMPLEX タイプ宣言ステートメントは倍精度複素数タイプのオブジェクトと関数の長さと属性を指定します。オブジェクトには初期値を割り当てることができます。

構文



>>-DOUBLE COMPLEX--+-::--------------------+--entity_decl_list-><
                   '-,--attr_spec_list--::-'
 
 

それぞれの意味は次のとおりです。


attr_spec
ALLOCATABLE
AUTOMATIC
DIMENSION (array_spec)
EXTERNAL
INTENT (intent_spec)
INTRINSIC
OPTIONAL
PARAMETER
POINTER
PRIVATE
PROTECTED
PUBLIC
SAVE
STATIC
TARGET
VALUE
VOLATILE

attr_spec
特定の属性の規則については、その属性と同じ名前を持つステートメントを参照してください。

intent_spec
INOUT、または INOUT のいずれかです。

::
ダブル・コロン・セパレーターです。複数の属性を指定するとき、または = initialization_expr あるいは => NULL() を使用するときに必要になります。

array_spec
次元境界のリストです。

entity_decl



>>-a--+------------------+--+------------------------------+---><
      '-(--array_spec--)-'  '-+-/--initial_value_list--/-+-'
                              +-=--initialization_expr---+
                              '- => --NULL()-------------'
 
 

a
オブジェクト名または関数名です。 array_spec を関数名に指定することはできません。

initial_value
直前の名前によって指定されるエンティティーに初期値を与えます。

initialization_expr
初期化式を使用して、直前の名前によって指定されるエンティティーに初期値を与えます。

=> NULL()
ポインター・オブジェクトに初期値を与えます。

規則

派生型の定義について、以下のことが該当します。

変数に => を指定する場合、オブジェクトに POINTER 属性を指定しなければなりません。

変数に initialization_expr を指定する場合、オブジェクトに POINTER 属性を指定できません。

タイプ宣言ステートメント中のエンティティーは、エンティティーに対して指定された属性の規則に従います。詳細は対応する属性ステートメントを参照してください。

タイプ宣言ステートメントは、有効な暗黙のタイプの規則をオーバーライドします。組み込み関数のタイプを確認するために、タイプ宣言ステートメントを使用することができます。タイプ宣言ステートメントの中に組み込み関数の総称名または特定名が使用されていても、その名前は組み込み関数の特性を失うことはありません。

オブジェクトが仮引き数、割り振り可能オブジェクト、ポインター、関数結果、無名共通ブロック内のオブジェクト、整数ポインター、外部名、組み込み名、または自動オブジェクトである場合、そのオブジェクトをタイプ宣言ステートメントの中で初期化することはできません。 AUTOMATIC 属性を持っているオブジェクトも初期化することはできません。ブロック・データ・プログラム単位内の名前付き共通ブロックにある場合、またはモジュール内の名前付き共通ブロックにある場合、オブジェクトは初期化することができます。

Fortran 95 では、ポインターは初期化することができます。ポインターを初期化するには、=> NULL() を使用する方法しかありません。

インターフェース本体、あるいはサブプログラムの指定部分に宣言式がある場合、array_spec の宣言式を非定数式にすることができます。この非定数式を使用する宣言オブジェクトのうち、仮引き数またはポインティング先でないものを自動オブジェクト といいます。

1 つの属性を 1 つのタイプ宣言ステートメントの中で繰り返すことはできません。また、1 つの有効範囲単位内でエンティティーに同じ属性を明示的に複数回与えることもできません。

ステートメントが PARAMETER 属性を持つときは、initialization_expr を指定する必要があります。宣言するエンティティーが変数で、 initialization_expr または NULL() を指定した場合、変数は最初に定義されます。宣言するエンティティーが派生型のコンポーネントで、 initialization_expr または NULL() を指定した場合は、派生型にはデフォルトの初期化があります。 a は、組み込み割り当ての規則に従って、 initialization_expr によって決まる値により定義されます。エンティティーが配列である場合は、同じ有効範囲単位内のタイプ宣言ステートメントか前の仕様ステートメントで、その配列の形状を指定する必要があります。変数または変数サブオブジェクトを複数回初期化することはできません。 a が変数で、 initialization_expr=> NULL() がある場合、名前付き共通ブロックの中のオブジェクト以外は、a が保管済みオブジェクトであることを意味します。オブジェクトの初期化はオブジェクトの基本的なストレージ・クラスに影響を与える場合もあります。

entity_decl の中で指定されている array_specDIMENSION 属性の中の array_spec よりも優先します。

POINTER 属性を持たない配列関数の結果は、明示的形状配列の仕様を持つものでなければなりません。

宣言されたエンティティーが関数の場合、アクセス可能な明示インターフェースを持つことはできません。組み込み関数の場合は、この限りではありません。

事前に定数の名前として定義されている T または F がタイプ宣言ステートメントにある場合、それは省略された論理定数ではなく名前付き定数の名前になります。

SUBROUTINE SUB
  DOUBLE COMPLEX, STATIC, DIMENSION(1) :: B
END SUBROUTINE

関連情報

+--------------------------------IBM 拡張の終り-------------------------------+


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]