The $DECLARE metacommand isn't part of Fortran. Looking at a manual for a different version of Microsoft Fortran (5.1 ... and there were at least 2 'Powerstation' versions afterwards) this metacommand causes an error or warning message to be emitted at first use of an undeclared variable (error if IMPLICIT NONE is given, otherwise warning). FTN95 has something similar via the /UNDEF compiler option, so the $DECLARE you can safely delete.
As far as RECORD, STRUCTURE, UNION go, the Fortran Committee in its wisdom did not see fit to carry this established system of creating and using composite data types, and instead, devised a new way (in my view because it looked like a variant on COMMON, and they wanted something that looked like MODULE). There is a general similarity between the old (not in Fortran 77 but widely available) and the new (definitely in the Fortran 90 and 95 standards) methods.
You can get info on how to change your code into Fortran-90 style here:
http://gcc.gnu.org/onlinedocs/gfortran/STRUCTURE-and-RECORD.html
Eddie
[/url]