SUBROUTINE masodfoku(a, b, c, x1, x2) !Elofeltetel: a nem nulla IMPLICIT NONE DOUBLE PRECISION, INTENT(IN) :: a, b, c !Az egyutthatok DOUBLE PRECISION :: d !A diszkriminans COMPLEX, INTENT(OUT) :: x1, x2 COMPLEX :: i d=b**2-4*a*c i=-1 i=sqrt(i) IF (d .EQ. 0) THEN !Ne szamoljunk 0-val x1=-1*b/(2*a) x2=x1 ELSEIF (d .GT. 0) THEN !A diszkriminans pozitiv, ket valos gyok x1=(-1*b-sqrt(d))/(2*a) x2=(-1*b+sqrt(d))/(2*a) ELSE !A diszkriminans negativ, nem valos, komplex gyokok x1=-1*b/(2*a)+sqrt(-1*d)/(2*a)*i x2=-1*b/(2*a)-sqrt(-1*d)/(2*a)*i ENDIF RETURN STOP END SUBROUTINE masodfoku