Professional Documents
Culture Documents
Magic Square
Magic Square
IMPLICIT NONE
INTEGER :: row, column, I
INTEGER :: sum1, diagsum1, diagsum2
INTEGER, DIMENSION(4,4) :: square
OPEN(UNIT=10, file="magic_square_data.txt")
DO column = 1,4
DO row = 1,4
READ(10,*) square(row, column)
END DO
END DO
CLOSE(10)
DO row = 1, 4
PRINT 100, square(row,:)
END DO
sum1 = SUM( square(1,:))
DO column = 1, 4
IF (sum(square(:,column)) .NE. sum1) THEN
PRINT *, 'Not a magic square.'
STOP
ELSE
END IF
END DO
DO row = 1, 4
IF (sum(square(row,:)) .NE. sum1) THEN
PRINT *, 'This is not a magic square, sorry!'
STOP
ELSE
END IF
END DO
diagsum1 = 0
DO I = 1, 4
diagsum1 = diagsum1 + square(I,I)
END DO
diagsum2 = 0
DO I = 1, 4
diagsum2 = diagsum2 + square(I,5-I)
END DO