« [R]数値型ベクトルの宣言と初期化 | トップページ | [R]ベクトルから時系列オブジェクトを作る »

2021年1月 9日 (土)

[Fortran]サブルーチンの引数にサブルーチンを指定する

external文を使用すると、サブルーチンの引数に変数や配列以外に、サブルーチンを指定することもできる。以下はWindowsのgfortranで実行した例。説明を簡単にするために、簡略化して記述しているので注意。

メインルーチンで、サブルーチンsub1を呼び出しているが、そのsub1を呼び出し時に、引数にsub2を指定し、sub1ではその指定されたsub2をさらに呼び出している。メインルーチンで、呼び出される側で呼び出すサブルーチンをexternal文で指定しておく必要がある。

external sub2
call sub1(sub2, 10)
end

subroutine sub1(sname, n)
integer n
write(*, '(a,1x,i3)') 'A', n + 1
call sname(n + 2)
write(*, '(a,1x,i3)') 'C', n + 3
end subroutine

subroutine sub2(n)
integer n
write(*, '(a,1x,i3)') 'B', n
end subroutine

実行結果

>a.exe
A 11
B 12
C 13

« [R]数値型ベクトルの宣言と初期化 | トップページ | [R]ベクトルから時系列オブジェクトを作る »

Fortran」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« [R]数値型ベクトルの宣言と初期化 | トップページ | [R]ベクトルから時系列オブジェクトを作る »

無料ブログはココログ

■■

■■■