2012-10-27 5 views
4

새로운 포트란 (막 시작 오늘)에 자연 로그에 문제가 갖는포트란 자연 로그의 오류

x = log (x) 
     1 
Error: Symbol at (1) is not appropriate for an expression 

다른 고유 기능이 잘 작동 :

PROGRAM log 
IMPLICIT NONE 
REAL :: x 

PRINT *, "Enter a number:" 
READ *, x 

x = log (x) 

PRINT *, "The natural log of x is:", x 

END PROGRAM log 

이 컴파일러는 오류를 던지고 유지를 . 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

7

문제는 보통 log 인 프로그램의 이름으로 기호 log (일반적으로 표준 라이브러리 수학 함수를 나타냄)의 정의를 섀도우 (오버라이드)했기 때문입니다. 당신이 logtest, 말에 프로그램의 이름을 변경하는 경우 :

PROGRAM logtest 
... 
END PROGRAM logtest 

을 예상대로 프로그램이 작동하는지 확인할 수 있습니다.

+0

아! 바보 야. 감사. –

+0

아니요, 전혀 다른 언어에서 일어날 일이 아닙니다 (음영, 예, 프로그램 이름 제외). 대부분의 언어에는 프로그램 이름조차 없습니다. –

+0

우스운 이야기지만, 저에게 난처한 경험이있었습니다. 1985 년 이후로 PROGRAM 문을 사용하지 않았기 때문에 추측됩니다. 네임 스페이스에서 하나의 기호를 가져 오는 것 이외의 목적을 수행합니까? – agentp