2017-04-22 6 views
1
300  do i=1,counter 


open(1,file='Pcow_pd.txt') 
write(1,*),Sw_pd(i), Pcow_pd(i) 
open(2,file='Krw_pd.txt') 
write(2,*),Sw_pd(i), Krw_pd(i) 
open(3,file='Kro_pd.txt') 
write(3,*),Sw_pd(i), Kro_pd(i) 

print*, counter 

end do 
print *,"filled =",filled 

내가 얻을 코드를 주석 한 바와 같이 나는포트란 95 표현의 오류를 누락

Compile error: error 573 - Missing expression

+0

그냥 오타 일 뿐이며 'write (*, *)'뒤에 쉼표가 없어야합니다. 간단한 오타로 투표 마감. 그리고 컴파일러가 여러분이 보여주는 것보다 더 많은 것을 인쇄했다고 확신합니다. 여러분의 질문에 항상 완전한 오류 메시지를 복사하십시오. –

+0

나는 그것을하지만, Sw_pd (i), Krw_pd (i) 출력 할 때 –

+0

루프를 실행하기 전에 파일을 열어야한다. – agentp

답변

2

를 해결할 수없는 기록 라인에서 오류 메시지를 컴파일 할 때, 항목의 목록 이전에는 쉼표가 없을 것 출력. 당신은 단순히 가지고 있어야합니다

등등.

counter 전에 쉼표가 절대적으로 필요하다 후자 라인

print*, counter 

는 서면에 약간의 혼란을 추가 할 수 있습니다. 이것은 아마도 read 사용 방법에 의해 증가 : 두 가지 형태가있다 :

read *, x 
read (*,*) y 

장치의 명시 적 진술이없는 첫 번째 예는 두 번째의 *와 같은 단위를 의미하고 쉼표가 필요합니다. 두 번째는 쉼표가 없어야합니다.

출력 목록에 쉼표가 먼저 있는지 기억하는 간단한 방법 : 형식이 분리되어 있으면 쉼표를 사용하십시오. 단위가 지정되면 안됩니다.

+0

네, 그 오류 수정,하지만 내가 Pcow_pd.txt를 실행하고 다른 txt 파일이 비어 있습니다. –

+0

@MaykPire 다른 질문에 대해서는 다른 문제입니다. 새 질문을 열고 전체 코드, 입력 파일 및 기타 모든 세부 정보를 보여줍니다. 단위에 대해 다른 숫자를 사용하십시오. 1,2,3이 아니라 10보다 큰 숫자. –

+0

@MaykPire는 블라디미르 F가 말한 것처럼 다른 문제입니다. 문제를 진단 할 수있는 충분한 정보가 없으므로 완전한 예제 ([mcve] 참조)로 작업해야하며, 도움이되지 않으면 답변을 검색 한 다음 다른 질문을하십시오. 한가지 확인해보십시오. 출력을보기 전에 파일을 닫으십시오 (완료하는 프로그램이 그렇게 할 것입니다)? – francescalus