0

저는 fortran과 프로그래밍에도 전혀 새로운 기능입니다 (사소한 경험). 나는 다음과 같은 코드를 작성하는 데 어려움이있다.파일에서 2 차원 배열로 데이터 읽기

개의 입력 파일이어서 그때 두 차원에서 변수를 선택해야 두 파일 의 크기를 결정 필요로부터 이차원 배열 데이터를 사용 데이터를 저장할 필요 하나의 변수의 특정 값에 대해 다음에 평균을 계산하십시오. 마지막으로 결과를 새 데이터 파일에 씁니다.

예 :

  • 압력, 고도, 온도, 서로 다른 데이터와 노점 값에,
  • 높이, 온도, 이슬점에 대한 평균 값을 얻기 위해 필요한 크기의 두 개의 라디오 존데 데이터 파일이 1000, 850 및 500의 압력 (두 파일 모두이 레코드가 있음)을 작성하고 새 파일에 기록하십시오.

나는 두 권의 책을 읽었지만 내가 찾고있는 정확한 것을 파악할 수 없었다. 누구든지 코딩에 대한 통찰력을 줄 수 있습니까? 너희들 정말 고마워.

+1

입력 파일의 형식은 어떻게 지정됩니까? – bdforbes

+0

다음은 파일에서 읽는 방정식의 예입니다. http://stackoverflow.com/questions/8828377/reading-data-from-txt-file-in-fortran – bdforbes

답변

0

코드를 다음과 같이 보일 것입니다 :

program main 
    implicit none 

    real::height(100) 
    integer::i 

    open(unit=16, file='height.dat') 

    do i = 1, 100 
     read(16, *) height(i) 
    enddo 

    close(16) 

    open(unit=16, file='mean_height.dat') 

    write(16, *) sum(height)/100 

    close(16) 

end program 

은 한 줄에 하나의 높이 값을 height.dat라는 이름의 파일이 가정, 100 선이 총. 100 높이를 읽은 다음 평균 높이를 파일 mean_height.dat에 씁니다. 분명히 이것을 수정해야합니다. 예를 들어, 파일에 100 선이 알 수 없습니다, 그래서 당신은 당신이 읽은 값에 대한 allocatable 배열을 사용해야합니다 : 이것은 가야

program main 
    implicit none 

    real,allocatable::height(:) 
    integer::i, N 

    !Code that figures out how many lines there are 
    !... 

    allocate(height(N)) 

    open(unit=16, file='height.dat') 

    do i = 1, N 

당신은 시작 ... 이상적으로 당신은 기본을 배우기 위해 설명하는 것보다 간단한 입력 파일로 시작할 수 있습니다.

+0

압력 (hPa) 높이 (m) 온도 (C) 내 경우 일부 부품을 사용할 수 있으며,이 코딩을 도와 것이다 약간 차이가 있지만 DewPointTemperature (C) 1006.0 19.0 26.0 20.0 1000.0 74.0 25.2 18.2 942.0 592.0 21.2 17.1 – Suranjith

+0

**, bdforbes @ 주셔서 감사합니다. ** 을 내 입력 파일; 압력 (hPa) 높이 (m) 온도 (C) DewPointTemperature (C) 1006.0 19.0 26.0 20.0 \t \t 1000.0 74.0 25.2 18.2 \t .... \t .... \t \t .... \t .... 20.0 26490.0 \t -46.9 -81.9 그리고 같은 형식, 다른 값, 다른 라인 수 (레코드)와 같은 두 개의 입력 파일이 있습니다 – Suranjith

+0

파일을 붙여 넣을 수 있습니까? – bdforbes