06/07/20 17:56:17
>>709
ごめ、元の奴括弧の範囲を継続行に直したところで、ずらしてしまっていた。
結果は大して変わらんが。訂正しておくw
PROGRAM unko
IMPLICIT NONE
INTEGER, PARAMETER :: nx = 19, ny = 9
REAL :: f(-nx - 1:nx + 1, 0:ny + 1), ff(-nx:nx, ny), c(-nx:nx, ny), dx, dy
INTEGER :: i, ix, iy
dx = 1.0 / REAL(nx + 1)
dy = 1.0 / REAL(ny + 1)
c(-nx:-1, :) = -1.0
c( 0, :) = 0.0
c( 1:nx , :) = 1.0
f = 0.0
f(-nx - 1, :) = 0.0
f( nx + 1, :) = 0.0
f(:, 0) = 0.0
f(:, ny + 1) = 0.0
DO i = 1, 100
DO ix = -nx, nx
DO iy = 1, ny
ff(ix, iy) = ( -c(ix, iy) * dx * dy &
+ f(ix - 1, iy - 1) + f(ix - 1, iy + 1) + f(ix + 1, iy - 1) + f(ix + 1, iy + 1) ) / 4.0
END DO
END DO
f(-nx:nx, 1:ny) = ff
END DO
DO ix = -nx - 1, nx + 1
WRITE(9, '(1000es11.3)') dx * ix , f(ix, :)
END DO
STOP
END PROGRAM unko