title: Are there some tools to check if a fortran procedure modifies its argument?
body: <p>Are there tools that can be used to check which arguments of a fortran procedure is being defined or not inside the procedure? I mean something like a lexical analyzer that simply check if a variable is being used on the left hand side of an assignment (or equivalent) statement.
  Something similar to the check that the compiler does when the intent(in) are specified for an argument. </p>
  
  <p>I came across a code written mostly in fortran 77 standard (no intent specified), with subroutines that have hundreds of arguments, some of those subroutines extend over 5000 of lines of code each. I would like to modify some part of the code and rewrite the long subroutines. I think that if I am able to trace the arguments that are being changed or not, it will be easy.</p>
  
  <p>Any suggestion is welcome.</p>
  
  <p>Just to define the limits of my question and avoid useless discussion:
  I am aware that variables can be modified by calls to other subroutines. I can handle that one manually if there is a tool that can check the direct modifications inside a given procedure.</p>