2017-09-21 2 views
0

저는 현재 매우 잘 주석 처리되지 않은 fortran에 내장 된 mutliscale 시뮬레이션 프로세스를 이해하고 포트란에 대한 지식이 부족하여이 작업을 어렵게 만들고 있습니다. 나는 주로 포트란 읽기 명령에 관한 한 문장을 이해하는 데 문제가있다. 성명의 골격은 아래와 같습니다. Fortran 여러 변수로 읽음

read(somestring, *, iostat = iospara) outstring, & 
(someint, somearray(index), index = 1, statenum) 

지금 입력 파일로부터 판독 및 형태를 갖는다 somestring : 숫자의 한쌍의 입력 파일의 다른 행에서 판독 statenum에 따라

'label  1 2' 

.

'label  1 2 2 2' 

내 질문은 출력 변수 목록에서 괄호가 읽기 문에 영향을 미치지 않는 방법입니다 예를 들어 statenum = 2 다음 somestring 양식이 있다면? 해당 될 것입니다 :

(someint, somearray(index), index=1, statenum) 

READ의 문서를 통해이 정보를 찾을 수 없었습니다. 이것은 fortran 2008에 나와 있습니다. 코드가 너무 큽니다.이 문을 별도로 다시 작성하려는 시도가 성공하지 못했기 때문에 실제적인 예제를 제공 할 수도 없습니다.

답변

0

이것은 암시적인 do이며,이 사이트에 대한이 질문에 대한 많은 질문과 답변을 찾을 수 있습니다. 때로는 사람들이 암시적인 do라고도하지만 표준 이름이 아닙니다.

그것은 인덱스 전에 일부를 반복한다 : someint, somearray(index)1에서 statenum 값에 인덱스 i의 값.

같은 입력리스트 변환

: statenum = 1위한

outstring, someint, somearray(1) 

, 그리고 statenum = 2위한

outstring, someint, somearray(1), someint, somearray(2) 

한다.

someint은 동일한 입력 목록에 두 번 나타나지 않아야하며 그렇지 않은 경우 값은 정의되지 않습니다.

+0

고맙습니다. 저는이 성명서를 참조하는 방법을 알아 내려고 노력하고 있었고 문제가있었습니다. 도와 주셔서 감사합니다. –

+0

'someint'가 정의되지 않은 이유는 무엇입니까? – francescalus

+0

어쩌면 ... 때때로 나는 잘못된 것을 기억합니다. –