program report
    implicit none 
    real(8) :: x, y, x1, y1, x2, y2, HX, e  
    integer :: i 
    read *, x, y 
    e = 0.0000001 
 
    do i = 1, 100000 
      HX = fx(x)*gy(x,y) - fy(y)*gx(x,y)  
      x1 = x - (f1(x,y)*gy(x,y) - fy(y)*g1(x,y))/HX 
      y1 = y - (-f1(x,y)*gx(x,y) + fx(x)*g1(x,y))/HX 
       
      x2 = x1 - x 
      x2 = abs(x2) 
      y2 = y1 -y 
      y2 = abs(y2) 
 
      if (x2 < e) then 
        if (y2 < e) exit 
      end if  
 
      x = x1 
      y = y1 
    end do 
     
       write(*,*) x, y, x2, y2 
    
    contains
 
    !関数定義
    function f1(x, y) 
      real(8) :: f1  
      real(8), intent(in) :: x, y 
      f1 = x**2 + y**2 - 1 
    end function f1 
 
    function g1(x,y) 
      real(8) :: g1 
      real(8), intent(in) :: x, y 
      g1 = (X**2)*(2 + x) - (y**2)*(2 - x) 
    end function g1 
 
    function fx(x) 
     real(8) :: fx 
     real(8), intent(in) :: x 
     fx = 2*x 
    end function
    
    function fy(y) 
      real(8) :: fy 
      real(8), intent(in) :: y 
      fy = 2*y 
    end function 
 
    function gx(x,y) 
     real(8) :: gx 
     real(8), intent(in) :: x, y 
     gx = 3*(x**3) + 4*x + y**2 
    end function 
 
    function gy(x,y) 
     real(8) :: gy 
     real(8), intent(in) :: x, y 
     gy = -4 *y +(2*x)*y 
    end function 
 
end program report
