title: Numerical Precision in Fortran 95:
body: <p>I have the following Fortran code:</p>
  
  <pre><code>Program Strange
     Real(Kind=8)::Pi1=3.1415926535897932384626433832795028841971693993751058209;
     Real(Kind=8)::Pi2=3.1415926535897932384626433832795028841971693993751058209_8;
  
     Print*, "Pi1=", Pi1;
     Print*, "Pi2=", Pi2;
  
  End Program Strange
  </code></pre>
  
  <p>I compile with gfortran, and the output is:</p>
  
  <pre><code> Pi1=   3.1415927410125732     
   Pi2=   3.1415926535897931
  </code></pre>
  
  <p>Of course the second is correct, but should this be the case? It seems like Pi1 is being input to memory as a single precision number, and then put into a double precision memory slot. But this seems like an error to me. Am I correct?</p>