主题:F2C使用问题
jackchan
[专家分:0] 发布于 2011-10-18 15:23:00
各位好!以前没用过fortran,公司有些F77的程序,想要把他转成C,在网上找了F2C,但是总不能转译成功,是不是我设置有什么问题?
error on line 1: illegal continuation card <starts "f2c ex">
回复列表 (共8个回复)
沙发
cgl_lgs [专家分:21040] 发布于 2011-10-18 16:01:00
F2C不能保证总转换成功的,有些特殊的情况是无法转换的:)
比如一些无法等效转换的情况:)
Fortran允许一个函数有多个入口,而C是不允许的:)
Fortran允许同一块内存存在不同的意义,C倒是可以用指针来解决,但后果未知。
Fortran的同一个名称的公共区可以有不同的排列以实现一些特殊的需求,而C如果想用union来对应的话也会很麻烦~~~
……
板凳
jackchan [专家分:0] 发布于 2011-10-19 08:09:00
谢谢回帖,但是我现在不能确定是我F2C设置使用有问题还是原程序不能转换,你能不能给介绍下F2C在windows下使用方法。或者帮我介绍下为什么原来在98下能跑的程序现在在xp下不能跑了?重新编译下可以吗?这些程序都是原来老师傅们写的。
3 楼
cgl_lgs [专家分:21040] 发布于 2011-10-19 10:42:00
建议您还是重编译一下您的FORTRAN程序吧,如果是在XP,可以用CVF或是IVF:)牛X点儿可以用gcc:)
4 楼
jackchan [专家分:0] 发布于 2011-10-19 11:51:00
再麻烦你一下,我用CVF重新编译,总是出现无法找到INIT的问题。
NINT不是FORTRAN的内部函数吗?这是怎么回事呢?
SN1.OBJ : error LNK2001: unresolved external symbol _FINT@20
SN2.OBJ : error LNK2001: unresolved external symbol _NINT@8
5 楼
cgl_lgs [专家分:21040] 发布于 2011-10-19 14:35:00
查找一下NINT,应该是此函数里的类型错误:)
6 楼
jackchan [专家分:0] 发布于 2011-10-19 15:18:00
查过参数了,是REAL;NINT(IDO)多次出现,但是就只有在一个地方会出错,这是为什么呢?
7 楼
cgl_lgs [专家分:21040] 发布于 2011-10-19 17:16:00
IDO?
这个I打头的不是整型?
8 楼
jackchan [专家分:0] 发布于 2011-10-20 08:14:00
确实是REAL。不过不管他了,看了下程序逻辑,都是给赋的整数,就先把NINT去了,总算生成成功了。谢谢你了!
我来回复