title: Proper use of the PURE keyword Fortran
body: <p>I'm currently delving into Fortran and I've come across the <code>pure</code> keyword specifying functions/subroutines that have no side effects.</p>
  
  <p>I have a book, <em>Fortran 90/95</em> by S Chapman which introduces the <code>pure</code> keyword but strangely provides no "good coding practice" uses.</p>
  
  <p>I'm wondering how liberally one should use this keyword in their procedures. Just by looking around it's obvious to me that most procedures without side effects don't find it necessary to include the <code>pure</code> keyword.</p>
  
  <p>So where is it best used? Only in procedures one wants to <em>completely</em> guarantee have no side effects? Or perhaps in procedures one plans to convert to <code>elemental</code> procedures later? (As <code>elemental</code> procedures must first be <code>pure</code>.)</p>