PROGRAM ODE
  
  IMPLICIT NONE
  INTEGER(8),PARAMETER :: N=10
  INTEGER(8) :: I
  REAL(8) :: T,H,X

  H=1.0_8/N ! T方向の刻み幅の設定(「_8」 は, 倍精度であることを明示している).
  X=0.5_8 
  T=0  
  DO I=0,N-1
     X=X+H*F(X,T) ! オイラー法の例
     T=T+H
     PRINT*,T,X,T**3+1/(1+EXP(-T)),X-(T**3+1/(1+EXP(-T)))
     ! T, X, および, 真値, 誤差, の値を表示する
  END DO
  
CONTAINS ! 以下の関数副プログラムを内部関数とする
  !----------------    
  FUNCTION F(X,T) ! 関数副プログラムの定義
    REAL(8) :: F
    REAL(8) :: T,X    
    F=3*T**2-T**3-T**6+(2*T**3+1)*X-X**2
  END FUNCTION F
  !----------------
END PROGRAM ODE
