书面格式
Fortran程序代码的编写格式有两种,Free Format(自由格式)及Fixed Format(固定格式)。Fortran程序代码扩展名为.f或.for的文件,就是指以Fixed Format 来编写的程序;以扩展名为*.f90的文件,就是以Free format来编写的程序。
固定格式的程序,对于字段的意义要求的比较明确,即我们只能在第7~72个字符位置编写我们的程序。
第1个字符 | C、c、*,表示该行为注释行,不会被编译 |
---|---|
第1-5个字符 | 数字表示行代号,否则空格 |
第6个字符 | 0以外的数字表示续行 |
第7~72个字符 | 程序编写区域 |
第73个字符以后 | 不被编译,或编译错误 |
写到这里,木木强烈推荐大家使用这款Fortran编译器:Simply Fortran。获取方式已经在我的第一篇文章中简单介绍,为什么极力推荐呢?原因有二:其一,小巧方便(与vs-ivf相比);其二,它可以显示关键字符位置(第6个与第72个),如下图:
接下来用一个小程序展示一下Fixed Format
1C fixed format
2 program main
3 write(*,*)'hello',
4 5'nihao'
58 stop
6 end
7
第一行开头C表示注释,5在第6个字符位置,表示续行,8在第1~5个字符位置表示行代码(后续的文章中会讲到行代码在Fixed Format中的应用)。
注意: fortran中不区分大小写,字符间空格没有实际意义。
Free Format对字符位置没有那么严苛的要求,需要注意的有:
1.叹号“!”==后面的文本==都是注释行;
2.行号放在程序的最前面(一般不咋用);
3.每行可以编写==132==个字符;
4.续航符为“&”,放在行的最后。
1program main
2write(*,*)'h&
3ello' ! 注释哦
4end
我们可以注意到换行符&已经在Free Format中起作用了,注释也比较方便啦~
Write括号里面的两个*,都有着各自的意义,第一个星号代表输出的位置使用默认值,也就是说屏幕,第二个星号代表不特别设置输出格式(后续推文会讲到格式化输出)。write的不同写法:
1write(*,*)"巴拉巴拉"
2write(UNIT=*,FMT=*)"巴拉巴拉"
3write(6,*)"巴拉巴拉" !屏幕输出unit的默认位置就是6
4write(UNIT=6,FMT=*)"巴拉巴拉"
当然,最简单的莫过于第一种写法,这里需要注意的是:因为双引号是用来输出字符串的,所以想要输出双引号时,要用双双引号哦~
Free Format可使用双引号或者单引号来封装字符串,Fixed Format只能使用单引号来封装字符串。
此处还要讲一个命令:stop
Stop表示程序终止的意思,尽量不要使用在主程序结束之外的地方。
结束程序有3种方法:
1end !fixed format只使用这个
2end program
3end program main
1program main
2 integer a
3 read(*,*) a
4 write(*,*) a
5end
这段程序用到了read命令,运行时,程序会等待用户输入数据,integer表示声明的意思(后续的推文中会提及),两个星号的意思与write相同。
读入多个数据
1program main
2 integer a,b,c
3 read(*,*) a,b,c
4 write(*,*) a+b+c
5end
该程序中,用户可以输入3个整数,逗号或空格用来区分数据,每输入一次数据按一次Enter键表示输入完成。
今天的Fortran学习就到此为止啦,以后会不定时更新有关Fortran编程的博客,敬请关注!