Fortran学习笔记6(函数、子程序) |
您所在的位置:网站首页 › 调用子程序代码的两种格式 › Fortran学习笔记6(函数、子程序) |
子程序Subroutine
自定义函数Function
全局变量COMMON
BLOCK DATA
程序代码中,常常会在不同的地方重复用到某一功能和重复某一代码,这个时候就要使用函数。函数包括内嵌函数,自定义函数,子程序。 子程序Subroutine子程序之所以叫子程序,是因为在没有经过调用之前,它不会被执行。(当然,如果把编译器对主函数的调用也看做同样的话则另当别论。) 包含子程序的程序的格式: program main ...... ...... call sub_1(...) ...... call sub_2(...) ...... end program main subroutine sub_1(...) ... end subroutine sub_1 subroutine sub_2(...) ... end subroutine sub_2主程序并不一定要放在最开始,它可以放在程序的任何地方(但是最好放在最开始或者结尾,如果你放在了一大段程序的中间……何苦为难自己!)子程序之间也可以互相调用。甚至可以自己调用自己,这个算法就叫递归,但是Fortran77不支持。调用语句为call。 有关子程序,一个很重要的概念是,子程序独立的拥有属于自己的变量申明。主程序和子程序,不同的子程序之间的变量名可以相同,他们互不干扰。除了变量独立,子程序还独立拥有自己的行代码。 在子程序的调用中会涉及到参数传递。Fortran中的参数传递使用的是传址调用。也就是说,实参和形参公用一块内存,两者改变其中之一,另一者也会发生变化,(其实是形参暂时的借住在实参家里。) 自定义函数Function自定义函数的运行和上面的子程序没有什么两样,也需要调用才能被执行,也可以独立声明变量,参数传递的方法和子程序相同。尽管如此,自定义函数和子程序还是有两点不同: 调用自定义函数前要声明。 自定义函数调用后会返回一个数值。下面是一个简单的程序:用牛顿法来解方程。 program main implicit real* |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |