加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

FORTRAN内部函数(转载)

(2012-05-17 15:40:35)
标签:

fortran

教育

分类: Fortran

FORTRAN内部函数

FORTRAN解题往往要用到一些专门运算,如求三角函数sinx, cosx, 对数lnx, 指数ex, 求一组数中最大数和最小数等。

     FORTRAN提供了一些系统函数(称为内部函数)来完成这些运算。程序设计者不必自己设计进行这些运算的语句组(即程序段或子程序),只需写出一个函数的名字以及给出一个或若干个自变量,就可以得到所需的值,例如:

SQRT(4.0) 求出4.0的平方根,

SIN(2.0) 求出2(弧度)的正弦值,

EXP(3.5) 求出e3.5,

LOG(3.0) 求出3

常用的函数如下表,FORTRAN77提供的全部函数明细见FORTRAN77内部函数。

函数名           含义          应用例子        相当于数学上的运算

ABS           求绝对值      ABS(A)                       |a|

EXP           指数运算      EXP(A)                       e^a

SIN           正弦值          SIN(X)                        sin x

COS          余弦值          COS(X)                       cos x

ASIN          反正弦          ASIN(X)                       sin^(-1)a

ACOS        反余弦         ACOS(X)                     cos-1a

TAN           正切            TAN(X)                        tan x

ATAN        反正切          ATAN(A)                     tan^(-1)a

LOG          自然对数         LOG(A)                      lna,loge(a)

LOG10     常用对数        LOG10(A)                   log10a

INT           取整               INT(A)                        int(a),a的整数部分

MOD      求余                MOD(A1,A2)             a - int(a1/a2)*a2

SIGN       求符号             SIGN(A1,A2)            |a1|(a2>0) -|a1|(a2<0)

REAL      转换为实型       REAL(I)

MAX        求最大值          MAX(A1,A2,A3)        max(a1,a2,a3)

MIN         求最小值          MIN(A1,A2,A3)         min(a1,a2,a3)

说明:

1FORTRAN77将这些系统函数分别编成一个个子程序,组成函数库,存贮于外部介质(如磁盘)上。在完成源程序的编译之后,用LINK命令实现连接,即将已翻译成二进制指令的目标程序与函数库连接。也就是将程序中出现函数名的地方用函数库中相应的一组指令代入之,组成一个统一的“可执行目标块”。例如,程序中出现一个SIN函数,在连接时就将一组二进制指令(它们是实现求正弦值的运算的)直接插入到程序中出现SIN的地方。由于是插入到程序内部的,所以称为“内部函数”。

 

2)一个内部函数要求一个或多个自变量。例如,SQRT函数只能有一个自变量 SQRT(4.6)MOD函数要求两个自变量 MOD(8,3)MAXMIN函数要求两个以上自变量 MAX(6,-8,10),MIN(-6,8,0)。当自变量个数规定为2个时,自变量的顺序不应任意颠倒,MOD(8,3)表示83除的余数,其值为2,而MOD(3,8)则表示38除的余数,其值为3。当自变量个数>2时,自变量的顺序无关,MAX(6,8,10)MAX(8,10,6)结果是一样的。

 

3)函数的自变量是有类型的,函数值也是有类型的,例如,MOD(8,3)中自变量83是整型,其值“2”也是整型,如果写成MOD(8.0,3.0),自变量是实型的,函数值也是实型的,其值为2.0

 

4FORTRAN77函数名分为“通用名”和“专用名”,例如求余函数的“通用名”为MOD,“专用名”有三个(MODAMODDMOD)。通用名也称“属性名”,或“属名”。根据自变量的类型就自动确定了函数值的类型,如前述MOD(8,3)的值为整型,而MOD(8.0,3.0)的值为实型。之所以有“专用名”只是为了和FORTRAN老标准兼容,在FORTRAN66中,如果求实数相除的余数,要用AMOD函数,如AMOD(8.5,4.2)而不能用MOD(8.5,4.2)。建议读者编程序时一般不必用专用名而全部用“通用名”,使用方便又容易记。但也有的FORTRAN77子集只能使用“专用名”而不能使用“通用名”。

 

5)三角函数中角度的单位是“弧度”而不是“度”。例如,SIN(1.0)表示的不是sin1o,而是sin57.29578osin30o应写成sin(30*3.14159/180)

 

6)自变量可以是常量、变量或表达式。例如SQRT(4.0),SQRT(A)SQRT(2.0+2.0)均为合法。但类型应符合要求,例如SQRT(I)就不合法,因为I为整型变量,而SQRT函数的自变量不能是整型量。

 

7INT函数的作用是简单地截去小数部分,如INT(8.5)=8,INT(-8.5)=-8。这是与BASIC中的INT函数是不同的。

 

8SIGN函数的作用是“符号传送”。SIGN(A,B)的作用是将B的符号传送给A,例如,SIGN(6.5,-8.3)的值勤为-6.5,它将第二项的符号(负号)传送给第一项。SIGN(-6.5,8.3)的值为6.5。因为第二个自变量为正数。也就是说,函数值的符号与第二个自变量的符号相同。利用这个函数可以检查AB是否同符号。如果SIGN(A,B)=A,则说明AB同符号,而如果SIGN(A,B)A不相等,则说明AB不同符号。

 

Fortran标准函数库

http://wenku.baidu.com/view/415efc09f78a6529647d53a2.html

0

阅读 收藏 喜欢 打印举报/Report
前一篇:抗震设计
后一篇:水平地震剪力
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有