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 :

Passage de Compaq visual Fortran à Gfortran


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 129
    Par défaut Passage de Compaq visual Fortran à Gfortran
    Bonjour,

    J'ai développé un programme fortran sous windows avec Compaq visual Fortran.
    Tout fonctionne bien.

    J'ai récupérer le fichier source.for que j'ai voulu compilé sous linux avec gfortran
    gfortran -Wall -static source.for -o executable
    Et là c'est la catastrophe
    Rien ne marche, le compilateur me signales des erreurs et des warnings.
    Par exemple il ne reconnait pas le . pour aller à la ligne, voici un bout des erreurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Read (LU,*,ERR=1000) (VE(k),k=1,Nmax(8))
                         1
    Error: Expected variable in READ statement at (1)
    pretraitement.f90:349.45:
     
     Data ((CU_Repartition(1,j,i),i=1,12),j=1,2)/
                                                 1
    Error: Syntax error in DATA statement at (1)
    pretraitement.f90:350.6:
     
         .150,125,110, 80, 70, 60, 50, 50, 75,135,140,155,
          1
    Error: Invalid character in name at (1)
    D'où vient le pb sachant que sous windows tout marche parfaitement ?

    Merci de votre aide !

  2. #2
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    J'ai développé un programme fortran sous windows avec Compaq visual Fortran.
    Tout fonctionne bien.
    Je me suis trouvé dans une situation analogue à la tienne en passant de Compaq Visual Fortran à SilverFrost: même certaines routines de LinPack et LAPack ne passaient plus. Mon impression est que le premier est très tolérant en ce qui concerne la non-conformité de certaines instructions par rapport aux normes, alors que les autres sont beaucoup plus intransigeants.
    Jean-Marc Blanc

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 129
    Par défaut
    Merci, c'est bien ce que je craignais

    Peut-on forcer gfortran à etre moins strict ?

    Comment forcer gfortran à lire du fortran 77 ? Car je pense que certaines erreurs viennent aussi de là

  4. #4
    Membre éprouvé
    Homme Profil pro
    Ingénieur modélisation aérodynamique
    Inscrit en
    Juillet 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur modélisation aérodynamique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 105
    Par défaut
    Bonjour,
    si tu veux un gfortran moins strict tu peux commencer par enlever le "-Wall".
    Toutefois c'est quand même bien d'être sur que le compilo ne comprenne pas un truc de travers. Tu peux commencer par l'enlever, puis quand ton programme compilera sans, tu peux le rajouter pour paufiner ton débuggage.

    Je ne connais pas Compaq visual Fortran et les options de compilations que tu utilises avec. Mais chez moi, gfortran reconnait le caractère de continuation de ligne (le . chez toi) mais uniquement s'il se trouve sur la 6ème colonne.
    Par défault, gfortran attend un formalisme F77 dès lors que ton extention est .f ou .for donc dans ton cas, gfortran lit bien du 77.


    J'imagine que tu sais déja, mais un rappel est tjs bon : le F77 est un format très strict :
    - 5 premiers caractères réservés
    - 6 eme caractère : continuation de ligne
    - du 7eme au 72eme caractère : instructions

    Si tu ne suis pas exactement ce formalisme, gfortran va te jeter. Tu peux passer outre la dernière contrainte en utilisant l'option :
    -ffixed-line-length-xxx où xxx est le nombre de colonne que tu veux qu'il lise (à la place de 72).

    Je te conseille de bien vérifier le n° de la colonne où est ton "." (pour la continuation de ligne). Ensuite de vérifier que toute tes lignes font moins de 72 caractères (ou d'ajouter l'option ci-dessus).

    S'il te reste des erreurs, prend les dans l'ordre en vérifiant à la ligne indiquée que le formalisme est bien celui décrit.


    -------------------------
    Peux-tu poster un bout de code contenant des erreurs de compil stp ?
    (Avec l'indentation exacte si possible, donc simplement copier-coller)
    -------------------------


    Bon courage

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 489
    Par défaut
    Bonjour,
    Citation Envoyé par bobbyboy Voir le message
    si tu veux un gfortran moins strict tu peux commencer par enlever le "-Wall".
    Non, cela ne rendra pas le compilateur moins strict pour ce qui est de la compilation; l'option '-Wall' ne fait que prévenir lorsqu'il repère des instructions douteuses (ex: une variable utilisée alors qu'elle n'a pas été initialisée, un tableau dont le nombre de dimensions dans une instruction ne correspond pas à sa déclaration, etc.).

    Comme il s'agit là d'un portage d'un compilateur à un autre, il est plus que recommandable de conserver (et bien lire les sorties de) l'option -Wall qui permettront de repérer des spécificités de Visual Fortran qui ne sont pas supportées par gfortran.

    Bonne continuation à tous.

Discussions similaires

  1. Installation Compaq Visual fortran V6.6 sur 7 64bits
    Par zoher82 dans le forum Fortran
    Réponses: 0
    Dernier message: 23/11/2009, 14h55
  2. Réponses: 3
    Dernier message: 07/10/2009, 11h55
  3. Générer un exécutable avec Compaq visual fortran
    Par FlorianBreizh dans le forum Fortran
    Réponses: 2
    Dernier message: 12/06/2009, 12h39
  4. Réponses: 4
    Dernier message: 26/04/2008, 00h34
  5. Cherche un Compaq Visual Fortran
    Par cricrides dans le forum Fortran
    Réponses: 5
    Dernier message: 29/01/2008, 15h31

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