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