PROGRAM exponential_decay ! t02.f90 -- ! solve the differential equation dA/dt = Fin - A / (tau) IMPLICIT NONE ! 物理的な変数 REAL :: Fin = 0.50 REAL :: tau = 1.0 REAL :: A = 1.0 REAL :: t = 0.0 REAL :: dAdt 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 dAdt = Fin - (tau) * A A = A + dAdt * dt t = t + dt WRITE (UNIT = 15, FMT = 110) t , A END DO ! 終了処理 CLOSE (UNIT = 15) END PROGRAM exponential_decay