2012-01-09 5 views
0

저는 FORTRAN에 초보자입니다. 인텔 포트란에서 작성된 일부 FORTRAN 프로그램이 있으며 이제는 gfortran을 사용하여 컴파일합니다.FORTRAN 오류 - 'jfix'에 대한 정의되지 않은 참조

하나의 서브 루틴은 JFIX() 함수를 사용합니다. 나는 다음과 같은 오류가 발생하면 complie.

undefined reference to 'jfix_' 

서브 루틴은 External::JFIX 같은 상단에이 내장 함수를 참조

이 사람이 나에게이 문제를 해결하는 데 도움이 할 수있다?

+0

내재적 인 기능에는 '외부 :: jfix'선언 (예 :)이 필요 없습니다. 'external' 문은 프로그램이나 모듈 외부에서 정의 된 루틴을 나타 내기 위해 사용됩니다. 흔히 라이브러리에 포함 된 루틴을 참조하는 데 사용됩니다. 그래서, 제 추측은 (답변에서 언급 한 것처럼)'JFIX'는 인텔이 작성한 확장 라이브러리의 일부입니다. – Chris

답변

2

JFIX는 FORTRAN의 Intel 확장입니다. 인수를 INTEGER (4)로 변환합니다.

GNU FORTRAN과 동일한 기능을 제공 할 수도 있고 직접 제공해야 할 수도 있습니다.

인텔 FORTRAN 언어 참조는 웹의 다양한 위치에서 사용할 수 있습니다. 여기에 one입니다.

+0

감사합니다. JFIX()에 상응하는 함수를 찾았습니다. 제 경우에는 INT (A)를 사용해야했습니다. –

0

JFIX가 필요할 수도 있지만 JFIX는 정수 대신 정수로 변환 할뿐만 아니라 정수 (4)에 대한 다른 모든 종류의 항목도 변환하므로주의해야합니다. 인텔 포트란 레퍼런스 가입일

그것을 변환 here 발견

INTEGER (1) INTEGER (2) INTEGER (4) INTEGER (8) (8) REAL (4) REAL, REAL (16), COMPLEX (4), COMPLEX (8), COMPLEX (16)

정수 (4) 단지했다

는 미래의 독자들에게 대답 : 그것은 동안 귀하의 경우 여기 INT에 상응하는, 그것은 n입니다 어디서나 사건을

Fortran을 처음 접했을 때 한 가지 더 자세히 설명 드리겠습니다. 괄호 사이의 숫자는 변수의 정밀도 종류입니다. 예를 들어, REAL (4)는 "기존"아키텍처의 단순한 정밀도, REAL (8) 배정 밀도입니다.

관련 문제