当前位置: 首页 > 文档资料 > Fortran 中文教程 >

内在函数( Intrinsic Functions)

优质
小牛编辑
206浏览
2023-12-01

内在函数是作为Fortran语言的一部分提供的一些常见且重要的函数。 我们已经在Arrays,Characters和String章节中讨论过这些函数中的一些。

内在函数可以归类为 -

  • 数字函数
  • 数学函数
  • 数字查询功能
  • 浮点操作函数
  • 位操作函数
  • 字符功能
  • 种类功能
  • 逻辑函数
  • 数组函数。

我们在Arrays章节中讨论了数组函数。 在下一节中,我们将简要介绍其他类别的所有这些功能。

在函数名称列中,

  • A表示任何类型的数字变量
  • R表示实数或整数变量
  • X和Y代表实际变量
  • Z表示复变量
  • W代表实数或复数变量

数值函数

Sr.No功能说明
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除以A的余数,两个参数的类型相同(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.

例子 (Example)

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)

数学函数 (Mathematical Functions)

Sr.No功能说明
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)

它以弧度形式返回参数的双曲正切值。

例子 (Example)

以下程序计算一段时间后射弹的水平和垂直位置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  

Numeric Inquiry Functions

这些函数适用于某种整数和浮点运算模型。 函数返回与变量X相同类型的数字的属性,这可以是实数,在某些情况下是整数。

Sr.No功能说明
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)

它返回模型的最小正数

浮点操作函数 (Floating-Point Manipulation Functions)

Sr.No功能说明
1

EXPONENT (X)

它返回模型编号的指数部分

2

FRACTION (X)

它返回数字的小数部分

3

NEAREST (X, S)

它返回给定方向上最近的不同处理器编号

4

RRSPACING (X)

它返回给定数字附近的模型数的相对间距的倒数

5

SCALE (X, I)

它将real乘以其基数乘以整数幂

6

SET_EXPONENT (X, I)

它返回数字的指数部分

7

SPACING (X)

它返回给定数字附近的型号的绝对间距

位操作功能 (Bit Manipulation Functions)

Sr.No功能说明
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)

独家OR

8

IOR (I, J)

包容性或

9

ISHFT (I, SHIFT)

逻辑转变

10

ISHFTC (I, SHIFT [, SIZE])

循环移位

11

NOT (I)

逻辑补充

字符函数

Sr.No功能说明
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中最左边的(最右边,如果BACK是.TRUE。)SUBSTRING的起始位置。

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。),如果没有,则返回0。

16

TRIM (STRING)

删除尾随空白字符

17

VERIFY (STRING, SET [, BACK])

验证字符串中的字符集

Kind 函数

Sr.No功能说明
1

KIND (X)

它返回kind类型参数值。

2

SELECTED_INT_KIND (R)

它返回指定指数范围的类型参数类型。

3

SELECTED_REAL_KIND ([P, R])

实物类型参数值,给定精度和范围

逻辑功能

Sr.No功能说明
1

LOGICAL (L [, KIND])

在具有不同种类类型参数的逻辑类型的对象之间转换