codecamp

Fortran内函数

征函数是被提供作为Fortran语言的一部分的一些常见和重要的功能。我们的阵列,字符和字符串的章节已经讨论其中的一些功能。

本征函数可以被归类为:

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

我们在阵列章节讨论的阵列功能。在下面的部分,我们提供的其他类别所有这些功能的简要说明。

在功能名称列,

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

数值函数

功能描述
ABS(A) 它返回一个绝对值
AIMAG(Z) 它返回一个复杂的数Z的虚部
AINT(A [,KIND]) 它截断的小数部分趋向于零,返回一个真正的,整数。
ANINT(A [,KIND]) 它返回一个真正的价值,最近的整数或整数。
CEILING(A [,KIND]) 它返回最小整数大于或等于号A.
CMPLX(X [,Y,KIND]) 它转换成真正的变量X和Y以复数X + IY;如果Y不存在,则使用0。
CONJG(Z) 它返回任何复数Z的复共轭
DBLE(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楼(A / P)×P)
NINT(A [,KIND]) 它返回一个数字的最接近的整数
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,叔:

其中,X = UT COS A和Y = UT罪 - 克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,它可以是真实的,在某些情况下整数的数的属性。

功能描述
数字(X) 它返回的模型的显著位数。
EPSILON(X) 它返回相比一个是几乎可以忽略不计的数目。换句话说,它返回最小值,使得实(1.0,种类(X))+ EPSILON(x)不等于实(1.0,种类(X))。
巨大的(X) 它返回模型的数量最多
MAXEXPONENT(X) 它返回该模型的最大指数
MINEXPONENT(X) 它返回模型的最低指数
PRECISION(X) 它返回小数精度
基数(X) 它返回该模型的基
RANGE(X) 它返回十进制指数范围
TINY(X) 它返回该模型的最小正数

浮点操作函数

功能描述
指数(x) 它返回一个型号的指数部分
分数(X)的它返回一个数的小数部分
NEAREST(X,S) 它返回给定方向最近的不同处理器编号
RRSPACING(X) 它返回型号的邻近给定数量的相对间距的倒数
SCALE(X,I) 它乘以它的基地实到的整数次幂
SET_EXPONENT(X,I)的它返回一个数的指数部分
间距(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) 包容OR
ISHFT(Ⅰ,SHIFT) 逻辑移位
ISHFTC(I,SHIFT [,SIZE]) 循环移位
NOT(Ⅰ) 逻辑补

字符函数

功能描述
ACHAR(Ⅰ) 它返回ASCII码排序序列的第i个字符。
ADJUSTL(STRING) 它通过调节移除任何前导空格和插入尾随空白左弦
ADJUSTR(STRING) 它的权利通过删除尾随空格和插入前导空格调整字符串。
CHAR(I [,KIND]) 它返回特定机器科幻ç整理序列中的第i个字符
IACHAR(C) 它返回ASCII排序序列中字符的位置。
ICHAR(C) 它返回机器(处理器)特定网络ç整理序列中的字符的位置。
INDEX(STRING,SUBSTRING [,BACK]) 它返回子串的字符串中最左边(最右边如果返回.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]) 它返回属于集,或者0,如果没有属于字符串的最左边(最右边如果返回.TRUE。)字符的索引。
TRIM(STRING) 删除结尾的空白字符
VERIFY(STRING,SET [,BACK]) 验证字符集的字符串

种类函数

功能描述
KIND(X) 它返回的那种类型的参数值。
SELECTED_INT_KIND(R)的它返回的那种特定网络版的指数范围类型的参数。
SELECTED_REAL_KIND([P,R]) 实样类型的参数值,指定精度和范围

逻辑功能

功能描述
逻辑(L [,KIND]) 逻辑与不同种类类型参数类型的对象之间的转换

Fortran语言模块
Fortran的数字精度
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }