2009-12-10 7 views
0

Я просто создаю новую WW3 и скомпилировал и запустил тестовый пример ctest, и это отлично работает.Wave Watch 3 Fortran Compile Issue

Тогда, когда я пытаюсь собрать и связать один из основных программ, которые я получаю следующее сообщение об ошибке ..

----------------------------------------------- 
----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 *** 
********************** 

Так он преобразует w3servmd.ftn правильно w3servmd.f90, а затем успешно компилируется и производит w3servmd .mod и помещает это в/каталог мод

Следующим шагом является составление w3gdatmd.f90, но в сценарии ошибки для этого файла говорит ..

«не может открыть w3servmd.mod для чтения , нет такого файла или каталога "

Но w3servmd.mod существует!

Так что я думаю, что может произойти ошибка в коде 'comp', чтобы он не направлялся в папку/mod для файлов .mod.

Вещь в «компе» файл, он заявляет ..

«убедитесь, что точка компилятора в соответствующий каталог, в котором модули хранятся ($ m_path), смотрите примеры ниже.»

Но я не вижу, где это находится в коде ниже этого.

Любые подсказки ?? Thanks

ответ

0

Большинство компиляторов Fortran> = 90, которые мне знакомы, создают их выходные файлы в текущем каталоге: объекте, модуле и исполняемом файле. Затем дополнительные шаги компиляции исходных файлов в каталоге легко обнаруживают ранее сделанные файлы модулей. Является ли сценарий, что вы перемещаете файлы модулей в каталог/мод? Тогда это вопрос о скрипте или конкретном компиляторе - как сообщить компилятору, что он должен также смотреть в/mod для модулей. $ M_path уже установлен, так как скрипт перемещает файлы там? Возможно, они предполагают, что вы должны использовать параметр компилятора, чтобы заставить компилятор заглянуть в этот каталог. gfortran предоставляет опции -M и -J (эквивалент): «Этот параметр указывает, куда помещать файлы« .mod »для скомпилированных модулей, а также добавляется в список каталогов для поиска по USE-заявлению. По умолчанию используется текущий каталог «. Какой компилятор вы используете?

0

Thanks M.S.B. Я понял это вчера вечером перед вашим ответом. Это была простая ошибка командной строки компиляции. Я не говорил, где компилятор ищет файлы мод, поскольку они находятся в другом каталоге. Направляли его правильно, и все хорошо.

Cheers, Craig