Открытие / чтение файла .dat в Fortran77 - PullRequest
0 голосов
/ 04 февраля 2012

Я пытаюсь прочитать набор точек в файле .dat и выполнить точки через алгоритм в моем файле .f. Я работал с оператором OPEN:

OPEN(UNIT=1,FILE='POINTS.DAT',FORM='UNFORMATTED')

и для начала пытались распечатать значения в .dat - не работает.

PRINT *, 1

PRINT *, POINTS.DAT

PRINT *, 'POINTS.DAT'

Должен ли я отказаться от попыток распечатать значения? Как я должен индексировать значения в .dat? Должен ли я сделать цикл DO и сделать это n раз по количеству точек данных в моем файле? Как я могу назвать эти значения?

1 Ответ

7 голосов
/ 04 февраля 2012

После открытия вы должны прочитать значения из файла. Вы не можете распечатать их, используя имя файла в операторе печати. Если вы правы, что это двоичный / неформатированный файл, вы используете чтение без формата: read (1) item. Вы можете использовать цикл do и читать по одному элементу за раз или считывать все элементы в массив. Если файл был написан с помощью другой программы на Фортране, вы должны использовать тот же метод (отдельный элемент или массив), который использовался для записи, поскольку файл будет основан на записи. Если файл был написан на другом языке, добавьте access = 'stream' в ваше заявление open, чтобы сообщить Fortran, что у него нет структуры записи, обычно используемой Fortran.

Базовая структура 1:

real :: item  ! or whatever type
open (unit=1, ...
ReadLoop: do
  read (1, end=99) item
  process item...
end do ReadLoop
99 continue

Базовая структура 2:

real, dimension (NUMBER) :: array
open (unit=1,..
read (1) array
process array...

Это базовый Фортран ... вы, вероятно, быстрее добьетесь прогресса, если найдете книгу для изучения. Мне нравится Фортран 90/95, объясненный Меткалфом и Рейдом.

...