next up previous
Next: Parallel program (user-supplied code) Up: 1D heat equation Previous: 1D heat equation

Sequential program

C=======================================================================
C=======================================================================
C
C       example program heat:
C               explicitly solves the 1D diffusion equation
C
C=======================================================================
C=======================================================================

        program heat

C=======grid size
        integer NX
        parameter (NX=100)

        integer NSTEPS
        parameter (NSTEPS=100)

C=======grid variables
        real uk(1:NX), ukp1(1:NX)

        dx = 1.0/NX
        dt = 0.5*dx*dx

C=======initialization
        do i= 2,NX-1
           uk(I)=0.0
        enddo
        uk(1)=1.0
        uk(NX)=1.0

C=======time step loop
        do k=1,NSTEPS
C===========grid computation
            do i=2,NX-1
                ukp1(i)=uk(i)+(dt/(dx*dx))*(uk(i+1)-2*uk(i)+uk(i-1))
            enddo
            do i=2,NX-1
                uk(i)=ukp1(i)
            enddo
C===========sequential output
            print*, 'timestep ', k
            print 25,(uk(I),I=1,NX)
25          format(4X,E15.5)
        enddo

        end

C=======================================================================



Berna L Massingill
Mon Jun 8 19:35:58 PDT 1998