Фортран - внутренние функции
Внутренние функции - это некоторые общие и важные функции, которые предоставляются как часть языка Фортран. Мы уже обсуждали некоторые из этих функций в главах «Массивы, символы и строки».
Внутренние функции можно разделить на следующие категории:
- Числовые функции
- Математические функции
- Числовые функции запроса
- Функции управления числами с плавающей точкой
- Функции обработки битов
- Функции персонажей
- Добрые функции
- Логические функции
- Функции для работы с массивами.
Мы обсудили функции массива в главе «Массивы». В следующем разделе мы даем краткое описание всех этих функций из других категорий.
В столбце имени функции
- A представляет любой тип числовой переменной
- R представляет собой вещественную или целочисленную переменную
- X и Y представляют собой действительные переменные
- Z представляет собой сложную переменную
- W представляет действительную или комплексную переменную
Числовые функции
Старший Нет | Описание функции |
---|---|
1 | ABS (A) Возвращает абсолютное значение A |
2 | AIMAG (Z) Возвращает мнимую часть комплексного числа Z |
3 | AINT (A [, KIND]) Он обрезает дробную часть A до нуля, возвращая действительное целое число. |
4 | ANINT (A [, KIND]) Он возвращает действительное значение, ближайшее целое или целое число. |
5 | CEILING (A [, KIND]) Он возвращает наименьшее целое число, большее или равное числу A. |
6 | CMPLX (X [, Y, KIND]) Он преобразует действительные переменные X и Y в комплексное число X + iY; если Y отсутствует, используется 0. |
7 | CONJG (Z) Он возвращает комплексное сопряжение любого комплексного числа Z. |
8 | DBLE (A) Он преобразует A в действительное число двойной точности. |
9 | DIM (X, Y) Возвращает положительную разницу X и Y. |
10 | DPROD (X, Y) Он возвращает действительное произведение X и Y с двойной точностью. |
11 | FLOOR (A [, KIND]) Он обеспечивает наибольшее целое число, меньшее или равное числу A. |
12 | INT (A [, KIND]) Он преобразует число (действительное или целое) в целое, усекая действительную часть до нуля. |
13 | MAX (A1, A2 [, A3,...]) Он возвращает максимальное значение из аргументов одного типа. |
14 | MIN (A1, A2 [, A3,...]) Он возвращает минимальное значение из аргументов одного типа. |
15 | MOD (A, P) Он возвращает остаток от A при делении на P, оба аргумента имеют один и тот же тип (A-INT (A / P) * P) |
16 | MODULO (A, P) Он возвращает A по модулю P: (A-FLOOR (A / P) * P) |
17 | NINT (A [, KIND]) Возвращает ближайшее целое число A |
18 | REAL (A [, KIND]) Преобразует в реальный тип |
19 | SIGN (A, B) Он возвращает абсолютное значение A, умноженное на знак P. В основном он передает знак B в A. |
пример
program numericFunctions
implicit none
! define constants
! define variables
real :: a, b
complex :: z
! values for a, b
a = 15.2345
b = -20.7689
write(*,*) 'abs(a): ',abs(a),' abs(b): ',abs(b)
write(*,*) 'aint(a): ',aint(a),' aint(b): ',aint(b)
write(*,*) 'ceiling(a): ',ceiling(a),' ceiling(b): ',ceiling(b)
write(*,*) 'floor(a): ',floor(a),' floor(b): ',floor(b)
z = cmplx(a, b)
write(*,*) 'z: ',z
end program numericFunctions
Когда вы компилируете и выполняете вышеуказанную программу, она дает следующий результат:
abs(a): 15.2344999 abs(b): 20.7688999
aint(a): 15.0000000 aint(b): -20.0000000
ceiling(a): 16 ceiling(b): -20
floor(a): 15 floor(b): -21
z: (15.2344999, -20.7688999)
Математические функции
Старший Нет | Описание функции |
---|---|
1 | ACOS (X) Он возвращает обратный косинус в диапазоне (0, π) в радианах. |
2 | ASIN (X) Он возвращает обратный синус в диапазоне (-π / 2, π / 2) в радианах. |
3 | ATAN (X) Он возвращает арктангенс в диапазоне (-π / 2, π / 2) в радианах. |
4 | ATAN2 (Y, X) Он возвращает арктангенс в диапазоне (-π, π) в радианах. |
5 | COS (X) Возвращает косинус аргумента в радианах. |
6 | COSH (X) Возвращает гиперболический косинус аргумента в радианах. |
7 | EXP (X) Он возвращает экспоненциальное значение X. |
8 | LOG (X) Он возвращает натуральное логарифмическое значение X. |
9 | LOG10 (X) Он возвращает десятичное логарифмическое значение X. |
10 | SIN (X) Возвращает синус аргумента в радианах. |
11 | SINH (X) Возвращает гиперболический синус аргумента в радианах. |
12 | SQRT (X) Возвращает квадратный корень из X. |
13 | TAN (X) Возвращает тангенс аргумента в радианах. |
14 | TANH (X) Возвращает гиперболический тангенс аргумента в радианах. |
пример
Следующая программа вычисляет горизонтальное и вертикальное положение x и y снаряда соответственно через время t -
Где x = ut cos a и y = ut sin a - g t2 / 2
program projectileMotion
implicit none
! define constants
real, parameter :: g = 9.8
real, parameter :: pi = 3.1415927
!define variables
real :: a, t, u, x, y
!values for a, t, and u
a = 45.0
t = 20.0
u = 10.0
! convert angle to radians
a = a * pi / 180.0
x = u * cos(a) * t
y = u * sin(a) * t - 0.5 * g * t * t
write(*,*) 'x: ',x,' y: ',y
end program projectileMotion
Когда вы компилируете и выполняете вышеуказанную программу, она дает следующий результат:
x: 141.421356 y: -1818.57861
Числовые функции запроса
Эти функции работают с определенной моделью целочисленной арифметики и арифметики с плавающей запятой. Функции возвращают свойства чисел того же типа, что и переменная X, которые могут быть действительными, а в некоторых случаях целыми.
Старший Нет | Описание функции |
---|---|
1 | DIGITS (X) Возвращает количество значащих цифр модели. |
2 | EPSILON (X) Он возвращает число, которое почти ничтожно по сравнению с единицей. Другими словами, он возвращает наименьшее значение, такое что REAL (1.0, KIND (X)) + EPSILON (X) не равно REAL (1.0, KIND (X)). |
3 | HUGE (X) Возвращает наибольший номер модели |
4 | MAXEXPONENT (X) Возвращает максимальный показатель модели |
5 | MINEXPONENT (X) Возвращает минимальный показатель модели. |
6 | PRECISION (X) Возвращает десятичную точность |
7 | RADIX (X) Возвращает базу модели |
8 | RANGE (X) Возвращает диапазон десятичной экспоненты |
9 | TINY (X) Возвращает наименьшее положительное число модели. |
Функции управления числами с плавающей точкой
Старший Нет | Описание функции |
---|---|
1 | EXPONENT (X) Возвращает экспоненциальную часть номера модели. |
2 | FRACTION (X) Возвращает дробную часть числа |
3 | NEAREST (X, S) Возвращает ближайший другой номер процессора в заданном направлении. |
4 | RRSPACING (X) Он возвращает обратную величину относительного расстояния между номерами моделей рядом с заданным числом. |
5 | SCALE (X, I) Он умножает действительное число на его основание до целой степени. |
6 | SET_EXPONENT (X, I) он возвращает экспоненциальную часть числа |
7 | SPACING (X) Возвращает абсолютный интервал между номерами моделей рядом с заданным числом. |
Функции обработки битов
Старший Нет | Описание функции |
---|---|
1 | BIT_SIZE (I) Возвращает количество бит модели. |
2 | BTEST (I, POS) Битовое тестирование |
3 | IAND (I, J) Логическое И |
4 | IBCLR (I, POS) Очистить бит |
5 | IBITS (I, POS, LEN) Извлечение бит |
6 | IBSET (I, POS) Установить бит |
7 | IEOR (I, J) Эксклюзивный или |
8 | IOR (I, J) Инклюзивное ИЛИ |
9 | ISHFT (I, SHIFT) Логический сдвиг |
10 | ISHFTC (I, SHIFT [, SIZE]) Круговой сдвиг |
11 | NOT (I) Логическое дополнение |
Функции персонажей
Старший Нет | Описание функции |
---|---|
1 | ACHAR (I) Он возвращает I-й символ в последовательности сортировки ASCII. |
2 | ADJUSTL (STRING) Он корректирует строку слева, удаляя любые начальные пробелы и вставляя конечные пробелы |
3 | ADJUSTR (STRING) Он корректирует строку вправо, удаляя конечные пробелы и вставляя начальные пробелы. |
4 | CHAR (I [, KIND]) Он возвращает I-й символ в определенной для машины последовательности сортировки. |
5 | IACHAR (C) Он возвращает позицию символа в последовательности сортировки ASCII. |
6 | ICHAR (C) Он возвращает позицию символа в определенной машине (процессоре) последовательности сортировки. |
7 | INDEX (STRING, SUBSTRING [, BACK]) Он возвращает крайнюю левую (крайнюю правую, если BACK - .TRUE.) Начальную позицию SUBSTRING в STRING. |
8 | LEN (STRING) Возвращает длину строки. |
9 | LEN_TRIM (STRING) Он возвращает длину строки без завершающих пробелов. |
10 | LGE (STRING_A, STRING_B) Лексически больше или равно |
11 | LGT (STRING_A, STRING_B) Лексически больше, чем |
12 | LLE (STRING_A, STRING_B) Лексически меньше или равно |
13 | LLT (STRING_A, STRING_B) Лексически меньше чем |
14 | REPEAT (STRING, NCOPIES) Повторная конкатенация |
15 | SCAN (STRING, SET [, BACK]) Он возвращает индекс самого левого (самого правого, если BACK - .TRUE.) Символа STRING, принадлежащего SET, или 0, если ни один не принадлежит. |
16 | TRIM (STRING) Удаляет завершающие пустые символы |
17 | VERIFY (STRING, SET [, BACK]) Проверяет набор символов в строке |
Добрые функции
Старший Нет | Описание функции |
---|---|
1 | KIND (X) Возвращает значение параметра типа kind. |
2 | SELECTED_INT_KIND (R) Он возвращает тип параметра типа для указанного диапазона экспоненты. |
3 | SELECTED_REAL_KIND ([P, R]) Значение параметра типа реального вида с учетом точности и диапазона |
Логическая функция
Старший Нет | Описание функции |
---|---|
1 | LOGICAL (L [, KIND]) Преобразование между объектами логического типа с параметрами типа разного типа |