program heat2 double precision u(101),dx,dt,t integer i,j,count dx = 0.2 dt = 0.01 count = 0 open(unit=13,file="data.d") u(1) = 2 u(101) = 3 do 10 i=2,100 if(i .LT. 50) then u(i) = 1 else u(i) = 0 endif 10 continue write(13,900) (u(j), j=1,101) do 20 t=0,50,dt write(*,*) t do 30 i=2,100 u(i) = u(i) + ((u(i-1)-2*u(i)+u(i+1))/dx**2)*dt 30 continue if(count .GE. 100) then write(13,900) (u(j), j=1,101) count = 0 else count = count + 1 endif 20 continue 900 format(101(F5.2)) stop end