XL Fortran for AIX V8.1.1

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

+---------------------------------Fortran 95---------------------------------+

FORALL (構造体)

目的

FORALL (構造体) ステートメントは、 FORALL 構造体の最初のステートメントです。

構文



>>-+----------------------------+--FORALL--+---------------+---><
   '-FORALL_construct_name-- : -'          '-forall_header-'
 
 

forall_header



>>-(--forall_triplet_spec_list--+---------------------+--)-----><
                                '-,--scalar_mask_expr-'
 
 

forall_triplet_spec



>>-index_name-- = --subscript-- : --subscript------------------->
 
>--+-------------+---------------------------------------------><
   '- : --stride-'
 
 

scalar_mask_expr
スカラー論理式です。

subscript、stride
両方ともスカラー整数式です。

規則

forall_header のマスク式で参照されるプロシージャーはすべて、(定義済みの操作または割り当てによって参照されるものを含む) 純粋でなければなりません。

index_name は、スカラー整数の変数でなければなりません。 index_name の有効範囲は、FORALL 構造体の全体です。

forall_triplet_spec_list の中の subscript および stride には、forall_triplet_spec_list の中の index_name への参照を含めることはできません。 forall_header の中の式の評価は、forall_header の中の他の式の評価に影響を与えてはなりません。

forall_triplet_spec が次のとおりであるとします。

     index1 = s1:s2:s3

指標の最大値は、次のようにして判別されます。

     max = INT((s2-s1+s3)/s3)

ストライド (上記の s3) が指定されない場合、値 1 が想定されます。どの指標でも max <= 0 の場合、 forall_assignment は実行されません。たとえば、次のようになります。

     index1 = 2:10:3    !  The index values are 2,5,8.
                        !  max = floor(((10-2)/3)+1) = 3.
 
     index2 = 6:2:-1    !  The index values are 6,5,4,3,2.
     index2 = 6:2       !  No index values.

マスク式が省略されると、.TRUE. の値が想定されます。

POSITIVE: FORALL (X=1:100,A(X)>0)
  I(X)=I(X)+J(X)
  J(X)=J(X)-I(X+1)
END FORALL POSITIVE

関連情報

+------------------------------Fortran 95 の終り------------------------------+


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