real,allocatable:: tu(:,:),tv(:,:),alpha(:,:)
open(10,file="s2d2.dat")
nx=100
allocate(tu(nx,nx),tv(nx,nx),alpha(nx,nx))
tu=0.
tv=0.

tu(1,:)=100.
tv(1,:)=100.

do i=1,nx
do j=1,nx
alpha(i,j)=0.1
enddo
enddo

nt=100000

do it=1,nt

do i=2,nx-1 
do j=2,nx-1
tu(i,j)=tv(i,j)+alpha(i,j)*(tv(i+1,j)-4.*tv(i,j)+tv(i-1,j)+tv(i,j+1)+tv(i,j-1))
enddo
enddo

tu(1,:)=100.
tu(:,nx)=tu(:,nx-1)
tu(:,1)=tu(:,2)
tu(nx,:)=tu(nx-1,:)

if ((it/500)*500.eq.it) then
write(10, '(100f15.5)') tu
endif

tv=tu
enddo

stop
end