Fortran 90 Euler Scheme for Radioactive Decay

Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
1 reply · 5K views
ksx2098
Messages
1
Reaction score
0

Homework Statement



in fortran 90 write a program to using the euler scheme to solve the differential equation for decay of a radioactive substance

dx/dt = -j*x

solving the equation we get

x = e^(-j*t)

following info is given

2. Homework Equations and values

t0 = 0.0
tF = 10.0
tStep = 0.1
x(0) = 1+0i
j = 3.0

The Attempt at a Solution



Code:
PROGRAM EULER
!
INTEGER :: I,N
REAL :: t, x
REAL, PARAMETER :: t0 = 0.0, tF = 10.0, tStep = 0.1, j = 3.0
!
!Calc N
!
N = INT((tF-t0)/tStep + SPACING((tF-t0)/tStep)) + 1 ! trip count
!
!set initial values
!
t = t0
x = 0.0
!
!Calculate x with time
!
DO I + 1, N+1
      PRINT *, t, x
      x = x + tStep * f(x,t)
      t = t + tStep
ENDDO
!
END PROGRAM EULER
!
FUNCTION f(x,t)
!
REAL :: t, x
REAL, PARAMETER :: j = 3.0
!
f = EXP( -1.0 * j * t)
!
END FUNCTION f(x,t)

no errors upon compiling

my x value ends up being 2*t

i think the problem is in the DO loop
 
Physics news on Phys.org