title: Fortran: What exactly is .d0?
body: <p>I understand that <code>.d0</code> denotes <code>double precision</code> however I wonder how it goes together with user defined precision. I use </p>
  
  <pre><code>module precision
  implicit none
      integer, parameter :: DP = selected_real_kind(r=250,p=13)
  end module precision
  </code></pre>
  
  <p>and declare floats as</p>
  
  <pre><code>real(KIND=DP) :: var1
  </code></pre>
  
  <p>Whenever I need to assign a value to such a float somewhere in the programme I do </p>
  
  <pre><code>var1 = 1_DP
  </code></pre>
  
  <p>Now the problem I have is that it does not work if I read the value from a namelist. The compiler insists on </p>
  
  <pre><code>&amp;namelistName
      var1 = 1.d0
      !var1 = 1_DP   ! this does not work
  &amp;end
  </code></pre>
  
  <p>Two questions follow:</p>
  
  <ol>
  <li>What happens if I assign value of <code>1.d0</code> to a variable declared as <code>real(KIND=DP)</code>?</li>
  <li>Is there a way how to enforce <code>1_DP</code> in namelists? If it matters of course. </li>
  </ol>