program nombre_dor
  implicit none
  real, parameter   :: epsilon = 1.e-5
  real              :: u_prec, u_cour
  real              :: v_prec, v_cour
  real              :: somme
  real              :: nombre_or

  nombre_or = (1. + sqrt(5.))/2.

  u_prec = 1.; u_cour = 1.
  do
    v_prec = u_cour/u_prec
    somme  = u_cour + u_prec
    u_prec = u_cour
    u_cour = somme
    v_cour = u_cour/u_prec
    if ( abs( (v_cour-v_prec)/v_prec ) < epsilon ) exit
  end do

  print*, "Limite de la suite (vn) : ", v_cour, &
          "Nombre d'or : ", nombre_or
end program nombre_dor

