2015-03-15 1 views
0

Je suis assez nouveau pour les systèmes Unix et bash, donc je suis désolé d'avance si la question peut sembler stupide.compiler FFTW fortran programme

J'ai récemment téléchargé et installé le programme FFTW sur mon iMac (en suivant les instructions du chapitre 10 de http://www.fftw.org/fftw3.pdf). L'installation a réussi car je n'obtiens aucune erreur quand je fais "vérifier".

Maintenant, je voulais commencer à écrire un petit programme de test en utilisant les bibliothèques mentionnées ci-dessus.

Le code Fortran est très simple (et il est fondamentalement juste un contrôle de la façon de relier les bibliothèques FFTW à Fortran):

program fft 

use, intrinsic :: iso_c_binding 
include 'fftw3.f03' 

implicit none 

end program fft 

cependant, quand il s'agit de compiler le programme que je suis complètement désemparés (essentiellement parce que je ne suis pas du tout expert dans la compilation) ce que je fais habituellement de compiler est:

gfortran -o "executable_ename" "main.f90" 

Cependant, cela ne fonctionne pas, en particulier, je reçois l'erreur suivante:

fft.f90:4: Error: Can't open included file 'fftw3.f03' 

Si vous pouviez me donner un coup de main avec ce problème, et peut-être aussi expliquer ce qui me manque et pourquoi ce serait génial.

Répondre

1

Vous devez spécifier où se trouve fftw3.f03! Sur ma machine, il est en /usr/include, donc j'utiliser:

gfortran -I/usr/include -o "executable_ename" main.f90 

BTW: le implicit none doit aller devant le include:

program fft 
    use, intrinsic :: iso_c_binding 
    implicit none 

    include 'fftw3.f03' 
end program fft 
+0

Merci pour la réponse, le fichier fftw3.f03 sur ma machine a le même emplacement que le vôtre. Cependant quand j'essaye de compiler using votre chaîne je continue d'obtenir la même erreur. Est-il possible d'obtenir le chemin du dossier à l'intérieur du terminal? –

+0

Got it, le répertoire correct était gfortran -I/usr/local/include -o "nom_exécutable" main.f90 –

0

Vous devez vous assurer que le répertoire contenant fftw03.f03 se trouve dans la liste de recherche du compilateur pour les fichiers d'inclusion.

Localisez ce répertoire (disons qu'il est dans/foo/bar), puis utilisez

gfortran -I /foo/bar -o executable_name main.f90 
+0

Ne sachant pas ce qui est dans fftw03.f03, il pourrait aussi être dangereux de mettre implicitement aucun après. Cependant, je n'ai pas regardé les docs. –

+0

merci pour la réponse, je suis commenti sous Alexander Vogt réponse, il a suggéré de mettre l'inclure après implicite aucune déclaration aussi. –