2009-12-10 9 views
0

새로운 WW3을 설정하고 테스트 케이스 'ctest'를 컴파일하고 실행하면 정상적으로 작동합니다.웨이브 워치 3 포트란 컴파일 문제

그럼 난 시도하고 컴파일 및 링크가 나는 다음과 같은 오류 메시지의 주요 프로그램 중 하나 ..

----------------------------------------------- 
----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.f90 올바르게 w3servmd.ftn 변환 한 후 성공적으로 컴파일하고 w3servmd 생성 할 때 .MOD과/모드 디렉토리에있는 곳이

다음 단계는 w3gdatmd.f90를 컴파일하는 것이지만, 읽기

"열 수 없습니다 w3servmd.mod입니다 말씀이 파일에 대한 오류 스크립트 ..에서 , 그런 파일이나 디렉토리가 없습니다 "

하지만 w3servmd.mod가 있습니다!

그래서 나는 'mod'파일에 대한/mod 폴더로 보내지 않는 'comp'코드에 오류가 있다고 생각하고 있습니다.

것은

는 "모듈이 ($의 m_path) 저장되어있는 적절한 디렉토리에 있는지 컴파일러 점을 아래의 예를 참조하십시오."있습니다 .. '완'은 상태 파일에

하지만이 코드 아래의 코드는 어디에서 볼 수 없습니다.

모든 힌트 ?? 감사합니다

답변

0

가장 익숙한 Fortran> = 90 컴파일러는 현재 디렉토리에서 객체, 모듈 및 실행 파일의 출력 파일을 만듭니다. 그런 다음 디렉토리에있는 소스 파일의 추가 컴파일 단계를 통해 이전에 만들어진 모듈 파일을 쉽게 찾을 수 있습니다. 모듈 파일을/mod 디렉토리로 옮기는 스크립트가 있습니까? 다음은 스크립트 나 특정 컴파일러에 대한 질문입니다. 컴파일러에게/mod에서 모듈을 찾아야한다는 것을 알려주는 방법입니다. 스크립트가 파일을 이동시키기 때문에 $ m_path가 이미 설정되어 있습니까? 어쩌면 그들은 컴파일러가이 디렉토리를 들여다 볼 수 있도록 컴파일러 옵션을 사용해야한다고 제안했을 것입니다. gfortran은 -M 및 -J 옵션을 제공합니다 : "이 옵션은 컴파일 된 모듈에 '.mod'파일을 저장할 위치를 지정하며 USE 문으로 검색 할 디렉토리 목록에도 추가됩니다. 기본값은 현재 디렉토리입니다 . " 어떤 컴파일러를 사용하고 있습니까?

0

감사합니다. 네가 대답하기 전에 어젯밤에 그걸 알아 냈어. 이것은 간단한 컴파일 명령 행 오류였습니다. 다른 디렉토리에 있기 때문에 컴파일러가 mod 파일을 찾는 위치를 말하지 않았습니다. 올바르게 지시하면 모든 것이 좋습니다.

건배, 크레이그