program calc
  !
  ! integral モジュールにより台形公式を用いた数値積分を行う
  ! 主プログラムです. 
  !
  use integral, only: trapezoid
  integer :: ios
  real    :: a ! 積分区間の下限
  real    :: b ! 積分区間の上限
  integer :: n ! 積分区間の分割数
  namelist /nml/ a, b, n
               !
               ! 積分区間に関して入力を行うための NAMELIST 変数群名です. 
               !
  write(*,*) ' Input interval (a,b) and division number (n) like'
  write(*,*) '   "&nml a=0, b=10, n=100 /"'
  read(*, nml, iostat = ios)
  if ( ios == 0 ) then
    s = trapezoid(a,b,n)
    write(*,*) s
  else
    write(*,*) '  Error: input data is invalid.' ; stop
  end if
end program calc
