专栏/FORTRAN基础编程(1)——基本格式及输出、读入

FORTRAN基础编程(1)——基本格式及输出、读入

2022年03月28日 02:03--浏览 · --点赞 · --评论
粉丝:1.1万文章:47

以下内容转载木木公众号:易木木响叮当

Fortran程序代码的编写格式有两种,Free Format(自由格式)及Fixed Format(固定格式)。Fortran程序代码扩展名为*.f或*.for的文件,就是指以Fixed Format 来编写的程序;以扩展名为*.f90的文件,就是以Free format来编写的程序。

一、Fixed Format(固定格式)

固定格式的程序,对于字段的意义要求的比较明确,即我们只能在第7~72个字符位置编写我们的程序。

第1个字符C、c、*,表示该行为注释行,不会被编译第1-5个字符数字表示行代号,否则空格第6个字符0以外的数字表示续行第7~72个字符程序编写区域第73个字符以后不被编译,或编译错误

写到这里,木木强烈推荐大家使用这款Fortran编译器:==Simply Fortran==。获取方式已经在我的第一篇文章中简单介绍,为什么极力推荐呢?原因有二:其一,小巧方便(与vs-ivf相比);其二,它可以显示关键字符位置(第6个与第72个),如下图:

Simply Fortran
Simply Fortran

接下来用一个小程序展示一下Fixed Format

C     fixed format
      program main
      write(*,*)'hello',
     5'nihao'
8     stop
      end

第一行开头C表示注释,5在第6个字符位置,表示续行,8在第1~5个字符位置表示行代码(后续的文章中会讲到行代码在Fixed Format中的应用)。 ==注意==: fortran中不区分大小写,字符间空格没有实际意义。

二、Free Format(自由格式)

Free Format对字符位置没有那么严苛的要求,需要注意的有: 1.叹号“”==后面的文本==都是注释行; 2.行号放在程序的最前面(一般不咋用); 3.每行可以编写==132==个字符; 4.续航符为“&”,放在行的最后。

program main
write(*,*)'h&
ello'           ! 注释哦
end

我们可以注意到换行符&已经在Free Format中起作用了,注释也比较方便啦~

三 、输出(write)

Write括号里面的两个*,都有着各自的意义,==第一个星号代表输出的位置使用默认值,也就是说屏幕,第二个星号代表不特别设置输出格式==(后续推文会讲到格式化输出)。write的不同写法

write(*,*)"巴拉巴拉"
write(UNIT=*,FMT=*)"巴拉巴拉"
write(6,*)"巴拉巴拉" !屏幕输出unit的默认位置就是6
write(UNIT=6,FMT=*)"巴拉巴拉"


当然,最简单的莫过于第一种写法,这里需要注意的是:因为双引号是用来输出字符串的,所以想要输出双引号时,要用双双引号哦~ ==Free Format可使用双引号或者单引号来封装字符串,Fixed Format只能使用单引号来封装字符串==。 此处还要讲一个命令:stopStop表示程序终止的意思,尽量不要使用在主程序结束之外的地方。 结束程序有3种方法:

end  !fixed format只使用这个
end program
end program main

四、读入(read)

program main
    integer a
    read(*,*) a
    write(*,*) a
end

这段程序用到了==read==命令,运行时,程序会等待用户输入数据,integer表示声明的意思(后续的推文中会提及),两个星号的意思与write相同。读入多个数据

program main
    integer a,b,c
    read(*,*) a,b,c
    write(*,*) a+b+c
end

该程序中,用户可以输入3个整数,逗号或空格用来区分数据,每输入一次数据按一次==Enter键==表示输入完成。 今天的Fortran学习就到此为止啦,以后会不定时更新有关Fortran编程的博客,敬请关注!

投诉或建议