モジュール副プログラムの使い方をマスターすれば、再利用可能な汎用性の高いプログラムを作成することができる。
参考例としてファイルの入出力を行うためのプログラムを示す。
program main !主プログラム implicit none integer :: f1=11, f2=12, i, j, k open(f1, file = 'data1.dat') open(f2, file = 'data2.dat') call read_file(f1, i) !外部サブルーチンの呼び出し call read_file(f1, j) !同上 call read_file(f1, k) !同上 ! ... 処理演算 end program main subroutine read_file(fno,n) !外部サブルーチン implicit none integer fno, n read(fno, *) n write(*,*) n if ( n< 0 ) then write(*,*) 'error negative value' stop endif end subroutine read_file
何度も同じ処理を繰り返す場合には、subroutineとして定義し利用する。
モジュールの中に書かれたサブルーチンと関数
モジュールと主プログラムは独立したプログラム単位である。このモジュールの中に含まれるサブルーチンや関数を、モジュール副プログラムという。
独立したプログラム
|
独立したプログラム
list3_1.f90の例のように主プログラムとは別に書かれた副プログラム
簡単に言えば、モジュール副プログラムをモジュールの外に出したものです。このサブルーチンや関数は、それぞれが独立したプログラム単位となる。
独立したプログラム
独立したプログラム
|
独立したプログラム
主プログラムの内部および外副プログラムの内部にかかれたもの。