CALL文
copyright

green dotCALL文

CALL文は、サブルーチン副プログラムに実行を渡す。

  CALL サブルーチンの名前(x1,x2,x3,…)

green dotCALL文

CALL文は、サブルーチン副プログラムに制御を渡す場合に使用し、次のことを行う。
  1. CALL文に式の形で指定されている実引数を計算する。
  2. CALL文に指定されている実引数とサブルーチン副プログラムに定義されて いる仮引数とを対応付ける。
  3. サブルーチン副プログラムに制御を渡す。
  4. サブルーチン副プログラムに対して、CALLする側のプログラムを 主プログラムまたは、メインプログラムとよぶ。
  5. サブルーチン副プログラムと主プログラムの引数の型は同じにする必要がある。

  CALL name[([arg1[,arg2],…])]

nameサブルーチン副プログラムまたは入口点の名前である。
arg サブルーチン副プログラムに渡される実引数である。
引数は、変数名、配列要素名、定数、算術式などである。
[例]
配列a(1),…,a(10)の和をsumに求める。この処理を サブルーチン副プログラムsumaで求める。 ただし、このプログラムは、SUM関数で同様の処理ができる。
    PROGRAM main
       INTEGER,DIMENSION(10) :: a=(/3,6,7,6,5,8,9,1,0,4/)
       INTEGER :: sum
       INTEGER :: n=10
       EXTERNAL sumn               !外部サブルーチンの定義
       CALL sumn(a,n,sum)          !サブルーチンの呼出し
       WRITE(*,*) sum
    END PROGRAM main
    SUBROUTINE sumn(x,k,wa)
      INTEGER,DIMENSION(n),INTENT(IN) :: x
      INTEGER,INTENT(IN)  :: k
      INTEGER,INTENT(OUT) :: wa
       wa=0
       DO i=1,k
         wa=wa+x(i)
       END DO
    END SUBROUTINE suma
line-end