Fortran内部函数
内部函数为Fortran语言提供一些常见和重要的功能。我们已经讨论过阵列,字符和字符串一些函数。
内部函数可归类为:
- 数值函数
- 数学函数
- 数字查询函数
- 浮点操作函数
- 位操作函数
- 字符函数
- 类函数
- 逻辑函数
- 数组函数
我们在阵列章讨论的阵列功能。在下面的章节中,提供了与其他类别的所有这些功能的简要说明。
函数名称列,
- A 代表任何类型的数值变量
- R 代表一个真实的或整型变量
- X 和 Y 代表实际变量
- Z 代表复数变量
- W 表示实数或复数变量
数值函数
Function | 描述 |
---|---|
ABS (A) | 返回A的绝对值 |
AIMAG (Z) | 返回复数Z的虚部 |
AINT (A [, KIND]) | 截断Z小数部分接近零,返回一个实数。 |
ANINT (A [, KIND]) | 返回一个实数值,最接近的整数或整数。 |
CEILING (A [, KIND]) | 返回比最小整数大于或等于数A. |
CMPLX (X [, Y, KIND]) | 其转换实数变量X和Y的一些复数X + iY; 如果Y不存在,则使用0。 |
CONJG (Z) | 返回复数Z的复共轭 |
DBLE (A) | 转换A成到双精度实数。 |
DIM (X, Y) | 返回X和Y的正差 |
DPROD (X, Y) | 返回实数 X 和 Y 产生的双精度 |
FLOOR (A [, KIND]) | 提供了比最大的整数小于或等于数A. |
INT (A [, KIND]) | 将其转换为数字(真实或整数)为整数,截断向零的实部。 |
MAX (A1, A2 [, A3,...]) | 返回的参数的最大值,相同类型 |
MIN (A1, A2 [, A3,...]) | 返回的参数的最小值,相同类型 |
MOD (A, P) | 返回用P除以A余数部分,这两个参数类型相同 (A-INT(A/P)*P) |
MODULO (A, P) | 返回一个模P:(A-FLOOR(A/P)*P) |
NINT (A [, KIND]) | 返回一个最接近整数A的数 |
REAL (A [, KIND]) | 将其转换为实数类型 |
SIGN (A, B) | 返回一个乘以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)
数学函数
函数 | 描述 |
---|---|
ACOS (X) | 返回该反余弦在范围(0,π),以弧度的形式。 |
ASIN (X) | 返回该反正弦在范围(-π/ 2,π/ 2),单位为弧度。 |
ATAN (X) | 返回反正切的范围(-π/ 2,π/ 2),单位为弧度。 |
ATAN2 (Y, X) | 返回反正切的范围(-π,π),以弧度表示。 |
COS (X) | 返回参数的弧度的余弦值。 |
COSH (X) | 返回参数的弧度的双曲余弦值。 |
EXP (X) | 返回X的指数值 |
LOG (X) | 返回X的自然对数值 |
LOG10 (X) | 返回常用对数(10为基数)X的值 |
SIN (X) | 返回参数的弧度的正弦值。 |
SINH (X) | 返回参数的弧度双曲正弦。 |
SQRT (X) | 返回X的平方根 |
TAN (X) | 返回参数的弧度的切线。 |
TANH (X) | 返回参数弧度的双曲正切值。 |
示例
下列程序计算水平和垂直位置x和y表示抛射时间,t:
这里, x = u t cos a 以及 y = u t 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,它可以是实数,在某些情况下,拥有整数的性质。
函数 | 描述 |
---|---|
DIGITS (X) | 返回显著模型的位数。 |
EPSILON (X) | 返回相比一个是几乎可以忽略不计的数目。换句话说,它返回最小值,使得REAL( 1.0, KIND(X)) + EPSILON(X)为不等于REAL( 1.0, KIND(X))。 |
HUGE (X) | 返回模型最多数量 |
MAXEXPONENT (X) | 返回该模型的最大指数 |
MINEXPONENT (X) | 返回该模型的最小指数 |
PRECISION (X) | 返回小数精度 |
RADIX (X) | 返回该模型的基数 |
RANGE (X) | 返回十进制指数范围 |
TINY (X) | 返回该模型的最小正数 |
浮点操作函数
函数 | 描述 |
---|---|
EXPONENT (X) | 返回一个模型数的指数部分 |
FRACTION (X) | 返回一个数的小数部分 |
NEAREST (X, S) | 返回给定的方向最近的不同处理器编号 |
RRSPACING (X) | 返回型号的邻近给定数量的相对间隔的倒数 |
SCALE (X, I) | 乘以一个实数由基数的整数次幂 |
SET_EXPONENT (X, I) | 返回一个数的指数部分 |
SPACING (X) | 返回型号的绝对间隔接近指定数值 |
位操作函数
函数 | 描述 |
---|---|
BIT_SIZE (I) | 返回该模型的比特数 |
BTEST (I, POS) | 位测试 |
IAND (I, J) | 逻辑与 |
IBCLR (I, POS) | 清除位 |
IBITS (I, POS, LEN) | 位提取 |
IBSET (I, POS) | 设置位 |
IEOR (I, J) | 异或 |
IOR (I, J) | 包括或 |
ISHFT (I, SHIFT) | 逻辑移位 |
ISHFTC (I, SHIFT [, SIZE]) | 循环移位 |
NOT (I) | 逻辑补 |
字符函数
函数 | 描述 |
---|---|
ACHAR (I) | 它返回ASCII整理序列中的第i个字符。 |
ADJUSTL (STRING) | 它通过调节删除任何前导空格和插入尾随空白留下的字符串 |
ADJUSTR (STRING) | 它去除右尾随空白和插入前导空格调整字符串。 |
CHAR (I [, KIND]) | 它返回特定机器整理序列中的第i个字符 |
IACHAR (C) | 它返回字符的ASCII码排序序列中的位置。 |
ICHAR (C) | 它返回字符在机器(处理器)特定排序序列中的位置。 |
INDEX (STRING, SUBSTRING [, BACK]) | 它返回SUBSTRING内STRING最左边(最右边如果返回.TRUE。)起始位置。 |
LEN (STRING) | 它返回字符串的长度。 |
LEN_TRIM (STRING) | 它返回一个字符串的长度没有结尾的空白字符。 |
LGE (STRING_A, STRING_B) | 词汇上大于或等于 |
LGT (STRING_A, STRING_B) | 词汇上大于 |
LLE (STRING_A, STRING_B) | 词汇上大于或等于以下 |
LLT (STRING_A, STRING_B) | 词汇上小于 |
REPEAT (STRING, NCOPIES) | 重复并置 |
SCAN (STRING, SET [, BACK]) | 它返回STRING属于集,或者0,如果都不属于最左边(最右边如果返回.TRUE。)字符的索引。 |
TRIM (STRING) | 删除结尾的空白字符 |
VERIFY (STRING, SET [, BACK]) | 验证字符集的字符串 |
类型函数
函数 | 描述 |
---|---|
KIND (X) | 它返回种类类型的参数值。 |
SELECTED_INT_KIND (R) | 它返回一种为特定网络版的指数范围类型的参数。 |
SELECTED_REAL_KIND ([P, R]) | 实数类型的参数值,指定精度和范围 |
逻辑函数
Function | 描述 |
---|---|
LOGICAL (L [, KIND]) | 逻辑型的不同种类型参数对象之间转换 |