Our goal is to modernize old fortran from FORTRAN 77 to Fortran 90. 在下文中统一简称FORTRAN 77为F77,Fortran 90为F90。
Col. 1 : Blank, or a "c" or "*" for comments
Col. 1-5 : Statement label (optional)
Col. 6 : Continuation of previous line (optional)
Col. 7-72 : Statements
Col. 73-80: Sequence number (optional, rarely used today)
F77中大部分行都需要用6个空白开头,而在F90中该规则已被舍去。
由于F90兼容F77,所以一些在F90中不推荐的用法也可以被运行。
内容 | F77 | F90 | 转换方法 |
---|---|---|---|
扩展名 | 固定格式.f或.for | 自由格式.f90 | 调整新建文件后缀 |
注释 | 根据column position rules在位置1置为'c' | 在任意位置打入'!' | 识别并替换 |
内容延续 | 根据column position rules在位置6置为'+',可以让单词从中间分开 | 在行末放'&',不可以分开单词 | F77多行拼成F90一行,超出F90限制需特殊处理 |
列宽 | 程序应放在7-72列 | 程序自由放置,不能超过132列 | 需要清理其它位置的信息 |
变量名长度 | 不超过6 | 不超过31 | 一般无需处理 |
该语言不区分大小写,例如$X$和$x$是相同的变量。
除了特别的固定格式,其余部分没有强制缩进。
[8]f77tof90
能运行,可以完成诸如换行,注释等内容的转换
无法处理goto,以及其文档中提到的continue语句
spyder打开代码后,命令行输入如下指令运行:
runfile('K:/Document/Modernizing-Old-Fortran/tool/f77tof90.py', wdir='K:/Document/Modernizing-Old-Fortran/tool',args='K:/Document/Modernizing-Old-Fortran/tool/complex.f')
注意最后一个文件是要编译的文件名,并及时调整路径。
[10]Polyhedron
付费的
[11]CamFort
提供规范和验证
[1]简洁的F77英文介绍
[2]F77转F90中文简要介绍:JeffHuge,Fortran77到Fortran90的注意之处,2024.3.25
[3]Fortran官网
[4]nancygreen,Fortran77-90-95,2024.3.25
[6]F77_TO_F90
[7]f2f90
[8]f77tof90
[10]Polyhedron
[11]CamFort