2009-12-10 8 views
0

Je suis juste en train de configurer la nouvelle WW3 et j'ai compilé et exécuté le cas de test 'ctest' et ça marche très bien.Wave Watch 3 Fortran Compile Édition

Alors quand je tente de compiler et lier l'un des principaux programmes que je reçois le message d'erreur suivant ..

----------------------------------------------- 
----compiling WAVEWATCH III---- 
----------------------------------------- 

Scratch Directory : /home/ww3/scratch 
Save source codes : yes 
Save listings : yes 
Processing ww3_grid 

--------------------- 
ad3 : processing w3servmd 
      w3servmd.mod 
ad3 : processing w3gdatmd 

     *** compile error *** 
file w3gdatmd.o not found 

mv: cannot stat `w3gdatmd.o': No such file or directory 
make: *** [/home/ww3/obj/w3gdatmod.o] Error 5 

********************** 
*** end of compilation *** 
********************** 

Il convertit w3servmd.ftn correctement w3servmd.f90 puis compile avec succès et produit w3servmd .mod et place ce dans un répertoire/mod

l'étape suivante consiste à compiler w3gdatmd.f90, mais dans le script d'erreur pour ce fichier est dit ..

« ne peut pas w3servmd.mod ouverte pour la lecture , aucun fichier ou répertoire de ce type "

Mais w3servmd.mod existe!

Donc je pense qu'il y a peut-être une erreur dans le code 'comp' avec ça ne pas diriger vers le dossier/mod pour les fichiers .mod.

La chose est dans le « comp » fichier, il déclare ..

« assurez-vous que le point du compilateur dans le répertoire approprié où les modules sont stockés (m_path de $), voir les exemples ci-dessous. »

Mais je ne peux pas voir où cela est dans le code ci-dessous du tout.

Des indices? Merci

Répondre

0

La plupart des compilateurs Fortran> = 90 que je connais créent leurs fichiers de sortie dans le répertoire courant: objet, module et exécutable. Ensuite, des étapes de compilation supplémentaires des fichiers source dans le répertoire trouvent facilement les fichiers de module précédemment créés. Est-ce que le script que vous avez déplacer les fichiers du module dans le répertoire/mod? Ensuite, il s'agit d'une question sur le script ou le compilateur spécifique - comment dire au compilateur qu'il devrait aussi regarder/mod pour les modules. $ M_path est-il déjà défini, car le script y déplace les fichiers? Peut-être suggèrent-ils que vous devriez utiliser une option du compilateur pour que le compilateur regarde dans ce répertoire. gfortran fournit les options -M et -J (équivalent): "Cette option spécifie où placer les fichiers" .mod "pour les modules compilés et est également ajoutée à la liste des répertoires à rechercher par une instruction USE. " Quel compilateur utilisez-vous?

0

Merci M.S.B. Je l'ai compris hier soir avant votre réponse. C'était une simple erreur de ligne de commande de compilation. Je ne disais pas où le compilateur chercherait les fichiers mod, car ils sont dans un répertoire différent. Je l'ai dirigé correctement et tout va bien.

Cheers, Craig