Spec-Zone.ru › GNU Fortran 6

6.1.15 Спецификатор CONVERT

GNU Fortran позволяет преобразовывать данные в формате без записи между представлениями little-endian и big-endian, чтобы упростить перемещение данных между различными системами. Преобразование может быть указано с помощью спецификатора CONVERT в операторе OPEN. См. GFORTRAN_CONVERT_UNIT для альтернативного способа указания формата данных через переменную окружения.

Допустимые значения для CONVERT:

  • CONVERT='NATIVE' Использовать родной формат. Это значение по умолчанию.
  • CONVERT='SWAP' Производить обмен между little-endian и big-endian.
  • CONVERT='LITTLE_ENDIAN' Использовать представление little-endian для файлов без записи.
  • CONVERT='BIG_ENDIAN' Использовать представление big-endian для файлов без записи.

Использование опции может выглядеть так:

open(file='big.dat',form='unformatted',access='sequential', &
     convert='big_endian')

Значение преобразования можно запросить, используя INQUIRE(CONVERT=ch). Возвращаемые значения 'BIG_ENDIAN' и 'LITTLE_ENDIAN'.

CONVERT работает между big-endian и little-endian для значений INTEGER всех поддерживаемых типов и для REAL на системах IEEE с типами 4 и 8. Преобразование между различными типами «расширенной двойной точности» на разных архитектурах, таких как m68k и x86_64, которые GNU Fortran поддерживает как REAL(KIND=10) и REAL(KIND=16), вероятно, не будет работать.

Обратите внимание, что значения, указанные через переменную среды GFORTRAN_CONVERT_UNIT, переопределят спецификатор CONVERT в операторе открывания. Это сделано для предоставления управления форматами данных пользователям, у которых нет исходного кода их программы.

Использование любого представления, отличного от родного, для данных без записи влечёт за собой значительный прирост времени выполнения. Если скорость в этой области важна, лучше всего использовать это только для данных, которые необходимо переносить.

Далее: OpenMP, Предыдущее: Указатели Cray, Вверх: Реализованные расширения в GNU Fortran [Оглавление][Индекс]

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-6.4.0/gfortran/CONVERT-specifier.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API