Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
современный фортран , Бортеньев.pdf
Скачиваний:
239
Добавлен:
26.03.2015
Размер:
2.34 Mб
Скачать

О.В. Бартеньев

Современный Фортран

Издание третье, дополненное и переработанное

МОСКВА

«ДИАЛОГ-МИФИ»

2000

1

О. В. Бартеньев. Современный ФОРТРАН

УДК 519.682 ББК 32.97

Б24

Бартеньев О. В.

Б24 Современный Фортран. - 3-е изд., доп. и перераб. - М.: ДИАЛОГ-

МИФИ, 2000. - 449 с.

ISBN 5-86404-113-0

Излагаются базовые свойства Фортрана фирм Compaq и Microsoft, основанные на стандартах Фортран 90 и 95. По существу, пособие является новой, усовершенствованной версией одноименного издания 1998 г. Дополнительно в книгу включены нововведения стандарта Фортран 95, рассмотрены отличительные особенности Фортрана Compaq и описаны методы использования объектов ActiveX.

Как и ранее, пособие ориентировано как на пользователей со стажем, так и на начинающих программистов, для которых разбираются методы программирования и особенности их реализации на Фортране.

Предназначено для студентов, преподавателей, аспирантов, инженеров и научных работников.

Учебно-справочное издание

Бартеньев Олег Васильевич Современный Фортран.

2

Предисловие

Новое издание пособия обусловлено прежде всего расширяющимся интересом российских специалистов к современному Фортрану, и в частности к его реализациям фирмами Compaq и Microsoft, известными как Compaq Visual Fortran 6.1 (далее - CVF) и Microsoft Fortran PowerStation 4.0 (далее - FPS).

Более продвинутой разработкой является CVF. Это неудивительно, поскольку Microsoft вот уже несколько лет не поддерживает FPS и он живет своей одинокой жизнью. В то же время CVF, включая все возможности FPS, постоянно совершенствуется и развивается. В дополнение к FPS, в Фортране Compaq реализованы стандарт 1995 г. и большое число дополнительных возможностей, в том числе новая версия математической библиотеки IMSL (IMSL Fortran 90 MP), конструктор модулей для объектов ActiveX, визуализатор массивов и др.

Тем не менее, учитывая широкое распространение FPS среди российских пользователей, в книге рассматриваются и CVF и FPS. Впрочем, такое объединение не потребовало чрезмерных усилий, так как, во-первых, CVF наследует все черты FPS: практически все, что работает в FPS, будет работать и в CVF (определенные различия имеются в организации передачи данных), и, во-вторых, обе разработки эксплуатируют одну и ту же среду - Microsoft Developer Studio (далее - DS).

Пособие содержит описание базовых, основанных на стандартах Фортран 90 и 95 свойств языка и имеющихся расширений, таких, как целочисленные указатели, объединения, целочисленные выражения в спецификаторе формата и др. Из дополнительных возможностей приводятся процедуры библиотеки DFLIB (MSFLIB), позволяющие, например, управлять файлами или операциями с плавающей точкой, а также рассматривается конструктор модулей - новое средство CVF, осуществляющее генерацию модулей, облегчающих использование в приложениях Фортрана объектов ActiveX, т. е. объектов, предоставляемых другими приложениями и поддерживающих модель многокомпонентных объектов COM. Например, Excel предоставляет множество иерархически связанных объектов, таких, как "Рабочая книга", "Рабочий лист" или "Диаграмма".

Большое число иных, не предусмотренных стандартом специальных средств рассматривается в книгах [1-3], изучая которые пользователь получает возможностъ создавать диалоги, меню, обрабатывать события, выполнять многооконный, средствами QuickWin или OpenGL, графический вывод, писать разноязычные, например на Фортране и СИ, приложения, вызывать математические процедуры библиотеки IMSL и т. д.

Однако главное назначение Фортрана - это быстрый счет в различных научнотехнических приложениях. (Это та область, в которой у Фортрана нет конкурентов.) Поэтому основной задачей пользователя Фортрана является освоение техники высокопроизводительных вычислений, и поэтому основная цель разработчиков Фортрана - поиск и включение в язык соответствующих высокоскоростных средств. В этом плане прогресс несомненен, и его основой является отраженная в стандартах Фортран 90 и 95 концепция обработки массивов.

3

О. В. Бартеньев. Современный ФОРТРАН

В соответствии с ней:

массивы, как и обычные скалярные переменные, могут быть использованы

в выражениях, результатами которых также являются массивы;

в конструкциях WHERE и FORALL, заменяющих громоздкие циклы, можно под управлением маски выполнять сложные присваивания массивов. Причем для употребления в FORALL введен класс так называемых чистых, создаваемых пользователем процедур;

введено большое число функций для массивов, реализующих в том числе базовые операции линейной алгебры, например вычисляющих произведение матриц, скалярное произведение векторов или возвращающих транспонированную матрицу;

большинство встроенных процедур являются элементными, т. е. способными принимать массивы, выполнять поэлементно необходимые вычисления и возвращать массивы. Например, если x и y - это векторы одного размера, то вызов y = SIN(x) позволит сформировать вектор y, каждый элемент которого равен синусу соответствующего элемента вектора x;

свои собственные элементные процедуры, обладающие такими же, как

ивстроенные элементные процедуры, свойствами, может создатьипрограммист;

введены подобъекты массивов, называемые сечениями, которые можно использовать так же, как и массивы (т. е. в выражениях, в качестве параметров элементных функций), и применяя которые можно заменить многие циклы, например неявные циклы операторов ввода/вывода;

при необходимости можно объявлять динамические (размещаемые, ссылочные, а в процедурах - автоматические) массивы;

можно реализовать массивоподобные функции, возвращающие массивы или ссылочные динамические массивы.

Эти, далеко не в полной мере перечисленные, относящиеся к массивам

нововведения в сочетании с другими усовершенствованиями позволяют создавать быстро работающие, компактные, хорошо читаемые и удобные для употребления программы. Больше того, при наличии многопроцессорной вычислительной системы и соответствующего компилятора языка Фортран применение вышеназванных новых свойств обеспечивает естественное распараллеливание вычислений и, как следствие, существенный рост производительности.

4