目次

基本事項

モジュール副プログラムの使い方をマスターすれば、再利用可能な汎用性の高いプログラムを作成することができる。

複数のプログラム単位から構成されるプログラム

参考例としてファイルの入出力を行うためのプログラムを示す。

list3_1.f90
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として定義し利用する。

副プログラムの種類

モジュールの中に書かれたサブルーチンと関数

モジュールと主プログラムは独立したプログラム単位である。このモジュールの中に含まれるサブルーチンや関数を、モジュール副プログラムという。

独立したプログラム

モジュール
  • 副プログラム1
  • 副プログラム2

|

独立したプログラム

主プログラム

list3_1.f90の例のように主プログラムとは別に書かれた副プログラム

簡単に言えば、モジュール副プログラムをモジュールの外に出したものです。このサブルーチンや関数は、それぞれが独立したプログラム単位となる。

独立したプログラム

外部副プログラム1

独立したプログラム

外部副プログラム2

|

独立したプログラム

主プログラム

主プログラムの内部および外副プログラムの内部にかかれたもの。