8.241 SELECTED_REAL_KIND — Выбор типа вещественного числа
- Описание:
-
SELECTED_REAL_KIND(P,R)возвращает значение параметра типа вещественного числа с десятичной точностью не менееPцифр, диапазоном показателей степени не менееR, и с основаниемRADIX. - Стандарт:
-
Fortran 90 и более поздние версии, с
RADIXFortran 2008 или более поздними - Класс:
-
Функция преобразования
- Синтаксис:
-
RESULT = SELECTED_REAL_KIND([P, R, RADIX]) - Аргументы:
-
P (Необязательно) должен быть скаляром и иметь тип INTEGER.R (Необязательно) должен быть скаляром и иметь тип INTEGER.RADIX (Необязательно) должен быть скаляром и иметь тип INTEGER.До Fortran 2008 по меньшей мере один из аргументов R или P должен быть присутствующим; начиная с Fortran 2008, они считаются равными нулю, если отсутствуют.
- Возвращаемое значение:
-
SELECTED_REAL_KINDвозвращает значение параметра типа «kind» для вещественного типа данных с десятичной точностью не менееPцифр, диапазоном десятичного показателя степени не менееR, и с запрошеннымRADIX. Если параметрRADIXотсутствует, могут быть возвращены вещественные типы с любым основанием. Если более одного вещественного типа данных удовлетворяют критериям, возвращается тип данных с наименьшей десятичной точностью. Если ни один вещественный тип данных не соответствует критериям, результат равен- -1, если процессор не поддерживает вещественный тип данных с
точностью, большей или равной
P, но требованияRиRADIXмогут быть выполнены- -2, если процессор не поддерживает вещественный тип с диапазоном
показателя степени, большим или равным
R, но требованияPиRADIXмогут быть выполнены- -3, если
RADIX, но неPиRтребования могут быть выполнены
- -4, если
RADIXи либоP, либоRтребования могут быть выполнены
- -5, если нет вещественного типа с заданным
RADIX
- Пример:
-
program real_kinds integer,parameter :: p6 = selected_real_kind(6) integer,parameter :: p10r100 = selected_real_kind(10,100) integer,parameter :: r400 = selected_real_kind(r=400) real(kind=p6) :: x real(kind=p10r100) :: y real(kind=r400) :: z print *, precision(x), range(x) print *, precision(y), range(y) print *, precision(z), range(z) end program real_kinds
- См. также:
PRECISION— Десятичная точность вещественного типа,RANGE— Диапазон десятичного показателя степени,RADIX— Основание модели числа
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-13.3.0/gfortran/SELECTED_005fREAL_005fKIND.html