IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Fortran Discussion :

Problème de compilation : "$" en début de ligne et tableau sans taille


Sujet :

Fortran

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Points : 26
    Points
    26
    Par défaut Problème de compilation : "$" en début de ligne et tableau sans taille
    Bonjour,

    Je souhaite compiler un projet fortran 77.
    Je sais que ce code a été compilé (il y a bien longtemps) avec Intel Fortran Compiler. Malheureusement, Intel Fortran Compiler est payant pour une utilisation professionnelle/commerciale (ce qui est mon cas).

    Deux problèmes :
    1) chacun des fichiers *.f comporte un en-tête commençant par :
    2) certains fichiers comporte des déclarations de tableaux comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dimension tab1,tab2,tab3
    J'ai essayé avec GNU Fortran (GCC) 4.4.0.
    La compilation de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $VERSION
          PROGRAM HELLOW
           dimension  tab1,tab2,tab3
           WRITE(UNIT=*, FMT=*) 'Hello World'
          END
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gfortran -c -o hello.o hello.f
    provoque les erreurs suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    hello.f:1.1:
     
    $VERSION
     1
    Error: Non-numeric character in statement label at (1)
    hello.f:1.1:
     
    $VERSION
     1
    Error: Unclassifiable statement at (1)
    hello.f:3.22:
     
           dimension  tab1,tab2,tab3
                          1
    Error: Missing array specification at (1) in DIMENSION statement
    Je précise qu'il me faudrait 3 exécutables :
    - Win32
    - Linux
    - Mac OS

    Connaitriez-vous un compilateur qui me permettrait d'ignorer les balises $VERSION (s'il s'agit bien de balises), de déclarer des tableaux sans taille, et qui compile sous Win32, Linux, Mac OS ?

    Une autre solution consisterait à modifier le code, mais je ne connais pas du tout fortran.

    Merci par avance pour vos réponses.

    CC

  2. #2
    Membre éclairé Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Points : 825
    Points
    825
    Par défaut
    il me semble que le compilateur intel fortran n'a pas de version MacOS... gfortran est une très bonne solution pour cela...

    le code que tu présente est assez étrange les "$version" semble être des directives de précompilation pour "pré-compiler" avec gfortran il faut utiliser gcc: "gcc -E" mais ces directives doivent être écrite comme pour reprendre l'exemple donc un moyen simple pour toi serai de faire un "replace all"dans tout tes source code du caractère "$" par "#" si le $ est en première colonne
    il n'y a que ceux qui savent qui ne savent pas qu'ils savent...
    Libere-toi hacker, GNU's Not Unix!!!

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Points : 26
    Points
    26
    Par défaut
    Merci pour ta réponse.
    Je pourrais aussi remplacer "$VERSION" par "c $VERSION".

    Et pour les tableaux sans taille, tu as une idée ?

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Août 2006
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 974
    Points : 1 346
    Points
    1 346
    Par défaut
    Des tableaux sans taille ? C'est assez louche. Il faut qu'une taille soit éventuellement allouée pour ces tableaux. Si la déclaration des tableaux n'est pas standard, l'allocation et/ou la manipulation de ces tableaux peut très bien ne pas l'être non plus. Ta recherche de solution doit donc inclure cet élément.

    Le compilateur Intel est gratuit je crois pour des projets Linux non commerciaux. Tu devrais au moins essayer de compiler dans cet environnement pour voir...

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Points : 26
    Points
    26
    Par défaut
    @genteur slayer :
    J'ai regardé sur http://gcc.gnu.org/onlinedocs/gcc/Ov...verall-Options et j'ai trouvé :
    -E
    Stop after the preprocessing stage; do not run the compiler proper. The output is in the form of preprocessed source code, which is sent to the standard output.

    Input files which don't require preprocessing are ignored.
    Pour ma part, j'aimerais compiler mon code.

    @Sylvain Bergeron :
    Oui c'est louche. Mais comme c'est du (très) vieux code en Fortran 77. Peut-être qu'à l'époque certains compilateurs étaient très (trop) permissifs.

    J'ai trouvé sur http://en.wikipedia.org/wiki/Fortran
    une version de Fortran qui pourrait correspondre à ce type de syntaxe :
    FOR TRANSIT for the IBM 650

    "FOR TRANSIT" was the name of a reduced version of the IBM 704 FORTRAN language, which was implemented for the IBM 650, using a translator program developed at Carnegie [16] in the late 1950s.(...)
    The permissible statements were:

    Arithmetic assignment statements, e.g. a = b
    GO to n
    GO TO (n1, n2, ..., nm), i
    IF (a) n1, n2, n3
    PAUSE
    STOP
    DO n i = m1, m2
    CONTINUE
    END
    READ n, list
    PUNCH n, list
    DIMENSION V, V, V, ...
    EQUIVALENCE (a,b,c), (d,c), ...
    Finalement, et même si je n'en avais pas trop l'envie au départ, j'ai fait une sorte de "patch" pour corriger les erreurs de compilation. Ça m'a permis de faire joujou avec les expressions régulières.

    Encore merci à vous deux.

  6. #6
    Membre éclairé Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Points : 825
    Points
    825
    Par défaut
    pour compiler:

    gfortran -c -o hello.o hello.f

    avec les bonnes instruction de commentaire ( avec ! ou avec c) ensuite pour arrivé à compiler avec tes tableaux sans dimension... mystère...

    je pense que c'est du code spécifique à ton précédent compilateur, je commencerai par chercher dans le manuel... mais c'est pas dit qu'il y ait qqchose... dur dur...
    il n'y a que ceux qui savent qui ne savent pas qu'ils savent...
    Libere-toi hacker, GNU's Not Unix!!!

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Points : 26
    Points
    26
    Par défaut
    Conclusion concernant les tableaux sans taille : c'était du code mort. Je les ai donc simplement commentés.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 11/05/2009, 20h29
  2. Sudo problème avec les simples quotes
    Par Tronche dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 23/03/2007, 12h02
  3. [MySQL] Problème avec un double quote
    Par wormseric dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/01/2007, 14h44
  4. [Wamp] Problème d'insertion avec quote d'un formulaire
    Par cyberdevelopment dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 20/08/2006, 18h55
  5. [SQL-Server] Problèmes de guillemets et quotes dans un INSERT
    Par gregb34 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/05/2006, 09h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo