title: Generic procedures in fortran 2003
body: <p>I know that fortran has the concept of a generic procedure allowing users to define several specific procedures and collecting their interfaces in an interface block.  What is not clear to me however is whether it is possible to remove code duplication by only having one implementation of a generic function.</p>
  
  <p>As an example consider the intrinsic SIN function.  It can accept both real and double precision arguments.  Does this mean there are two implementations say SIN_REAL and SIN_DOUBLE_PRECISION with exactly the same code?</p>
  
  <p>Apologies for the naive question, I am a fortran beginner.  Thanks for reading. </p>