fortran'call'vs'include'

eja*_*ang 2 fortran call include

我看到Fortran有'call'和'include'语句.两者有什么区别?.i文件类型有一些意义吗?

即:

include 'somefile.i'
call 'somesubroutine.f'
Run Code Online (Sandbox Code Playgroud)

谢谢!

Roo*_*ook 6

INCLUDEstatement允许您包含来自其他文件的源,就好像它位于语句所在的文件中一样.它在组织代码方面的用处有点可疑,但有些人发誓.在F77中它是一个共同的延伸(我相信,从MIL-STD 1971),在F90它使它成为标准.文件类型没有意义.事实上,在fortran中,大多数文件类型(甚至是f77,f90等更常见的文件类型)都没有意义.大多数编译器仅使用它们来自动"检测"并将自由形式与固定形式的源代码区分开来,但它们也允许其他形式.

CALLstatement用于调用子例程.它的形式CALL subroutine_name(list-of-arguments).子程序是构建程序并将程序划分为逻辑子单元的更简单方法之一.

但这都是相对基础的,并且在每个Fortran教程中都有介绍.有些更好,有些更糟.对于学习者来说,一些好的起点是维基百科页面(不完美,但也不是那么糟糕),FortranWiki和两本书.一个IRO-bot已经提到过,其他的将是Chapman的科学家和工程师的Fortran 95/2003.它通常被认为更适合初学者,有一个简单的方法和过多的实际例子,而Metcalf的目标也是更多的参考书.