The unconditional GO TO statement makes it possible to construct programs with a very undisciplined structure; such programs are usually hard to understand and to maintain. Good programmers use GO TO statements and labels very sparingly. Unfortunately it is not always possible to avoid them entirely in Fortran because of a lack of alternative control structures.
The next example finds the highest common factor of two integers M and N using a Euclid's algorithm. It can be expressed roughly: while (M N) subtract the smaller of M and N from the other repeat until they are equal.
PROGRAM EUCLID WRITE(UNIT=*, FMT=*) 'Enter two integers' READ(UNIT=*, FMT=*) M, N 10 IF(M .NE. N) THEN IF(M .GT. N) THEN M = M - N ELSE N = N - M END IF GO TO 10 END IF WRITE(UNIT=*, FMT=*)'Highest common factor = ', M END