将数据从文件读取到二维数组中

时间:2014-04-20 17:38:46

标签: arrays multidimensional-array multiple-columns fortran90

我对fortran和编程(小经验)都是全新的。我在编写以下代码时遇到了困难。

我需要使用两个输入文件中的数据将数据存储在二维数组中 然后我需要确定两个文件的大小 然后需要从两个维度中选择一个变量的特定值的变量 然后计算平均值 最后将结果写入新的数据文件。

例如:

  • 有两个无线电探空仪数据文件,其压力,高度,温度,露点值具有不同的数据大小
  • 需要获得高度,温度和露点的平均值,在1000,850和500的特定压力下(两个文件都有这些记录)并写入新文件。

我已经阅读了几本书,但无法掌握我正在寻找的确切内容。你们中的任何人都能给我一些关于编码的见解吗?我真的很感谢你们。

1 个答案:

答案 0 :(得分: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

这应该让你开始......理想情况下,你可以从一个比你描述的更简单的输入文件开始学习基础知识。