第6章常用内部过程_第1页
第6章常用内部过程_第2页
第6章常用内部过程_第3页
第6章常用内部过程_第4页
第6章常用内部过程_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第6章 常用内部过程 Fortran提供了大量的内部过程供程序员在编程过程中使用。6.1 内部过程概述 在Fortran语言中,有很多常用的数学过程、字符处理过程和系统过程。其中,数学过程和字符处理过程通常是以函数子程序的形式存在,系统过程则通常是以子例行子程序的形式存在。 Fortran语言将这些功能各异、用途各异的过程分别编写成一个个独立的子程序,编译后组成一个大的标准过程库(有时也称为标准函数库),存放在外部存储介质(如计算机的硬盘)上。6.2 常用数学函数 Fortran提供了丰富的数学函数供用户在编程时使用。6.2.1 绝对值函数 绝对值函数,函数的原型如下:C = ABS(X) 除

2、了这个通用名外,绝对值函数还有4个专用名,它们是: IABS,专用于求默认种别的整型数据的绝对值,返回值也为默认种别的整型数据。 ABS,专用于求默认种别的实型数据的绝对值,返回值也为默认种别的实型数据。 DABS,专用于求双精度实型数据的绝对值,返回值也为双精度的实型数据。 CABS,专用于默认种别的复型数据的绝对值,返回值也为默认种别的复型数据。6.2.2 指数函数 C = EXP(X) 除了通用名外,指数函数还有3个专用名: EXP,专用于求默认种别的实型数据的指数值,返回值也为默认种别的整型数据。 DEXP,专用于求双精度的实型数据的指数值,返回值也为双精度的实型数据。 CEXP,专用

3、于默认种别的复型数据的指数值,返回值也为默认种别的复型数据。6.2.3 正弦函数C = SIN(X) 除通用名外,正弦函数还有3个专用名: SIN,专用于求默认种别的实型数据的正弦值,返回值也为默认种别的整型数据。 DSIN,专用于求双精度的实型数据的正弦值,返回值也为双精度的实型数据。 CSIN,专用于默认种别的复型数据的正弦值,返回值也为默认种别的复型数据。 函数中参数X的单位是弧度而不是度。6.2.4 余弦函数 C = COS(X) 除了通用名外,还有3个专用名,它们是: COS,专用于求默认种别的实型数据的余弦值,返回值也为默认种别的整型数据。 DCOS,专用于求双精度的实型数据的余弦

4、值,返回值也为双精度的实型数据。 CCOS,专用于默认种别的复型数据的余弦值,返回值也为默认种别的复型数据。6.2.5 反正弦函数 C = ASIN(X) 除了通用名,还有2个专用名,它们是: ASIN,专用于求默认种别的实型数据的反正弦值,返回值也为默认种别的整型数据。 DASIN,专用于求双精度的实型数据的反正弦值,返回值也为双精度的实型数据。6.2.6 反余弦函数 C = ACOS(X) 除了通用名外,还有2个专用名,它们是: ACOS,专用于求默认种别的实型数据的反余弦值,返回值也为默认种别的整型数据。 DACOS,专用于求双精度的实型数据的反余弦值,返回值也为双精度的实型数据。6.2

5、.7 正切函数 C = TAN(X) 除了通用名外,还有2个专用名,它们是: TAN,专用于求默认种别的实型数据的正切值,返回值也为默认种别的整型数据。 DTAN,专用于求双精度的实型数据的正切值,返回值也为双精度的实型数据。6.2.8 反正切函数 C = ATAN(X) 除了通用名外,还有2个专用名,它们是: ATAN,专用于求默认种别的实型数据的反正切值,返回值也为默认种别的整型数据。 DATAN,专用于求双精度的实型数据的反正切值,返回值也为双精度的实型数据。6.2.9 自然对数函数 C = LOG(X) 除了通用名外,还有3个专用名,它们是: ALOG,专用于求默认种别的实型数据的自然

6、对数值,返回值也为默认种别的整型数据。 DLOG,专用于求双精度的实型数据的自然对数值,返回值也为双精度的实型数据。 CLOG,专用于求默认种别的复型数据的自然对数值,返回值也为默认种别的复型数据。6.2.10 常用对数函数 C = LOG10(X) 常用对数函数还有2个专用名,它们是: ALOG10,专用于求默认种别的实型数据的常用对数值,返回值也为默认种别的整型数据。 DLOG10,专用于求双精度的实型数据的常用对数值,返回值也为双精度的实型数据。6.2.11 取整函数 C = INT(X) 还有3个专用名,它们是: IFIX,专用于将默认种别的实型数据转换为整数,返回值为默认种别的整型数

7、据。 INT,专用于将默认种别的实型数据转换为整数,返回值为默认种别的整型数据。 IDINT,专用于将双精度的实型数据转换为整数,返回值为默认种别的整型数据。 Fortran中的取整函数只是将数据的小数部分截去,不使用四舍五入规则。函数的参数可以是实型、整型和复型。6.2.12 求余函数 C = MOD(X1, X2) 还有2个专用名,它们是: MOD,适用于默认种别的整型数据,返回值为默认种别的整型数据。 AMOD,适用于默认种别的实型数据,返回值为默认种别的实型数据。6.2.13 取符号函数 取符号函数返回第一个参数的绝对值与第二个参数的符号的乘积,函数的原型如下: C = SIGN(X1

8、, X2) 还有3个专用名: ISIGN,适用于默认种别的整型数据,返回值为默认种别的整型数据。 SIGN,适用于默认种别的实型数据,返回值为默认种别的实型数据。 DSIGN,适用于双精度的实型数据,返回值为双精度的实型数据。6.2.14 最大值函数C = MAX(X1, X2, X3)还有5个专用名:MAX0,适用于默认种别的整型数据,返回值为默认种别的整型数据。AMAX0,适用于默认种别的整型数据,返回值为默认种别的实型数据。MAX1,适用于默认种别的实型数据,返回值为默认种别的整型数据。AMAX1,适用于默认种别的实型数据,返回值为默认种别的实型数据。DMAX1,适用于双精度的实型数据,

9、返回值为双精度的实型数据。6.2.15 最小值函数C = MIN(X1, X2, X3)还有5个专用名,它们是:MIN0,适用于默认种别的整型数据,返回值为默认种别的整型数据。AMIN0,适用于默认种别的整型数据,返回值为默认种别的实型数据。MIN1,适用于默认种别的实型数据,返回值为默认种别的整型数据。AMIN1,适用于默认种别的实型数据,返回值为默认种别的实型数据。DMIN1,适用于双精度的实型数据,返回值为双精度的实型数据。6.3 常用字符函数 Fortran 90/95的内部函数中新增了许多和字符型数据操作有关的函数供用户使用,可以很方便地进行各种字符操作。6.3.1 字符与数值转换函

10、数 这是一系列函数的总称,涉及到4个基本函数:ICHAR,CHAR,IACHR和ACHAR函数。 Fortran 90/95中允许把字符型的值转换成数值型的值(已知字符得到字符在某种字符集中的序号数值),也可把数值型的值转换成字符型的值(已知字符在某种字符集中的序号数值进而得到该位置上的字符)。 函数ICHAR的作用是根据字符得到字符在计算机字符集中的位置: C = ICHAR(字符数据)6.3.2 字符串长度函数 C = LEN(string) 其中,string必须是字符型,可以是字符标量也可以是字符数组(包括尾随空格、中间空格在内)。比如LEN(ABC 123 )的值是9(6个字符加3个

11、空格)。 如果想要得到不计尾部空格的字符串长度,则可以使用LEN_TRIM函数。 C = LEN_TRIM(string)6.3.3 子字符串位置索引函数 C = INDEX(string, substring,back) 其中,string表示要在其中进行索引的目标字符串;substring表示子字符串;back为逻辑型变量,当back的值为.TRUE.时表示从目标字符串的后面开始搜索,当back的值为.FALSE.或省略不写时,表示从目标字符串的前面开始搜索。函数值返回一个正整数,指明子字符串在目标字符串中是从第几个字符开始的。目标字符串和子字符串可以是任何形式的字符实体。如果目标字符串中

12、不含有子字符串中的内容,则函数的返回值为0。例如INDEX(VitaminC,i)的值为2;INDEX(VitaminC,i,BACK=.TRUE.)的值为6;INDEX(VitaminC,b)的值为0。6.3.4 字符串验证函数 字符串验证函数的作用是确认指定的字符集中是否包含了给定字符串中所有的字符: C = VERIFY(string, set, ,back) string为要在其中进行验证的字符集;set为给定的字符串;back表示是从字符集的前面还是后面开始验证:函数的返回值是一个正整数,指明给定字符串中与字符集相异的第一个字符是从左边第几个字符开始的。如果没有相异的字符,则返回函数

13、值为0。比如VERIFY (banana,nbc)的值为2,VERIFY (banana,nbc,BACK=.TRUE.)的值为6,VERIFY(banana,nbca)的值为0。6.3.5 尾部空格除去函数尾部空格除去函数的作用就是除去字符串尾部的尾随空格:C = TRIM(string)函数的返回值与函数的输入参数类型相同、种别相同。返回值就是输入参数除去尾部空格后剩余的部分。比如TRIM(ABC 123 )/34的值是ABC 12334。这个函数在进行文件名的处理上较为方便:为了保存文件的完整路径名称,通常需要使用一个字段宽度较大的字符变量(在Windows系统下,如果使用系统函数,一般

14、要求256个字符宽度)。如果输入的文件实际路径名较短,则在显示时会留下大段的空格。使用TRIM函数就可以避免这种现象。6.3.6 字符大小比较函数 字符大小比较函数是一个函数族,共包含了4个基本函数。其作用就是比较字符在ASCII字符集中的先后位置,其原型为: C = LGE(string_a, string_b) C = LGT(string_a, string_b) C = LLE(string_a, string_b) C = LLT(string_a, string_b) 四个函数都是用两个字符型实体作为参数,用来判断它们之间是否满足大于等于、大于、小于等于、小于关系。 6.4 常用系

15、统过程 在Fortran 90/95中还增加了许多常用的系统过程,这些系统过程大多采用子例行子程序的形式。这里介绍的主要是用于获得系统时间和随机数的系统过程。6.4.1 CPU时间函数该函数用于返回同处理器无关的精确的处理器运行时间,单位为秒。过程的原型如下:CALL CPU_TIME (time)其中,time是一个实型变量,用于保存处理器的运行时间。如果过程不能返回有意义的时间,则会返回一个与处理器无关的负值。CPU_TIME函数可以用于获得某一段可执行代码在CPU中的实际运行时间,比如下面的代码段用于确定代码执行时间并将其打印出来: REAL : time_begin, time_end

16、 CALL CPU_TIME ( time_begin ) !可执行代码段 CALL CPU_TIME ( time_end ) PRINT *, Time of operation was , time_end - time_begin, seconds6.4.2 日期和时间函数该过程用于返回从实时时钟处获得的日期和时间相关信息,日期和时间的格式符合国际标准ISO 8601:1988。过程的原型如下:CALL DATE_AND_TIME ( date , time , zone , values )其中,date用于保存返回的日期信息,必须是一个至少有8个字符长度的字符串。可以用于保存世纪、年、月、日等信息,形式为CCYYNNDD。下面分别给出这些字符的意义:CC:表示系统中所处的世纪;YY:表示系统中所处的年份;MM:表示系统中所处的月份;DD:表示系统中所处的日期。6.4.3 系统时间过程 系统时间过程用于保存从系统实时时钟处获得的数据信息。过程的原型如下: CALL SYSTEM_CLOCK (count , count_rate , count_max) 其中,count用于保存处理器时钟的当前值,必须是一个默认种别的整型变量。每有一个时钟计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论