gfortran supports f77, but I'm not sure that this is good f77.

The piece of code is

      logical Memb(1)
      integer*2 Memc(1)
      integer*2 Mems(1)
      integer Memi(1)
      integer Meml(1)
      real Memr(1)
      double precision Memd(1)
      complex Memx(1)
      equivalence (Memb, Memc, Mems, Memi, Meml, Memr, Memd, Memx)
      common /Mem/ Memd

Memi are then used to reference the memory location as pointers.  The trouble is that f90 sees this as real arrays.

If you have some ideas on how to make this work in gfortran let me know.