! window of 2d array PROGRAM main IMPLICIT NONE INTEGER, POINTER :: window(:,:) ! 2次元配列 INTEGER, TARGET :: mat(1:8,1:8) INTEGER :: i, j, m, n, k mat = RESHAPE( (/ (i, i = 1, 64) /), SHAPE( mat ) ) PRINT '(1X, A)', '第何行から何行まで?(1≦i≦j≦8)' READ *, i, j PRINT '(1X, A)', '第何列から何列まで?(1≦m≦n≦8)' READ *, m, n window => mat(i:j,m:n) DO k = 1, j-i+1 PRINT '(8I5)', window(k,1:n-m+1) END DO END PROGRAM main