1:         PROGRAM adi
    2:   	  PARAMETER (NN=100)
    3:         REAL                  :: a,b,brhs,c
    4:         REAL,DIMENSION(NN,NN) :: beta,psi,zeta,rhs,wspace
    5:   !HPF$ PROCESSORS procs(4)
    6:   !HPF$ TEMPLATE tplate(NN)
    7:   !HPF$ DISTRIBUTE tplate(BLOCK)
    8:   !HPF$ ALIGN beta(*,:)   WITH tplate(:)
    9:   !HPF$ ALIGN psi(*,:)    WITH tplate(:)
   10:   !HPF$ ALIGN zeta(*,:)   WITH tplate(:)
   11:   !HPF$ ALIGN rhs(*,:)    WITH tplate(:)
   12:   !HPF$ ALIGN wspace(*,:) WITH tplate(:)
   13:         alpha = 2.0*h2/DT
   14:         psi (2:NN-1,2:NN-1) = 2.0
   15:         DO iTime = 1,NTime
   16:           forall (i=j1:jN) psi(j1,i) = (rhs(j1,i) - a*psi(1,i))/b
   17:           DO k=jN,j1,-1
   18:             forall (i=j1:jN) psi(k,i) = psi(k,i) - wspace(k+1,i)*psi(k+1,i)
   19:           END DO
   20:           rhs(1,:) = psi(1,:)
   21:         END DO ! iTime
   22:         PRINT *, 'Final Result: for psi()'
   23:         DO i=1,NN
   24:           WRITE(UNIT=6,FMT=1002) (psi(i,j),j=1,NN/4)
   25:         END DO
   26:         STOP
   27:   1002  FORMAT(12F9.3)
   28:         END
   29: