2008 г., 472 с.
Данная книга посвящена описанию последней версии Intel Visual Fortran 9.1 (который включает Fortran 90/95, элементы Fortran 2003 и многочисленные фирменные расширения этих стандартов), широко распространенной в России. Программный продукт, описанный в этой книге, обеспечивает инструментальные средства для разработчиков программного обеспечения Windows, для создания приложений, которые управляются процессорами Intel IA-32, процессорами Intel с расширенной памятью технологии Intel 64 (Intel EM64T) и процессорами Intel Itanium 2. Оптимизация включает поддержку Streaming SJMD Extensions 2 S1MD 2 (SSE2) в процессорах Intel Pentium 4 и Intel Pentium M, Streaming SIMD Extensions 3 SIMD 3 (SSE3) в процессорах Intel Pentium 4 и Intel Core с поддержкой SSE3 и конвейерной обработкой программного обеспечения в процессорах Intel Itanium 2. Межпроцедурная оптимизация (IPO) и управляемая конфигурацией оптимизация (PGO) может обеспечить большее прикладное значение. Поддержка компиляторов Intel обеспечивала кодовую разработку через поддержку ОрепМР и автопараллелизм. Стандартное издание этого продукта состоит из компилятора Intel Visual Fortran, отладчика Intel, интеграции в визуальные среды разработки Microsoft, кодовое покрытие и тестовых инструментальных средств установления приоритетов. Профессиональное издание включает все из стандартного издания и библиотеку Fortran IMSL 5.0. Книга в первую очередь предназначена для научных сотрудников, занимающихся математическим моделированием задач на языке Fortran, но может полезна студентам, аспирантам и инженерам в их повседневной работе.
Предисловие
Введение
Языковое соответствие стандартов
Языковая совместимость
Новые языковые возможности
Возможности Fortran 2003
Глава 1. Структура программы, знаки и исходные формы
1.1. Структура программы
1.2. Утверждения
1.3. Наборы символов
1.4. Форматы исходного текста
1.5. Фиксированные и табулированные формы
1.6. Индикатор утверждения отладки
1.7. Исходный текст, используемый для всех исходных форм
Глава 2. Типы данных, константы и переменные
2.1. Встроенные типы данных
2.2. Логические типы данных
2.3. Символьный тип данных
2.4. Двоичные, восьмеричные, шестнадцатеричные и холеритовые константы
Глава 3. Выражения и операторы присваивания
3.1. Выражения
3.2. Операторы присваивания
Глава 4. Описания
4.1. Типы утверждений объявления
4.2. Утверждения объявления на массивы
4.3. Атрибут и утверждение ALLOCATABLE
4.4. Атрибуты и утверждения AUTOMATIC и STATIC
4.5. Утверждение COMMON
4.6. Утверждение DATA
4.7. Атрибут и утверждение DIMENSION
4.8. Утверждение EQUIVALENCE
4.9. Атрибут и утверждение EXTERNAL
4.10. Утверждение IMPLICIT
4.11. Атрибут и утверждение INTENT
4.12. Атрибут и утверждение INTRINSIC (встроенный)
4.13. Утверждение NAMELIST :
4.14. Атрибут и утверждение OPTIONAL
4.15. Атрибут и утверждение PARAMETER
4.16. Атрибут и утверждение POINTER
4.17. Атрибуты и утверждения PRIVATE и PUBLIC
4.18. Атрибут и утверждение PROTECTED
4.19. Атрибут и утверждение SAVE
4.20. Атрибут и утверждение TARGET
4.21. Атрибут и утверждение VOLATILE (изменчивый)
Глава 5. Динамическое распределение
5.1. Утверждение ALLOCATE
5.2. Утверждение DEALLOCATE
5.3. Утверждение NULLIFY
Глава 6. Управление выполнением
6.1. Операторы ветвления
6.2. Утверждение CALL
6.3. Конструкции CASE
6.4. Утверждение CONTINUE
6.5. Конструкции DO
6.6. Утверждение DO WHILE
6.7. Утверждение CYCLE
6.8. Утверждение EXIT
6.9. Утверждение END
6.10. Конструкция и .утверждение IF
6.11. Утверждение PAUSE
6.12. Утверждение RETURN
6.13. Утверждение STOP
Глава 7. Программные единицы и процедуры
7.1. Основная программа
7.2. Модули и процедуры модуля
7.3. Ссылки модуля
7.4. Утверждение USE
7.5. Блок данных - программная единица
7.6. Функции, подпрограммы и функции-утверждения
7.7. Общие правила для подпрограмм функции и подпрограммы
7.8. Подпрограммы
7.9. Внешние процедуры
7.10. Внутренние процедуры
7.11. Связывание параметров
7.12. Утверждение CONTAINS
7.13. Утверждение ENTRY
Глава 8. Встроенные процедуры
8.1. Ключевые параметры во встроенных процедурах
8.2. Краткий обзор встроенных процедур
8.3. Встроенные подпрограммы
8.4. Поразрядныефункции
8.5. Описания встроенных процедур
Глава 9. Утверждения ввода/вывода передачи данных
9.1. Записи и файлы
9.2. Компоненты утверждений передачи данных
9.3. Список управления ввода/вывода
9.4. Спецификатор устройства
9.5. Спецификатор формата
9.6. Спецификатор списка имен
9.7. Спецификатор записи
9.8. Спецификатор состояния ввода/вывода
9.9. Спецификаторы перехода
9.10. Спецификатор усовершенствования
9.11. Спецификатор счетчика символов
9.12. Списки ввода/вывода
9.13. Простые элементы списка в списках ввода/вывода
9.14. Неявные DO-списки в списках ввода/вывода
9.15. Утверждения READ
9.16. Утверждение ACCEPT
9.17. Утверждения WRITE
9.18. Утверждения PRINT и TYPE
9.19. Утверждение REWRITE
Глава 10. Форматирование ввода/вывода
10.1. Спецификации формата
10.2. Описатели редактирования данных
10.3. Форматы для описателей редактирования данных
Глава 11. Утверждения ввода/вывода файловых операций
11.1. Утверждение BACKSPACE
11.2. Утверждение CLOSE
11.3. Утверждение DELETE
11.4. Утверждение ENDFILE
11.5. Утверждение INQUIRE
11.6. Утверждение OPEN
11.7. Утверждение REWIND
Глава 12. Утверждения управления компиляцией
12.1. Утверждение INCLUDE
12.2. Утверждение OPTIONS
Глава 13. Директивы расширенной компиляции
13.1. Правила синтаксиса для директив компилятора
13.2. Директива ALIAS
13.3. Директива ASSUME ALIGNED13.4. Директива ATTRIBUTES
13.5. Директивы DECLARE и NODECLARE
13.6. Директивы DEFINE и UNDEFINE
13.7. Директива DISTRIBUTE POINT
13.8. Директива FLXEDFORMLINESIZE
13.9. Директивы FREEFORM и NOFREEFORM
13.10. Директива IDENT
13.11. Директивы 1F и IF DEFINED
13.12. Директива INTEGER
13.13. Директива IVDEP
13.14. Директива LOOP COUNT
13.15. Директива MEMREF CONTROL (только 164)
13.16. Директива MESSAGE
13.17. Директива OBJCOMMENT
13.18. Директива OPTIONS
13.19. Директива PACK
13.20. Директивы PARALLEL и NOPARALLEL
13.21. Директивы PREFETCH и NOPREFETCH
13.22. Директива PSECT
13.23. Директива REAL
13.24. Директивы STRICT и NOSTRICT
13.25. Директивы SWP и NOSWP (только i64)
13.26. Директивы UNROLL и NOUNROLL
13.27. Директивы VECTOR ALIGNED и VECTOR UNALIGNED (i32, i32em)
13.28. Директивы VECTOR ALWAYS и NOVECTOR (132, i32em)
13.29. Директива VECTOR NONTEMPORAL (132, i32em)
13.30. Директивы компилятора Fortran OpenMP*
13.31. Операторы атрибута области действия данных
13.32. ДирективаDO
13.33. Директива FLUSH
13.34. Директива MASTER
13.35. Директива ORDERED
13.36. Директива PARALLEL
13.37. Директива PARALLEL DO
13.38. Директива PARALLEL SECTIONS
13.39. Директива PARALLEL WORKSHARE
13.40. Директива SECTIONS
13.41. Директива SINGLE
13.42. Директива THREADPRIVATE
13.43. Директива WORKSHARE
Глава 14. Область действия и связывание
14.1. Область действия
14.2. Однозначные родовые процедурные ссылки
14.3. Разрешение процедурных ссылок
14.4. Ссылки на собственные имена
14.5. Ссылки на неустановленные имена
14.6. Связывание
14.7. Связывание имени
14.8. Блоки памяти и последовательность памяти
14.9. Связывание массива
Приложение А. Удаленные и устаревающие языковые возможности
Приложение В. Дополнительные возможности языка
Приложение С. Набор символов ASCII для Систем Linux* и Mac OS
Приложение D. Модели представления данных
Приложение Е. Подпрограммы библиотеки поддержки
Приложение F. Краткое изложение расширений языка
Приложение G. Порядок байтов
Словарь
Литература