有一段接近1000行的Fortran77程序,需要在一个新程序中重用,而且非常不想编译新程序的时候还需要fortran编译器,而且为了日后维护方便,也不想把它弄成静态lib。于是决定把它转换成C程序。
以往都是手动转或者看懂后重写,不过这段计算复杂,而且有不少隐含变量,还有equivalence语句,于是找到了f2c这个工具,使用效果非常好。转换后的结果可以直接编译,而且通过简单的处理也可以去掉对f2c.h的依赖。
f2c的主页在:http://www.netlib.org/f2c/,提供源代码和二进制文件下载。
f2c的mswin平台命令行(131KB)
其实f2c的使用方法非常简单:
f2c [ option ... ] file ...
一般option取默认即可,如 f2c romform.f 。
需要注意的是,fortran的文件后缀必须是.f或者.F,.for是不认的,而且严格执行72列的限制。