с примерами на С и Фортране. Вероятно, есть пример, очень близкий к тому, что вы пытаетесь сделать. При сборке HDF5 обязательно включите поддержку Fortran. Это отключено по умолчанию.

шему опыту, в Fortran 90, как лучше всего хранить большие массивы в выходных файлах? Ранее я пытался записывать большие массивы в текстовые файлы ASCII. Например, я бы сделал что-то вроде этого (благодаря рекомендации в нижней части страницыВ Fortran 90, каков хороший способ записи массива в текстовый файл построчно?):

PROGRAM testing1
  IMPLICIT NONE
  INTEGER :: i, j, k
  INTEGER, DIMENSION(4,10) :: a

  k=1
  DO i=1,4
    DO j=1,10
      a(i,j)=k
      k=k+1
    END DO
  END DO

  OPEN(UNIT=12, FILE="output.txt", ACTION="WRITE", STATUS="REPLACE")
  DO i=1,4
    DO j=1,10
      WRITE(12, "(i2,x)", ADVANCE="NO") a(i,j)
    END DO
    WRITE(12, *)
  END DO
  CLOSE(UNIT=12)
END PROGRAM testing1

Это работает, но, как указано в самом верхнем ответе наВ Fortran 90, каков хороший способ записи массива в текстовый файл построчно?запись больших массивов в текстовые файлы очень медленная и создает файлы, размер которых несколько больше, чем необходимо. Вместо этого автор рекомендовал записывать в неформатированный двоичный файл на языке Фортран, используя что-то вроде:

PROGRAM testing2
  IMPLICIT NONE
  INTEGER :: i, j, k
  INTEGER, DIMENSION(4,10) :: a

  k=1
  DO i=1,4
    DO j=1,10
      a(i,j)=k
      k=k+1
    END DO
  END DO

  OPEN(UNIT=13, FILE="output.dat", ACTION="WRITE", STATUS="REPLACE", &
      FORM="UNFORMATTED")
  WRITE(13) a
  CLOSE(UNIT=13)
END PROGRAM testing2

Это, кажется, работает, и действительно намного быстрее и приводит к меньшим размерам файлов, как и обещал ответВот, Однако что мне делать, если я хотел бы иметь возможность позже работать с данными, хранящимися в двоичном коде Фортрана (например, output.dat выше), и анализировать их содержимое? Например, что если я хочу открыть массив, хранящийся в двоичном файле, в программе, такой как Microsoft Excel?

Когда я упоминал Matlab в моем предыдущемПочтаВ ответ было предложено открыть двоичный файл в виде шестнадцатеричного файла, выяснить и извлечь из него записи. Но я нервничаю из-за того, что попадаю в глубокую воду, так как у меня нет предыдущего опыта шестнадцатеричного слежения. Когда я спросил на доске Matlab (здесь:http://www.mathworks.com/matlabcentral/answers/12639-advice-on-reading-an-unformatted-fortran-binary-file-into-matlab) о чтении файлов с Фортрана в matlab, один из тех, кто там предложил, может легко использовать поток Фортрана. Но является ли поток Fortran (то есть, используя директивуACCESS="STREAM" вOPEN команда), вероятно, будут похожи по времени и размеру файла на текстовый файл ASCII, который я создал в моем первом примере выше?

Или вы знаете, существует ли какое-либо другое программное обеспечение, которое может автоматически считывать двоичные файлы Фортрана в какую-то удобочитаемую форму? (Или вы знаете какие-нибудь хорошие учебники по шестнадцатеричному обучению или потоку на Фортране?)

Большое спасибо за уделенное время.

Ответы на вопрос(3)

Ваш ответ на вопрос