program GV

  implicit none

  real(8), parameter :: pi=acos(-1.d0)
  real(8), parameter :: m=2.d0*pi
  integer, parameter :: n=1000
  integer :: i, j
  real(8) :: t1(n), t2(n)
  real(8) :: x1(n), x2(n)
  real(8) :: z1(n), z2(n)
  real(8), parameter :: dtheta=m/n
  real(8) :: VA, a
  

  open(11, file="GV-1-1.txt", status="unknown")

  a=1.d0
  VA=a*sqrt(2.d0)

  do i=1,n

     t1(i)=dtheta*(i-1)

     x1(i)=(sqrt(VA**2+a**2+sqrt((VA**2+a**2)**2-4*VA**2*a**2*cos(t1(i))**2))*sin(t1(i)))/sqrt(2.d0) &
          & +(sqrt(2.d0)*VA**2*a**2*sin(t1(i))*cos(t1(i))**2)/ &
          & (sqrt(VA**2+a**2+sqrt((VA**2+a**2)**2-4*VA**2*a**2*cos(t1(i))**2))*sqrt((VA**2+a**2)**2-4*VA**2*a**2*cos(t1(i))**2))
     z1(i)=(sqrt(VA**2+a**2+sqrt((VA**2+a**2)**2-4*VA**2*a**2*cos(t1(i))**2))*cos(t1(i)))/sqrt(2.d0) &
          & -(sqrt(2.d0)*VA**2*a**2*cos(t1(i))*sin(t1(i))**2)/ &
          & (sqrt(VA**2+a**2+sqrt((VA**2+a**2)**2-4*VA**2*a**2*cos(t1(i))**2))*sqrt((VA**2+a**2)**2-4*VA**2*a**2*cos(t1(i))**2))

     write(11,*) x1(i), z1(i)

  end do
  close(11)

!----------------------------------
  
  open(12, file="GV-1-2.txt", status="unknown")

  do j=1,n

     t2(j)=dtheta*(j-1)
     
     x2(j)=(sqrt(VA**2+a**2-sqrt((VA**2+a**2)**2-4*VA**2*a**2*cos(t2(j))**2))*sin(t2(j)))/sqrt(2.d0) &
          & -(sqrt(2.d0)*VA**2*a**2*sin(t2(j))*cos(t2(j))**2)/ &
          & (sqrt(VA**2+a**2-sqrt((VA**2+a**2)**2-4*VA**2*a**2*cos(t2(j))**2))*sqrt((VA**2+a**2)**2-4*VA**2*a**2*cos(t2(j))**2))
     z2(j)=(sqrt(VA**2+a**2-sqrt((VA**2+a**2)**2-4*VA**2*a**2*cos(t2(j))**2))*cos(t2(j)))/sqrt(2.d0) &
          & +(sqrt(2.d0)*VA**2*a**2*cos(t2(j))*sin(t2(j))**2)/ &
          & (sqrt(VA**2+a**2-sqrt((VA**2+a**2)**2-4*VA**2*a**2*cos(t2(j))**2))*sqrt((VA**2+a**2)**2-4*VA**2*a**2*cos(t2(j))**2))
          
     write(12,*) x2(j), z2(j)

  end do
  close(12)

!----------------------------------

  open(13, file="GV-1-3.txt", status="unknown")  

  write(13,*) 0, VA
  write(13,*) 0, -VA

  close(13)

  
end program GV
