- Fortran 教程
- Fortran - 主页
- Fortran - 概述
- Fortran - 环境设置
- Fortran - 基本语法
- Fortran - 数据类型
- Fortran - 变量
- Fortran - 常量
- Fortran - 运算符
- Fortran - 决策
- Fortran - 循环
- Fortran - 数字
- Fortran - 字符
- Fortran - 字符串
- Fortran - 数组
- Fortran - 动态数组
- Fortran - 派生数据类型
- Fortran - 指针
- Fortran - 基本输入输出
- Fortran - 文件输入输出
- Fortran - 过程
- Fortran - 模块
- Fortran - 内在函数
- Fortran - 数值精度
- Fortran - 程序库
- Fortran - 编程风格
- Fortran - 调试程序
- Fortran 资源
- Fortran - 快速指南
- Fortran - 有用的资源
- Fortran - 讨论
Fortran - 内在函数
内部函数是作为 Fortran 语言的一部分提供的一些常见且重要的函数。我们已经在数组、字符和字符串章节中讨论了其中一些函数。
内在函数可以分类为 -
- 数值函数
- 数学函数
- 数值查询功能
- 浮点运算函数
- 位操作函数
- 字符功能
- 种类功能
- 逻辑函数
- 数组函数。
我们已经在数组一章中讨论了数组函数。在下一节中,我们将简要描述其他类别的所有这些功能。
在函数名称栏中,
- A 代表任意类型的数值变量
- R代表实数或整数变量
- X和Y代表实数变量
- Z代表复变量
- W 代表实数或复数变量
数值函数
先生编号 | 功能说明 |
---|---|
1 | ABS(一) 它返回 A 的绝对值 |
2 | 艾玛格 (Z) 它返回复数 Z 的虚部 |
3 | AINT(A [,种类]) 它将 A 的小数部分截断为零,返回一个实数、整数。 |
4 | ANINT(A [,KIND]) 它返回一个实数值,最接近的整数或整数。 |
5 | 天花板(A [,种类]) 它返回大于或等于数字 A 的最小整数。 |
6 | CMPLX (X [, Y, 种类]) 它将实数变量X和Y转换为复数X+iY;如果 Y 不存在,则使用 0。 |
7 | 连接 (Z) 它返回任何复数 Z 的复共轭。 |
8 | 双低功耗 (A) 它将 A 转换为双精度实数。 |
9 | 暗淡(X,Y) 它返回 X 和 Y 的正差。 |
10 | DPROD(X,Y) 它返回 X 和 Y 的双精度实数乘积。 |
11 | 地板(A [,种类]) 它提供小于或等于数字 A 的最大整数。 |
12 | INT(A [,种类]) 它将数字(实数或整数)转换为整数,将实部截断为零。 |
13 | 最大(A1,A2 [,A3,...]) 它返回参数的最大值,所有参数都具有相同的类型。 |
14 | 最小值(A1,A2 [,A3,...]) 它返回参数的最小值,所有参数都具有相同的类型。 |
15 | MOD(A、P) 它返回 A 除以 P 的余数,两个参数的类型相同 (A-INT(A/P)*P) |
16 | 模(A,P) 它返回 A 模 P:(A-FLOOR(A/P)*P) |
17 号 | NINT(A [,种类]) 它返回数字 A 最接近的整数 |
18 | 真实(A [,种类]) 它转换为真实类型 |
19 | 标志(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 | 阿科斯 (X) 它返回 (0, π) 范围内的反余弦值(以弧度为单位)。 |
2 | 阿信 (X) 它返回 (-π/2, π/2) 范围内的反正弦值(以弧度表示)。 |
3 | 阿坦 (X) 它返回 (-π/2, π/2) 范围内的反正切值(以弧度表示)。 |
4 | ATAN2(Y,X) 它返回 (-π, π) 范围内的反正切值(以弧度表示)。 |
5 | COS(X) 它返回以弧度为单位的参数的余弦值。 |
6 | 香港吸烟与健康委员会 (X) 它返回以弧度为单位的参数的双曲余弦。 |
7 | 经验 (X) 它返回 X 的指数值。 |
8 | 对数 (X) 它返回 X 的自然对数值。 |
9 | LOG10 (X) 它返回 X 的常用对数值(以 10 为底)。 |
10 | 正弦 (X) 它返回以弧度表示的参数的正弦值。 |
11 | 辛赫 (X) 它返回以弧度为单位的参数的双曲正弦值。 |
12 | 平方根 (X) 它返回 X 的平方根。 |
13 | 谭 (X) 它返回以弧度为单位的参数的正切值。 |
14 | 正值 (X) 它返回以弧度表示的参数的双曲正切值。 |
例子
以下程序分别计算一段时间 t 后射弹的水平和垂直位置 x 和 y -
其中,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 | 数字 (X) 它返回模型的有效位数。 |
2 | 厄普西隆 (X) 它返回的数字与 1 相比几乎可以忽略不计。换句话说,它返回 REAL( 1.0, KIND(X)) + EPSILON(X) 不等于 REAL( 1.0, KIND(X)) 的最小值。 |
3 | 巨大(X) 它返回模型中最大的数字 |
4 | 最大指数 (X) 它返回模型的最大指数 |
5 | 最小指数 (X) 它返回模型的最小指数 |
6 | 精度 (X) 它返回小数精度 |
7 | 基数 (X) 它返回模型的基础 |
8 | 范围 (X) 它返回十进制指数范围 |
9 | 小 (X) 它返回模型的最小正数 |
浮点运算函数
先生编号 | 功能说明 |
---|---|
1 | 指数 (X) 它返回型号的指数部分 |
2 | 分数 (X) 它返回数字的小数部分 |
3 | 最近的 (X, S) 它返回给定方向上最接近的不同处理器编号 |
4 | RR 间距 (X) 它返回给定数字附近的型号相对间距的倒数 |
5 | 比例 (X, I) 它将实数乘以其基数的整数次幂 |
6 | SET_EXPONENT (X, I) 它返回数字的指数部分 |
7 | 间距 (X) 它返回给定数字附近型号的绝对间距 |
位操作函数
先生编号 | 功能说明 |
---|---|
1 | BIT_SIZE (一) 它返回模型的位数 |
2 | 最佳测试(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,转变) 逻辑移位 |
10 | IHFTC(I,SHIFT [,大小]) 循环移位 |
11 | 不是(我) 逻辑补语 |
字符功能
先生编号 | 功能说明 |
---|---|
1 | 阿查尔(一) 它返回 ASCII 整理序列中的第 I 个字符。 |
2 | 调整(弦) 它通过删除任何前导空格并插入尾随空格来调整左侧的字符串 |
3 | 调节器(字符串) 它通过删除尾随空格并插入前导空格来正确调整字符串。 |
4 | CHAR(我[,种类]) 它返回机器特定整理序列中的第 I 个字符 |
5 | 伊阿查尔 (C) 它返回字符在 ASCII 整理序列中的位置。 |
6 | 伊查尔 (C) 它返回机器(处理器)特定整理序列中字符的位置。 |
7 | 索引(字符串,子字符串[,后]) 它返回 STRING 中 SUBSTRING 的最左边(如果 BACK 为 .TRUE,则为最右边)的起始位置。 |
8 | LEN(字符串) 它返回字符串的长度。 |
9 | LEN_TRIM(字符串) 它返回不带尾随空白字符的字符串长度。 |
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 | 重复(字符串,NCOPIES) 重复串联 |
15 | 扫描(字符串,设置[,返回]) 它返回属于 SET 的 STRING 的最左边(如果 BACK 为 .TRUE,则为最右边)字符的索引,如果不属于 SET,则返回 0。 |
16 | 修剪(字符串) 删除尾随空白字符 |
17 号 | 验证(字符串,设置[,返回]) 验证字符串中的字符集 |
种类功能
先生编号 | 功能说明 |
---|---|
1 | 种类 (X) 它返回kind类型参数值。 |
2 | SELECTED_INT_KIND (R) 它返回指定指数范围的类型参数。 |
3 | SELECTED_REAL_KIND ([P, R]) Real kind 类型参数值,给定精度和范围 |
逻辑函数
先生编号 | 功能说明 |
---|---|
1 | 逻辑(L [,种类]) 在具有不同种类类型参数的逻辑类型对象之间进行转换 |