内部函数为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]) | 逻辑型的不同种类型参数对象之间转换 |
上一篇:
Fortran模块
下一篇:
Fortran数字精度
