Fortran变量声明
Fortran代码是由主程序(program),子过程(subroutine),子函数(function),以及模块(module,submodule)组成。
program与C/C++中的main函数类似,每一个project必须也仅能含有一个。
subroutine和function则对应于C/C++中的有返回值和无返回值的函数。
module和submodule是Fortran中特有的,方便共享变量和函数。
如下是一个合法的Fortran程序:
1 | 1 program main |
第一行是主程序声明program,其中main为主程序的名字,也可以起其他的名字,第二行代码是要求这个程序中的变量必须显式的定义,因为Fortran中有一个隐含规则,就是以ijklmn开头的变量名默认为单精度整数(4byte),其他变量名为单精度浮点数(4byte),不作变量声明即可使用。不过这个规则现已经过时,尤其在程序调试(Debug)过程中容易出问题,从而建议这里都加上这一条,使得所有变量都需要显式声明。第三行代表的是输出语句。最后一行使用end program语句去结束主程序,其中主程序名main可以省略。
Fortran基础变量类型有整型(integer)、浮点型(real)、复数型(complex)、逻辑型(logical)及字符型变量(character)。另外还有数组(dimension)和结构体(type)。
Fortran中整型默认为长整型(4bytes),浮点型默认为单精度(4bytes),复数型默认为两个单精度浮点型,具体声明方式如下:
1 | 1 integer :: a |
若想声明整数为整型则需要将上述声明变为integer(kind=2),类似的声明为双精度浮点型需要变为real(kind=8),这里的kind=可以省略。声明长度为n的字符串则换为character(len=n),这里的len=也可省略。Fortran中还可声明变量为超长整型real(16),当然程序运行速度也会变慢很多。
上述变量声明中都有::符号,仅为变量声明的时候是可以省略的,但是为了避免错误都加上为好。变量声明时还可添加属性关键字,例如常量parameter,数组dimension等,这些以后再一一说明。