fortran 第8章_1.ppt_第1页
fortran 第8章_1.ppt_第2页
fortran 第8章_1.ppt_第3页
fortran 第8章_1.ppt_第4页
fortran 第8章_1.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、FORTRAN 95,第8章函数,第8章函数,一种需要在程序代码中重复的函数,一种当某段程序代码被重用时可以使用的函数。“函数”包括:自定义函数和子程序。自定义函数扩展了库函数、81个子例程和81个子例程的功能,这些函数以子例程开始,应该命名。作为回报而回报;结束或结束子例程或结束子例程名称。调用主程序的调用不必放在开始处。任何子程序都可以有自己独立的变量声明。主程序和子程序中声明的变量是不相关的。子程序有独立的行代码(用于格式等)。)在彼此之间传递参数。变量是独立的,转移参数,和81子程序。当Fortan传输参数时,它是一个地址调用,也就是说,在调用期间传递出去的参数和子程序中接受的参数使用

2、相同的内存地址来记录数据。可以被视为同一个变量。例如,用初始速度和角度计算标枪的投射距离,82自定义函数,不同于子程序:1)调用前声明;2)它将返回一个数值,并声明存储返回值的函数名;当调用、调用、fortran 77:时,不需要实添加外部添加,这相当于:Add(1.0,2.0)参数的可用值。投标程序重写:83全局变量(COMMONAL)以定义共享内存空间。不同程序单元之间(函数之间、函数与主程序之间)声明的变量使用相同的存储位置进行传输。FORTRAN 77使用两种类型:1)著名的和未命名的公共区域;2)著名公共区域、831公共区域和未命名公共区域的规则和特征:1)公共语句必须在所有可执行语

3、句之前解释变量名、数组名和数组描述符;公共A,B,NP (15),loc (2,4)等价于维数NP(15),而LOC(2,4)公共A,B,NP,LOC(2)不能使用虚拟参数;3)一个程序只有一个无名的公共区域;831 common use,对应关系:主程序模块:Common a,b,c,d Common a1,b1,c1,d1,子程序:Common a1,B1,C1,D1 common a,b common c,831 COMMON use,4)每个程序单元的COMMON中的变量类型必须根据位置一一对应。5)未知公共区域中的变量的数量在每个程序单元中可以不同,并且从开始位置对应于公共a、b、c

4、、d、e、f公共n1、n2、n3、n4、n5、f6。)字符变量不能与其他变量共享一个公共区域。831 COMMON的使用被称为公共区域:COMMONE/N1/A1、A2、/N2/B1、B2、并且很少有需要共享的变量,这些变量是通过参数传递的。当多个函数中需要使用大量变量或这些变量时,使用全局变量。块数据,通用变量不能使用连接到子程序或主程序的数据来分配初始值,数据应该用于在块数据程序模块中设置初始值。块数据仅用于填充全局变量的数据内容,不能放置程序命令。当开始执行数据内容时,即在执行主程序之前,将设置初始值内容。84函数中的变量,841传递参数的注意事项子程序名(虚拟参数),调用名(真实参数)

5、,函数或子程序的虚拟参数在调用前不配置内存,它只是一种形式。当被调用时,它通过地址与实际参数相结合。当退出子例程时,虚拟参数再次变得未定义。841传递参数的注意事项,类型匹配可以直接传递常量,常量的类型也应该匹配。传递常数时,确保函数不改变相应虚拟参数的内容,842数组参数,1)传递数组参数实际上是传递数组元素的内存地址函数接收的数组参数,所有数组元素在函数执行前都已配置了内存空间。函数中的声明只定义了如何使用它们,其中一些是可以使用的。把一个维度变成两个维度;改变坐标范围等。2)传递函数数组参数时,虚拟参数组不应超出实际参数数组的范围。编译器不能区分,但执行时会出错。3)当声明一个数组时,常

6、数应该用来确定数组的大小,当它被用作一个函数的虚拟参数时,变量可以用来声明数组的大小。4)作为函数虚拟参数的多维数组,最高维的大小不能声明,其他维的大小必须声明。842数组参数、842数组参数、数组虚拟参数的大小由变量声明。例2,当数组作为函数的虚拟参数时,数组的大小可以用变量来声明,最大维数甚至不能设置,但不能超过实际参数数组的范围。在调用时不应超过实际参数数组的范围,并且在传递字符串数组3360时不能声明长度。多维数组的转移:最高维度的大小不能声明,但其他维度必须声明大小,并且不能写成写(*,*) a,程序ch _ array隐式无字符(len=5) :3360 ch (5)!字符串数组5

7、 * 5datach/12345,BBB bb B,cccc,ddddd,ee ee/call sub(ch)stop end sub(B)隐式none integer I character(len=4): B(5)write(*,(1X,A) (B(i),i=1,5)返回结束子例程,字符串数组的传输,变量的8-4-3生命周期,函数中变量的生命周期(不包括输入参数),仅在调用子例程期间。声明中使用了SAVE,它可以保证程序的存储空间在整个执行过程中始终被保留,并且以前设置的内容将被记住。Fortran 90 Integer,save:计数器=1,函数中的变量在visual fortran中保留!注意初始值和赋值的区别,844传递函数,传递的参数可以是函数名(子程序),函数名作为实际参数应该先声明。当一个函数被声明时,内部表示一个库函数;外部表示用户定义的函数。844传递函数,当

温馨提示

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

评论

0/150

提交评论