- #1

- 16

- 0

## Homework Statement

The problem statement is to use Fortran 95 to code a forward time, centered space numerical solution to the 1-D (x-direction) Advection-Dispersion Equation:

dc/dt = u(dc/dx) + D(d2c/dx2) - kc

where c is the concentration of contaminant, u is the advecting velocity, D is the dispersion coefficient, and k is the decay rate.

I am trying to figure out why the following code is writing the solutions out in excel without including the final time step at 0.5 days and the final spatial interval at x = 20,000 meters.

## Homework Equations

Initial condition:

C(x, t=0) = 0 mg/L

C(x=0, t) = 100 mg/L

dc/dx(X=L, t) = 0

## The Attempt at a Solution

I decided not to post the whole code because I did not write the program, so it may not make complete sense. If it doesn't make sense or more coding information is needed, just let me know.

nts is the total number of time steps all the way up to 0.5 days where dt =100 sec.

ndx is the total number of spatial intervals all the way up to L = 20,000 m and dx = 200 m

do n=1,nts-1 ! change from nts-1 to nts to account for last missing time step?

tim(n)=dt*(n-1)

r=0.

do i=1,ndx

do j=1,ndx

r(i)=r(i)+d(i,j)*conc(j,n)

end do

r(i)=r(i)+q(i) ! This is the known RHS matrix elements

end do

call tridag ! This solves the banded tridiagonal matrix using the Thomas algorithm - see my class notes

end do

open(10,file='CNimplicitFTCS.xls',status='unknown')

write(10,100)(tim(n)/86400.,n=1,nts,10)

100 format('X,',2x,10000('t=',f8.4,','))

do i=1,ndx

x=dx*(i-1)

write(10,110)x,(conc(i,n),n=1,nts,10)

110 format(f10.1,',',10000(f8.4,','))

end do

stop

end program main