ОБЪЕДИНЕННЫЙ   ИНСТИТУТ   ЯДЕРНЫХ   ИССЛЕДОВАНИЙ
lit БИБЛИОТЕКА   ПРОГРАММ   JINRLIB

UFF2UFF - программа преобразования файлов бесформатных данных
для разных фортранных компиляторов


Автор: А.П.Сапожников
eng
Вы
counter
посетитель.

Язык: Паскаль/Delphi


Каждый пользователь Фортрана может столкнуться с проблемой несовместимости файлов бесформатных данных.
Вот типичная жалоба:

'У меня есть 2 программы.
Программа А записывает данные в файл бесформатными операторами WRITE(1)...
Программа Б читает этот файл такими же операторами READ(1)...
Вчера все работало, а сегодня я пересобрал программу Б, использовав другой компилятор, и все сломалось!'

Дело тут в том, что файл данных, открытый с параметром FORM=UNFORMATTED, на самом деле не такой уж бесформатный: логические записи снабжаются служебной информацией, и эта служебная информация различна у разных компиляторов, даже если они живут в одной и той же машине! Проблема может стать весьма серьезной, если текст программы А недоступен или утерян, а перейти на новый компилятор надо позарез.

Вот для таких случаев Вам и может пригодиться преобразователь файлов бесформатных данных. Управление достаточно простое: Вы указываете имена исходного и целевого файлов, их типы, после чего жмете кнопку "Start".

Немного о типах файлов:
  • MicroSoft Fortran 5.xx квантует каждую логическую запись на куски длиной не более 128 байтов, предваряя каждый такой кусок одним служебным байтом.
  • WatCom Fortran квантует каждую логическую запись на куски длиной не более 1024 байтов, обрамляя каждый такой кусок четырьмя служебными байтами.
  • MicroSoft PowerStation Fortran, он же впоследствии Visual DEC Fortran, он же впоследствии Compaq Fortran, по-простому добавляет перед и после логической записи по 4 байта, содержащих ее длину.
  • Lahey Fortran пытается здесь сэкономить служебные байты, если длина записи мала, используя довольно хитрый алгоритм.

Автоматически распознать тип исходного файла удается не всегда, поэтому желательно все-таки знать, каким фортраном была компилирована программа, его записавшая. Что касается целевого файла, то здесь мы добавили возможность писать его как Binary, т.е. вообще безо всякой служебной информации.

Архив программы с исходными текстами и .exe-файлом.




home up e-mail