program precisione
  ! calcola il numero delle cifre di precisione
  implicit none

  integer :: i 
  real(kind(0.d0)) :: a, b
!  real :: a, b

  b=1.d0
  a=0.d0
  i=0
  
  do while (a /= 1.d0)
     i=i + 1
     b=b * 0.5d0
     a=1.d0 + b
     write(*,*) "1+2^",-i,"=",a
  end do

  write(*,*) "il numero di cifre usate e'", i
end program precisione

