Fortran - 内置函数
-
简述
内置函数是作为 Fortran 语言的一部分提供的一些常见且重要的函数。我们已经在数组、字符和字符串章节中讨论了其中的一些函数。内置函数可以归类为 -- 数值函数
- 数学函数
- 数值查询功能
- 浮点运算函数
- 位操作函数
- 字符函数
- 种类功能
- 逻辑函数
- 数组函数。
我们已经在数组章节中讨论了数组函数。在下一节中,我们将简要介绍其他类别的所有这些功能。在函数名列中,- 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 为底)值。10 SIN (X)它以弧度返回参数的正弦值。11 SINH (X)它以弧度返回参数的双曲正弦。12 SQRT (X)它返回 X 的平方根。13 TAN (X)它以弧度返回参数的正切。14 TANH (X)它以弧度返回参数的双曲正切。例子
以下程序分别计算弹丸在一段时间 t 后的水平和垂直位置 x 和 y -其中,x = ut cos a 和 y = ut sin a - g t2 / 2program 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)它返回 ASCII 整理序列中的第 I 个字符。2 ADJUSTL (STRING)它通过删除任何前导空格并插入尾随空格来调整字符串3 ADJUSTR (STRING)它通过删除尾随空格和插入前导空格来正确调整字符串。4 CHAR (I [, KIND])它返回机器特定整理序列中的第 I 个字符5 IACHAR (C)它返回字符在 ASCII 整理序列中的位置。6 ICHAR (C)它返回字符在机器(处理器)特定的整理序列中的位置。7 INDEX (STRING, SUBSTRING [, BACK])它返回 STRING 中 SUBSTRING 的最左边(如果 BACK 为 .TRUE,则为最右边)的起始位置。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])它返回属于 SET 的 STRING 的最左边(如果 BACK 为 .TRUE 则为最右边)字符的索引,如果不属于 SET,则返回 0。16 TRIM (STRING)删除尾随空白字符17 VERIFY (STRING, SET [, BACK])验证字符串中的字符集 -
种类功能
序号 功能说明 1 KIND (X)它返回种类类型参数值。2 SELECTED_INT_KIND (R)它返回指定指数范围的类型参数。3 SELECTED_REAL_KIND ([P, R])real kind 类型参数值,给定精度和范围 -
逻辑函数
序号 功能说明 1 LOGICAL (L [, KIND])在具有不同类型参数的逻辑类型对象之间转换