PROGRAM quadratic_eq IMPLICIT NONE REAL :: a, b, c, d WRITE(*, *) 'INPUT A, B, C OF A QUADRATIC EQUATION AX**2 + BX + C = 0.' READ(*, *) a, b, c d = b**2 - 4.0 * a * c IF ( a == 0.0 ) THEN IF ( b == 0.0 ) THEN IF ( c == 0.0 ) THEN WRITE(*, *) 'UNDETERMINABLE' ! a=0, b=0, c=0 ELSE WRITE(*, *) 'INCONSISTENT' ! a=0, b=0, c/=0 END IF ELSE WRITE(*, *) 'ONE NON-DEGENERATE SOLUTION' ! a=0, b/=0 END IF ELSE IF (D < EPSILON(0.0) ) THEN WRITE(*, *) 'TWO-FOLD DEGENERATE SOLUTIONS' ! D = 0 ELSE IF (D > 0.0) THEN WRITE(*, *) 'TWO REAL SOLUTIONS' ! D > 0 ELSE WRITE(*, *) 'TWO COMPLEX SOLUTIONS' ! D < 0 END IF END IF STOP END PROGRAM quadratic_eq