2015-01-12 2 views
0

Intel Visual Fortran을 사용합니다. 내가 다루고있는 문제는 많은 매개 변수를 가지고 있으며 반복되는 선언과 각 루틴이 시작될 때 초기화를 피하고자합니다.포트란에서 모듈을 사용하여 초기화

MODULES를 사용하여 이러한 매개 변수를 초기화 할 수있는 방법이 있습니까?
물론 대답은 YES이지만 초기화 기능에는 일부 내장 함수가 허용되지 않습니다. 여기
컴파일러 날이 오류 나타낸다

MODULE mod IMPLICIT NONE REAL, PARAMETER :: x = SQRT (4) END MODULE PROGRAM prog USE mod IMPLICIT NONE PRINT *, x END PROGRAM 

일단 컴파일 간단한 샘플 코드이다 ABS ()이 에러가 따르지를 이용하여 긴하지만

Error #6362: The data types of the argument(s) are invalid. 
[SQRT] Source1.f90 

, 그러나 SIN () 않습니다.

답변

4

내장형 부동 소수점 인수가 sqrt (및 sin) 필요합니다. 부동 소수점 및 정수 구현은 모두 abs입니다.

44.으로 바꾸면 제대로 작동합니다.

+0

신! 이 얼마나 어리석은 질문! 죄송합니다. 신속한 회신에 감사드립니다. – Shaqpad

+1

이 경우 인텔 컴파일러 오류가 발생할 수 있다고 생각합니다. 그냥 gfortran에서 훨씬 더 명시 적으로 발생했습니다 :). –

+0

생산 코드에서 KIND로 REAL을 정의해야합니다. – Fortranner

관련 문제