PROGRAM exponential_decay ! t02.f90 -- ! solve the differential equation dx/dt = - (lambda) x IMPLICIT NONE ! 物理的な変数 REAL :: lambda = 1.0 REAL :: x = 1.0 REAL :: t = 0.0 REAL :: dxdt REAL :: timespan = 10.0 ! 計算する最大時間 ! 計算上の変数 INTEGER, PARAMETER :: n = 10000 ! ステップ数 INTEGER :: i ! DO ループカウンタ REAL :: dt ! 時間ステップ ! ファイルオープン OPEN (UNIT = 15, FILE = "decay.dat", STATUS = "REPLACE") 110 FORMAT(1X, 2F10.5) ! 時間ステップの決定 dt = timespan / real(n) ! 主たる計算ループ DO i = 1, n dxdt = - lambda * x x = x + dxdt * dt t = t + dt WRITE (UNIT = 15, FMT = 110) t , x END DO ! 終了処理 CLOSE (UNIT = 15) END PROGRAM exponential_decay