title: Fortran COMMON block initialization
body: <p>Fortran newbie here, I've been asked to work on an old Fortran codebase written in Fortran 77 with Salford/Silverfrost compiler (the original developer passed away). </p>
  
  <p>The original developer uses named <code>COMMON</code> blocks extensively (to emulate global variables, AFAIU) and he uses <code>EQUIVALENCE</code> to (re-)initialize the blocks when needed like in this code snippet:</p>
  
  <pre><code>      IMPLICIT REAL*8 (A-H,O-Z)
  
        COMMON/COMMF2D/
       * ASCN(0:99,0:20,0:4)   
       *,FEMPTY2(8700)
  
        DIMENSION KLCKF2D(38400)
        EQUIVALENCE (KLCKF2D,ASCN)
  
        DO I= 1,38400                                              
        KLCKF2D(I)= 0
        END DO
  </code></pre>
  
  <p>Is this an acceptable programming practice or just a hack? Also, since I'm trying to port the code to GFortran, is it portable? (I understand that declarations like <code>REAL*8</code> are just hints to the compiler and not guaranteed)</p>