0

Я совершенно новичок в fortran, а также в программировании (второстепенный опыт). Мне трудно написать код для следующего.Чтение данных из файла в двумерный массив

мне нужно хранить данные в двухмерного массива с использованием данных два входных файлов Затем мне нужно определить размер двух файлов Затем необходимо выбрать переменные из обоего измерений для определенного значения одной переменной , а затем вычислить среднее значение Наконец, запишите результаты в новый файл данных.

Например:

  • Существует два радиозондов файлы данных с давлением, высоты, температуры, значения точки росы с различными данными размеров
  • Необходимо получить средние значения высоты, температуры и точки росы, при удельное давление 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

Давление (гПа) Высота (м) Температура (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, хотя мой случай немного отличается некоторые части могут быть использованы, и это поможет мне с кодировкой. ** Мои входные файлы; Давление (гПа) Высота (м) Температура (C) DewPointTemperature (С) 1006,0 19,0 \t 26,0 20,0 1000,0 \t 74,0 \t 25,2 18,2 .... \t .... \t \t .... \t .... 20.0 26490.0 \t -46.9 -81.9 И есть два входных файла, подобных этому, в том же формате, разных значениях, разное количество строк (записей) – Suranjith

+0

Можете ли вы опубликовать файлы в папке для вставки? – bdforbes

Смежные вопросы