gfortran question about optional subroutine arguments

Tim Prince
Thu Mar 14 14:03:00 GMT 2013

On 3/14/2013 9:39 AM, Mark Hounschell wrote:
> When I use -std=f95 this fortran77 code will not compile. Many 
> different complaints but the most serious are normal variable 
> declarations:
>         INTEGER*8 TOTTIME(0:MAXTASK)            ! Task total exec time (
>                  1
> Error: Nonstandard type declaration INTEGER*8 at (1)
> ????
Are you hoping to amend the F77 standard retroactively to get this 
extension accepted as standard in a round-about way? 24-, 36-, and 
60-bit machines were still in use when F77 was under development, so 
there was no meaningful way to incorporate an extension which was 
designed to prevent code from being portable to any but 16- and 32-bit 
(or some 64-bit) platforms.
It's true that the f77 standard didn't require an option to reject this 
syntax, but many f77 compilers did reject it.  The fact that some 
accepted it doesn't make it fortran77.
If you intend to keep your application restricted to the majority of 
current platforms where integer*8 and integer(8) are synonymous, the 
latter will probably pass standards checking, even though replacing the 
8 by a parameter constant would be preferable.

Tim Prince

More information about the Gcc-help mailing list