位置:首页 > > Fortran内部函数

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]) 逻辑型的不同种类型参数对象之间转换