Précédent   Forum du club des développeurs et IT Pro > Autres langages > Autres langages > Fortran
Fortran Forum d'entraide sur la programmation en Fortran. Avant de poster -> FAQ Fortran
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 14/11/2012, 01h15   #1
Don_Q
Membre à l'essai
 
Inscription : 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 :
Citation:
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
Don_Q est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2012, 10h31   #2
spica314
Invité régulier
 
Inscription : novembre 2012
Messages : 7
Détails du profil
Informations forums :
Inscription : novembre 2012
Messages : 7
Points : 7
Points : 7
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.
spica314 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2012, 11h29   #3
Don_Q
Membre à l'essai
 
Inscription : mars 2012
Messages : 18
Détails du profil
Informations forums :
Inscription : mars 2012
Messages : 18
Points : 24
Points : 24
J'ai essayé de faire ce que vous m'avez proposé, ça ne marche toujours pas. Voici ce que m'affiche le terminal :
Citation:
/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 :
Citation:
/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
Don_Q est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2012, 11h08   #4
Grame
Membre actif
 
Avatar de Grame
 
Inscription : août 2007
Messages : 147
Détails du profil
Informations personnelles :
Âge : 57
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : août 2007
Messages : 147
Points : 186
Points : 186
Bonjour,

Au vu des messages d'erreur
Citation:
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" ?
Grame est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 08h53.


 
 
 
 
Partenaires

Hébergement Web