関連情報
ナビゲーション:Fortran 2003入門   前へ   上へ   次へ

8.21 ASSOCIATE構文

ASSOCIATE構文はブロックの実行中、“結合名”と指定された変数もしくは値の間に一時的な結合を設定します。 構文は次のとおりです。

ASSOCIATE ( association [ , association ]... )
block
END ASSOCIATE

ここにblock は実行可能文と構文の列で、association は次のうちのいずれかです。

name => expression
name => variable
name

最後のものは‘name => name’の短縮形です。 それぞれの“associate name”の有効範囲はASSOCIATE構文の block です。 結合名は割付けやポインタであってはなりませんが、その他の点ではvariable もしくはexpression と同じ属性を持ちます(variable もしくは expression がポインタの場合にはTARGET属性を持ちます)。 それが式と結合された場合には、その式はASSOCIATE文の実行で評価されその値はblock の実行において変更されません — この場合、結合名は 代入の左辺や該当する値を変更するような文脈で指定されてはなりません。 変数と結合される場合には結合名を変数として扱うことが可能です。

結合名の型は結合されている式や変数のものとなります。
例:

ASSOCIATE(zoom=>NINT(SQRT(a+b)), alt=>state%mapval(:,i)%altitude)
  alt%x = alt%x*zoom
  alt%y = alt%y*zoom
END ASSOCIATE
この例でALTは変数と結合されているので変更可能ですが、ZOOMは変更できません。 ZOOMの式はINTEGER型であるのでZOOMもまたINTEGER型となります。

Results matter. Trust NAG.
Privacy Policy | Trademarks