Может ли Fortran читать байты напрямую из двоичного файла?

У меня есть двоичный файл, который я хотел бы прочитать с помощью Fortran. Проблема в том, что он написан не на Фортране, поэтому в нем нет индикаторов длины записи. Так что обычное неформатированное чтение с Фортрана не сработает.

У меня была мысль, что я мог бы быть подлым и прочитать файл как отформатированный файл, байт -на -байт (или 4 байта на 4 байта, действительно )в массив символов, а затем преобразовать содержимое символов в целые числа и числа с плавающей запятой с помощью передаточной функции или страшного оператора эквивалентности. Но это не работает :Я пытаюсь читать по 4 байта за раз, и, согласно выходным данным POS из инструкции inquire, чтение пропускает примерно 6000 байтов или около того, а массив символов загружается мусором..

Так что это не ход. Есть ли какая-то деталь в этом подходе, которую я забыл? Или есть принципиально другой и лучший способ сделать это на Фортране? (Кстати, я также пробовал читать массив integer*1и массив байтов. Несмотря на то, что эти коды компилировались, когда дело доходило до инструкции чтения, код давал сбой.)

7
задан Chris 20 July 2012 в 08:28
поделиться