В составе версий Fortran PowerStation (FPS) и Compaq Visual Fortran (CVF) и других входных языках имеется математическая и статистическая библиотека фирмы Visual Numerics, Inc., которая называется IMSL. Фортран и подпрограммы библиотеки IMSL образуют мощный инструмент для решения вычислительных задач и обработки данных. Подпрограммы IMSL реализованы на Фортране и естественным образом встраиваются в фортран-приложения. Программы, созданные с использованием подпрограмм из библиотеки IMSL, используются для исследования моделей, выполнения расчетов, обработки и отображения данных, в автоматизированных системах проектирования и управления, т.е. в любой сфере, где проблема поддается формализации. В книгах О. В. Бартеньева [Бартеньев О. В. Фортран для профессионалов. Математическая библиотека IMSL: части 1, 2 и 3.] рассмотрены функции и процедуры этой библиотеки. Большой объем библиотеки не позволяет дать ее более или менее полное описание в настоящем пособии (см. пример описания процедур вывода на печать матриц). Поэтому рассматриваются только некоторые подпрограммы библиотеки, необходимые для выполнения заданий и индивидуальных работ.
![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||
Таблица 2.1. Подпрограммы вывода матриц
Таблица 2.2. Синтаксис вызова подпрограмм, приведенных в таблице 3.1
Подробное описание формальных параметров и продолжение описания параметров
|
Многим процедурам библиотеки IMSL для выполнения вычислений нужна дополнительная память, например для создания промежуточных данных. В IMSL выделение дополнительной памяти – одного или нескольких рабочих массивов – осуществляется в так называемой главной процедуре, например в LFCRG. Затем сформированные массивы передаются в процедуру 2-го уровня – L2CRG, в которой собственно и производятся вычисления. Перед выходом из LFCRG выделенная в ней память освобождается. Процедуру 2-го уровня можно вызвать непосредственно. Однако при этом в нее потребуется явно передать рабочие массивы. Так процедура L2CRG дополнительно по сравнению с LFCRG принимает рабочий вектор размера n. Если же вызывается процедура DL2CRG, оперирующая с двойной точностью, то размер рабочего вектора должен быть увеличен до 2n .Процедуры уровня 2 в пособии не приводятся.