Quel est le problème avec cet extrait Fortran '77?
Question
J'ai été chargé de maintaing un certain héritage Fortran code, et je vais avoir du mal à obtenir le compiler avec gfortran. J'ai écrit une quantité juste de Fortran 95, mais c'est ma première expérience avec Fortran 77. Cet extrait de code est problématique:
CHARACTER*22 IFILE, OFILE
IFILE='TEST.IN'
OFILE='TEST.OUT'
OPEN(5,FILE=IFILE,STATUS='NEW')
OPEN(6,FILE=OFILE,STATUS='NEW')
common/pabcde/nfghi
Quand je compile avec gfortran file.FOR
, toutes les lignes commençant par l'instruction common
sont des erreurs (par exemple Error: Unexpected COMMON statement at (1)
pour chaque ligne suivante jusqu'à ce qu'il atteigne la limite d'erreur 25). Je compilé avec -Wall -pedantic
, mais fixant les mises en garde n'a pas résolu ce problème.
La chose folle est que si je commente sur les 4 les lignes commençant par IF='TEST.IN'
, les compiles du programme et fonctionne comme prévu, mais je dois commenter tous . En quittant l'un d'eux décommentée me donne les mêmes erreurs en commençant par l'instruction common
. Si je commente la déclaration de common
, je reçois les mêmes erreurs, juste à partir de la ligne suivante.
Je suis sur Mac OS X Leopard (non Snow Leopard) en utilisant gfortran
. Je l'ai utilisé ce système avec très largement gfortran
pour écrire des programmes Fortran 95, donc en théorie le compilateur lui-même est sain d'esprit. Qu'est-ce qui se passe avec ce code?
Modifier : avec G77 donne Compiler:
test.FOR: In program `MAIN__':
test.FOR:154:
IFILE='TEST.IN'
1
test.FOR:158: (continued):
common/pabcde/nfghi
2
Statement at (2) invalid in context established by statement at (1)
Er, quel contexte est établi à (1)?