2014-06-11 1 views
3

저는 Fortran (f90)에 피가 묻은 초보자입니다. 명백하게 쉬운 문제가 심각한 두통을 유발합니다 ... 도와 주셔서 감사합니다. 하나 :Fortran : 파일에 열을 추가하십시오 (즉 다양한 양의 수평 공백 건너 뛰기)

내 코드는 루프를 실행하고 데이터를 처리하여 파일에 기록합니다. 루핑이 끝날 때까지 같은 파일의 열에 해당 데이터를 기록하고 싶습니다.

OPEN (unit=11,file=filename // '.csv') 
WRITE(11,'(i4,A1,f10.6)') NUM4 , tab, NUMfloat10_6 
CLOSE(11) 

이 코드는 단일 데이터 세트를 저장하는 데 적합합니다. "탭"은 char (9)로 정의됩니다. filename은 스크립트 시작 부분에 사용자가 지정합니다.

루프 모드에서 "A1"과 다른 NUMfloar10_6 ("f10.6")으로 다른 탭을 추가하고 싶습니다. 그러나, 나는 그래서 이런 걸 할 수 없습니다 정수로 정의 K와

OPEN (unit=11,file=filename // '.csv') 
WRITE(11,'(Tk,i4,A1,f10.6)') NUM4 , tab, NUMfloat10_6 
CLOSE(11) 

15. 어떻게 내가 그 문제를 해결 할 * 루프의 수의 증가? 건너 뛸 공백을 알지 못하고 파일에 열을 어떻게 추가합니까?

당신이 ifort를 사용하는 경우
+0

그냥 열 현명한, 당신도해야합니다 파일을 열고에 추가 할 수 없습니다 줄 단위로 파일을 읽거나, 데이터를 추가하거나, 줄을 쓰거나, 서식이 지정된 직접 모드를 사용합니다. – steabert

+0

http://stackoverflow.com/questions/23834138/write-array-to-file-by-columns#comment36674594_23834138 – agentp

답변

0

, 단지 추가 괄호 <k>

k = 2 
    WRITE(*,'(T<k>,A)'), "Hello World!" 

    k = 6 
    WRITE(*,'(T<k>,A)'), "Hello World!" 

    k = 16 
    WRITE(*,'(T<k>,A)'), "Hello World!" 

가 생성됩니다

Hello World! 
    Hello World! 
       Hello World! 
+2

하지만 Fortran은 아닙니다. – IanH

+0

[ifort] (https://software.intel.com/sites/products/documentation/doclib/stdxe/2013/composerxe/compiler/fortran-mac/GUID-DEAE9C30-1001-49DF-AF4E-0BD5802C699F)로 컴파일되었습니다. htm), 페이지 끝의 예를 확인하십시오. – Peter

+1

해당 기능에 대한 설명이 녹색임을 유의하십시오. 확장 기능입니다. 명령 줄에/stand (또는 stand)를 추가하면 ifort가 불평해야합니다. – IanH