Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Discussion: Fortran et modules

  1. #1
    Membre à l'essai
    Inscrit en
    mars 2012
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : mars 2012
    Messages : 18
    Points : 24
    Points
    24

    Par défaut Fortran et modules

    Bonsoir la communauté !

    Je suis tombé sur un os. J'ai téléchargé le programme SHTOOLS à cette adresse. Il sert à faire de la physique des champs potentiels si vous voulez tout savoir .

    Pour tout ce qui suit, j'utilise la dernière version d'ubuntu (téléchargée ce soir même !) montée sur une machine virtuelle VirtualBox.

    Sur le site que je vous ai indiqué, il y a toute la marche à suivre pour "installer" et utiliser cet outil. Et pour l'essayer sans n'avoir rien à faire, il y a un dossier "examples" dans lequel on trouve un certains nombre de codes qui marche tout seul (tout est prêt, il n'y a qu'à les lancer) pour bien vérifier qu'on a tout fait comme il fallait précédemment. Là où le bât blesse, c'est que je n'arrive pas à faire tout comme il faut.

    Selon les instructions, il faut lancer le Makefile qui va compiler toutes les subroutines présentes dans le dossier source (src). Ce même dossier contient SHTOOLS.f95, qui n'est autre qu'un grand module qui établit la liste de toutes les subroutines.

    Les fichiers .o attendus apparaissent bien à la fin, le make aboutissant à un rassurant "MAKE SUCCESSFUL!", et le dossier modules contient bien les quelques fichiers .mod attendus.

    Je veux maintenant faire tourner le script SHMag.f95, contenu dans examples/SHMag/. Le code contient bien un "use SHTOOLS" dès le départ, ça tombe bien on a le .mod dans le dossier modules. Voilà la ligne de commande que je lance alors :
    Code :
    1
    2
    3
    export SHTOOLSMODPATH=/home/DonQ/Bureau/SHTOOLS/SHTOOLS/modules
    export SHTOOLSLIBPATH=/home/DonQ/Bureau/SHTOOLS/SHTOOLS/lib
    gfortran -I$SHTOOLSMODPATH -O3 -m64 -fno-underscoring -L$SHTOOLSLIBPATH -lSHTOOLS2.7 -lfftw3 -lm -s SHMag.f95 -o SHMag
    Et voilà ce que le terminal m'affiche :
    SHMag.f95:21.12:

    use SHTOOLS
    1
    Fatal Error: Can't open module file 'shtools.mod' for reading at (1): Aucun fichier ou dossier de ce type
    J'ai tout essayé : passer le terminal en tcsh, changer le /bin/tcsh en /bin/sh dans les Makefiles bidouiller les options à l'appel du "make", bidouiller les options de compilation quand je veux lancer SHMag.f95 ... rien n'y fait. Si quelqu'un peut m'aider, qu'il soit béni lui et sa famille sur 7 générations !

    En attendant, bonne nuit

  2. #2
    Invité régulier
    Inscrit en
    novembre 2012
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : novembre 2012
    Messages : 7
    Points : 7
    Points
    7

    Par défaut

    Bonjour,

    Si le fichier est bien dans le répertoire /home/DonQ/Bureau/SHTOOLS/SHTOOLS/modules cela devrait fonctionner.

    Vous pouvez essayer comme cela aussi depuis le repertoire d'example
    Code :
    gfortran -I../../modules/ -m64 -O3 -L../../lib      .......
    Aussi l’option -fno-underscoring est plutôt a éviter.

  3. #3
    Membre à l'essai
    Inscrit en
    mars 2012
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : mars 2012
    Messages : 18
    Points : 24
    Points
    24

    Par défaut

    J'ai essayé de faire ce que vous m'avez proposé, ça ne marche toujours pas. Voici ce que m'affiche le terminal :
    /usr/bin/ld: cannot find crt1.o: No such file or directory
    /usr/bin/ld: cannot find crti.o: No such file or directory
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/i686-linux-gnu/4.6.1/libgfortran.so when searching for -lgfortran
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/i686-linux-gnu/4.6.1/libgfortran.a when searching for -lgfortran
    /usr/bin/ld: cannot find -lgfortran
    /usr/bin/ld: cannot find -lm
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/i686-linux-gnu/4.6.1/libgcc_s.so when searching for -lgcc_s
    /usr/bin/ld: cannot find -lgcc_s
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/i686-linux-gnu/4.6.1/libgcc.a when searching for -lgcc
    /usr/bin/ld: cannot find -lgcc
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/i686-linux-gnu/4.6.1/libquadmath.so when searching for -lquadmath
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/i686-linux-gnu/4.6.1/libquadmath.a when searching for -lquadmath
    /usr/bin/ld: cannot find -lquadmath
    /usr/bin/ld: cannot find -lm
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/i686-linux-gnu/4.6.1/libgcc_s.so when searching for -lgcc_s
    /usr/bin/ld: cannot find -lgcc_s
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/i686-linux-gnu/4.6.1/libgcc.a when searching for -lgcc
    /usr/bin/ld: cannot find -lgcc
    /usr/bin/ld: cannot find -lc
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/i686-linux-gnu/4.6.1/libgcc_s.so when searching for -lgcc_s
    /usr/bin/ld: cannot find -lgcc_s
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/i686-linux-gnu/4.6.1/libgcc.a when searching for -lgcc
    /usr/bin/ld: cannot find -lgcc
    /usr/bin/ld: cannot find crtn.o: No such file or directory
    collect2: ld a retourné 1 code d'état d'exécution
    J'ai ensuite tout recommencé en lançant le Makefile puis en compilant l'exemple sans l'option "-m64" (en 32 bits donc). Voici l'erreur qui s'affiche dans le terminal :
    /tmp/ccVvNy6M.o: In function `MAIN__':
    SHMag.f95: (.text+0x1e2): undefined reference to `shread_'
    SHMag.f95: (.text+0xbb6): undefined reference to `makemaggrid2d_'
    collect2: ld a retourné 1 code d'état d'exécution
    C'est déprimant

  4. #4
    Membre actif Avatar de Grame
    Profil pro
    Inscrit en
    août 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : août 2007
    Messages : 146
    Points : 174
    Points
    174

    Par défaut

    Bonjour,

    Au vu des messages d'erreur
    usr/bin/ld: cannot find crt1.o: No such file or directory
    /usr/bin/ld: cannot find crti.o: No such file or directory
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/i686-linux-gnu/4.6.1/libgfortran.so when searching for -lgfortran
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/i686-linux-gnu/4.6.1/libgfortran.a when searching for -lgfortran
    /usr/bin/ld: cannot find -lgfortran
    j'ai l'impression qu'il y a un problème dans ton installation de gfortran.

    Peux-tu compiler et exécuter un petit programme du type "Hello World" ?

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •