Текст подпрограммы и версий ( Фортран ) pa08r.zip pa08d.zip |
Тексты тестовых примеров ( Фортран ) tpa08r.zip tpa08d.zip |
Текст подпрограммы и версий ( Си ) pa08r_c.zip pa08d_c.zip |
Тексты тестовых примеров ( Си ) tpa08r_c.zip tpa08d_c.zip |
Текст подпрограммы и версий ( Паскаль ) pa08r_p.zip pa08e_p.zip |
Тексты тестовых примеров ( Паскаль ) tpa08r_p.zip tpa08e_p.zip |
Определение узлов упорядоченной по возрастанию или по убыванию неравномерной сетки, между которыми лежит заданная точка, с использованием информации о ее предположительном местоположении.
Пусть заданы узлы сетки x1, x2,..., xN, упорядоченные либо по возрастанию, либо по убыванию. Подпрограмма PA08R по заданной точке X вычисляет методом бисекции значение индекса J, при котором точка X лежит между узлами xJ и xJ + 1 , с использованием значения индекса JL, определяющим ее предположительное местоположение.
Если J = 0, то это означает, что точка X лежит левее узла x1. Если J = N, то это означает, что точка X лежит правее узла xN.
SUBROUTINE PA08R (XX, N, X, JL, J)
Параметры
XX - | вещественный вектор длины N, содержащий узлы заданной сетки x1, x2,..., xN упорядоченной либо по возрастанию, либо по убыванию; |
N - | количество узлов сетки (тип: целый); |
X - | заданная точка, местоположение которой ищется по отношению к узлам сетки (тип: вещественный); |
JL - | значение индекса, определяющего предположительное положение точки X по отношению к узлам сетки (тип: целый); |
J - | целая переменная, значение которой полагается равной индексу, при котором точка X лежит между узлами XX (J) и XX (J + 1) . |
Версии
PA08D - | определение узлов упорядоченной по возрастанию или убыванию неравномерной сетки, между которыми лежит заданная точка, с использованием информации о ее предположительном местоположении в режиме удвоенной точности. При этом параметры XX и X должны иметь тип DOUBLE PRECISION. |
Вызываемые подпрограммы: нет
Замечания по использованию: нет
DIMENSION XX(20) N = 20 R = 0.0 DO 1 I = 1, N XX(I) = R 1 R = R + 0.2 X = 1.7 JL = 15 CALL PA08R (XX, N, X, JL, J) Результат: J = 9