由于 f77 不支持可变数组,导致想添加的功能不能实现,于是想把整个工程从 77 转成
90 。有同学推荐, 直 接 在 f77 的 模 式下 强 行 把 f90 的功 能 加进 去 ( 比 如可 变 数 组 ,
module 等),然后用 gfortran 编译也能通过运行。我自己做了小测试发现可变数组确实
可以运行,但是不推荐,毕竟不规范!
说回正题,f77 转 f90 倒是有一个比较好的网站可以转,而且还能在线转,网址:
http://quill.fcode.cn/ 。但是网上转有一点不方便,不能批量转换,对文件大小也有限制
所以就上 google 上找了,主要找到了一下几个:
1.f77tof90, a Bourne shell script for dealing with non-standard F77 code. It
converts Record and Structure F77 extensions into F90 Type statements. It
also converts C-preprocessed #include statements into Fortran INCLUDE
statements. Written by Jack Scheible.
网址:www.soton.ac.uk/~fortran/tools/f77tof90/f77tof90.html
2.convert.f90, written by Mike Metcalf.
网址:ftp://ftp.numerical.rl.ac.uk/pub/MandR/convert.f90
3.to_f90.f90, written by Alan Miller.
网址:users.bigpond.net.au/amiller/to_f90.f90
4.ftof90.c, for converting comments and continuation lines, written by Michael
Olagnon.
网址:ftp://ftp.ifremer.fr/ifremer/ditigo/fortran90/ftof90.c.gz
5.f2fis aPerlscript which does much of the tedious work of converting
Fortran 77 source code into Fortran 90/95 form. There seems to be a lot of
Fortran hate in the world, and I think this comes from people who have been
forced to use Fortran 77 at some time or another. Hopefully, this program will
make you a less hateful person.
网址:https://bitbucket.org/lemonlab/f2f/
6. fortran_tools-master,一个 python 的项目
项目主页:https://github.com/arktools/fortran_tools
这六个我都试了一下,大部分的效果都不太理想(可能不同程序效果不一样,大家踊跃
尝试)。其中第 4 个算是比较稳定的,因为它好像修改的部分最少,仅对换行符,注释符
进行了修改,不改变程序原有的 goto 语句。所以我选用了第四个,但是目前除了 python
那个是批处理的,其他都不是,没办法,只能自己动手。使用的方法说明如下:
1). 将 ftof90.c 的源文件与 read.bat 的源文件放在同一个目录
2). 编译 ftof90.c,注意生成的可执行文件名一定要是 ftof90.exe
3). 把所有要转换的.f 文件都复制到本目录下,!!!不能保证每个程序的转换效果,因
此一定要留.f 备份
4).双击 read.bat(windows 下),会生成一个新的 run.bat
5).执行 run.bat,大功告成!
评论0
最新资源