CPS-615 VPL Program Printout

USERNAME: kayasidh
PROGRAM : homework/laplace2d.f90



C This is a fortran90 program solving Laplace's equation in 2 dimensions
C with 64 x 64 grain size. The boundary conditions are 1.
C KAYASIDH KASYAPANUN
C CPS615 Fall96
C Compile : f90 laplace2d.f90  (on NOVA.npac or via VPL)
C---------------------------------------------------------------------------
      PROGRAM LAPLACE2D
 
      REAL, DIMENSION(64,64) :: PHINEW,PHIOLD
      REAL :: TEST=1.0
C-----------------------------------
C Initialize the boundary condition
C-----------------------------------
      PHIOLD(1:64,1)=1
      PHIOLD(1:64,64)=1
      PHIOLD(1,1:64)=1
      PHIOLD(64,1:64)=1
 
      PHINEW=PHIOLD
C---------------------
C Calculate PHI values
C---------------------
      DO WHILE (TEST>0.0001)
        PHINEW(2:63,2:63)=0.25*(PHIOLD(1:62,2:63)+PHIOLD(2:63,1:62)+
     *                          PHIOLD(2:63,3:64)+PHIOLD(3:64,2:63))
C-----------------------------------------------------
C Find the difference between Phi values in iterations
C-----------------------------------------------------
        TEST = MAXVAL(ABS(PHIOLD-PHINEW))
        PHIOLD = PHINEW
      END DO
C--------------------------------
C Display slution of Laplaces 2D
C--------------------------------
      WRITE(*,*) '64 x 64 2-dimensions Laplaces equation'
      WRITE(*,*) '======================================'
      WRITE(*,*) 'Each line has solutions from 8 points'
      WRITE(*,*) '8 lines -> 64 points = 1 row'
      WRITE(*,*) '------------------------------------------------'
      DO I=1, 64
        WRITE(*, FMT="(8(f7.4))" ) PHIOLD(I,:)
        WRITE(*,*) '------------------------------------------------'
      ENDDO
      END