2012-08-15 2 views
3

Fortran에서 모듈을 사용하는 올바른 방법에 대해 매우 좋은 질문/답변 here을 읽었습니다. 모듈에 서브 루틴을 작성하면 코드를 명확히 할 수있을뿐만 아니라 서브 루틴을 명시 적으로 처리 할 수 ​​있습니다.여러 파일에 하나의 fortran 모듈이 있습니다.

제 생각에 모듈은 "mod_exemple.f90"과 같은 단일 파일에 저장해야합니다. 필자가 작성하는 프로그램은 종종 매우 길기 때문에 실제로 여러 가지 서브 루틴을 목적에 따라 정렬하여 모듈에 넣을 수 있습니다. 문제 : 그게 매우 라인의 수백과 함께 긴 모듈 파일을 할 것입니다.

여러 파일로 모듈을 분할 할 수 있습니까? 그게 충고 되니? 왜? 쪼개지는 다른 제안이 있습니까?

답변

8

모듈을 여러 파일로 나누는 것을 권하고 싶습니다. 연습의 표준이 아니며 모든 관련 루틴이 동일한 파일에있는 것보다 읽기/이해가 더 어려울 것입니다. 모듈이 너무 크면 모듈의 논리를 다시 생각해보고 공통 코드 및 유틸리티 루틴을 모듈에 포함시킬 수 없는지 확인하는 것이 좋습니다. 관련 코드를 여러 파일에 분산시키지 않고 잘 문서화 된 단일 파일 모듈 원본을 사용하면 줄 수에 관계없이 최상의 솔루션이됩니다.

+3

동의합니다. 또한 우리 중 일부는 100 줄의 모듈을 '** 매우 ** 길다'라고 말하지 않습니다. 1000s는 그 영예의 대상이 될 수 있습니다. –

1

예, 할 수 있습니다,하지만 당신은 include, 또는 CPP의 #include, 또는 널리

길고 논리적으로 별도의 단위가 동일한에서 생을 마감해야하는 경우 포트란 2003의 기능을 지원하지 않는 서브 모듈을 사용해야합니다 어떤 이유로 든 (하위 모듈은 아직 사용할 수 없습니다.), 별도의 파일을 사용하는 데는 나쁨이 보이지 않으며 include입니다.

+2

정확한 서브 모듈은 Fortran 2003 표준에 속하지 않습니다.이 모듈은 Fortran 2008 표준에 포함 된 기술 보고서 ​​ISO/IEC TR 19767 : 2005 (E)에서 처음 정의되었습니다. 어쨌든, 그들은 여전히 ​​광범위하게 구현되지 않습니다. –

+0

맞습니다.하지만 보통 Fortran 2003과 연결되어있는 것으로 간주됩니다 (예 : Fortran 95/2003에 설명 된 책의 일부 임). 할당 가능한 파생 형식 구성 요소가 Fortran 95에 연결되어있는 것과 같은 방식입니다. –

관련 문제