結合により異なるプログラム単位から,異なる名前を通して同じ値を参照することができます。要素は,同じ記憶位置に結合されているときに,互いに結合されているといいます。
結合には以下の 3 つの種類があります。
以下の例は,外部プログラム単位と外部手続の間の名前結合,ポインタ結合,および記憶列結合を示しています。
名前結合,ポインタ結合,および記憶列結合の例
! 有効域 1: 外部プログラム単位 REAL A, B(4) REAL, POINTER :: M(:) REAL, TARGET :: N(12) COMMON /COM/... EQUIVALENCE (A, B(1)) ! A と B(1) 間の記憶列結合 M => N ! ポインタ結合 CALL P (actual-arg,...) ... ! 有効域 2: 外部手続 SUBROUTINE P (dummy-arg,...) ! これらの引数と有効域 1 の ! 呼び出し側ルーチンの引数間の ! 名前結合と記憶列結合 COMMON /COM/... ! 有効域 1 の共通ブロック COM との ! 記憶列結合 REAL Y CALL Q (actual-arg,...) CONTAINS SUBROUTINE Q (dummy-arg,...) ! これらの引数と親手続 P ! (副プログラム Q は手続 P ! と親子結合) の呼び出し側 ! ルーチンの引数間の ! 名前結合と記憶列結合 Y = 2.0*(Y-1.0) ! 親手続 P と Y との名前結合 ...