I have struggled to find why I have a syntax error toward the end of this coding, variable y2 (but not y1 and x1). Please identify my obvious error!

**Code:**'CirclInt -circle-line intersection algorithm by solution of quadratic equation
'- Circle, centre a,b and radius r has the equation (x-a)^2 +(y-b)^2=r^2
. 1
'- Line, gradient s through c,d has the equation (y-d) = (x-c)*s, or x=(y-d)/s + c
. 2
'Substituting 2 in 1,
'((y-d)/s+c-a)^2 +y^2-2yb+b^2=r^2
. multiply by s^2
'((y-d) +s(c-a))^2 +s^2.y^2 - 2ybs^2=(r^2-b^2)s^2
.. e= s(c-a)-d 'simplify equation
'y^2 +2ye+e^2 +y^2s^2 -2ybs^2 -(r^2-b^2)=0
'y^2(1+s^2) +y(2e-2bs^2) -(r^2-b^2)=0
ditto f= (1+s^2), g=2*(e-b*s^2), h=-(r^2-b^2)*s^2 'simplify equation
a=0 'test data input from Main Program - a is x coord of the line
b=0 'b is the y coordinate of the line
s1=1 's1 is the slope of the line - if slope is vertical ie infinite
'value, program to set to 9999 at data input stage and the subroutine
'will automatically detect and deal with evaluation of coords.
c=4 'Easting of circle centre
d=4 'Northing of circle centre
r=1 'radius of circle
GOSUB [CirclInt]
LET e=s(c-a)-d
LET f=(1+s^2)
LET g=2*(e-b*s^2)
LET h= (b^2-r^2)*s^2
If (g^2-4*f*h) >0 THEN GOTO 10 'real roots
If (g^2-4*f*h) <0 THEN GOTO 5 'imaginary roots
Print "Singular roots - line tangential" ' =0, therefor Single root (but what if not zero, due to rounding errors?)
Flag=1
GOTO 10 ' - need to develop error trap routine for all similar
5 Print "CirclInt - No Solution" 'show which routine error occurs!
Goto 20
10 y1=(-g(g^2-4*f*h)^0.5)/(2*f)
x1= (y1-d)/s
If Flag=1 THEN GOTO 20 'Single root
y2 =(-g-(g^2-4*f*h)^0.5)/(2*f) 'CAN'T UNDERSTAND SYNTAX ERROR HERE?
x2= (y2-d)/s +c
20 Stop 'stop only for testing
Return