2017-10-21 8 views
0

Watcom Fortran에서 gfortran으로 작업 코드를 마이그레이션하려고합니다. 열린 성명서가 있습니다 :Watcom Fortran에서 gfortran으로 마이그레이션하고이 오류를 이해하지 못합니다.

OPEN (UNIT = oufile, 
*  FILE = OUPATH, 
*  ACTION = 'WRITE', 
*  ACCESS = 'SEQUENTIAL', 
*  STATUS = 'UNKNOWN', 
*  CARRIAGECONTROL = 'YES', 
*  BLOCKSIZE = 80, 
*  FORM = 'FORMATTED', 
*  IOSTAT = OPERR, 
*  ERR  = 400) 

예, F77 스타일입니다. 이 물건은 공룡이다. *는 연속 문자입니다. 내가 gfortran 함께 컴파일이 오류를 얻을 때 :

 *  STATUS = 'UNKNOWN', 
           1 
Error: Syntax error in OPEN statement at (1) 
.f(158,32): error : Syntax error in OPEN statement. 

나는 쉼표에 토하고 이유에 난처한 상황에 빠진입니다. 어떤 도움을 주셔서 감사합니다.

+0

이전 데이터 파일과의 호환성이 필요합니까? –

답변

3

CARRIAGECONTROL은 OPEN의 표준 키워드가 아니며 BLOCKSIZE도 아닙니다. 시작하는 것을 모두 제거하고 얻은 것을보십시오. 그런 다음 gfortran 설명서를 읽고 적절한 대체품이 있는지 확인하십시오. 당신은 아마 할 수있는 것없이 블로킹을 할 수 있습니다. - 저는 gfortran이 전통적인 Fortran 캐리지 컨트롤을 처리하는 방법 (특히 삭제 된 기능이므로)을 확실하게 알지 못합니다.

+1

최근 gfortran은 컴파일러 옵션 -fdec – tim18

+1

을 사용하여 carriagecontrol 지원을 추가했습니다. CARRIAGECONTROL과 BLOCKSIZE는 모두 DEC-heritage 컴파일러 (DEC/Compaq/Intel (하지만 'YES'는 컴파일러가 CARRIAGECONTROL에서 허용하는 값이 아닙니다.)에 의해 인식되는 키워드입니다. CARRIAGECONTROL = FORTRAN '옵션을 @ tim18 언급했다. 그 gfortran에 대해 불평하지만 쫒아 무엇을 쉼표가 아니었다는 것을 유의해야합니다. –

+0

출력 파일을 소모하는 소프트웨어 알면, 확실하게 CARRIAGECONTROL 필요했습니다. BLOCKSIZE는 어리석은 이유로도 문제가 될 것입니다. 감사합니다, @ tim18 컴파일러 옵션입니다. –