1

我从以前的研究人员那里继承了一个旧的 f77/g77 程序,但对 Fortran 的经验很少。我已经完成了文件中的大部分语法转换,但我遇到了一个问题,即旧文件调用了一个名为libstr的(已弃用?)库。我似乎在任何当前的 gfortran 文档中都找不到对此的参考(尽管我也不确定我是否在寻找正确的地方)。我想知道的是是否有办法避免调用Unionand flostr函数,而是直接在文件中输出值。

代码的相关部分在这里:

if (mod(ntime,nout) .eq. 0) then

ndec = 1
call flostr(t,str1,ndec)
call Union('signal_t=',str1,str2)
call Union('lineshapeSPConD_t=',str1,str3)
open(7,file = str3,STATUS ='unknown')   

我想要么弄清楚如何安装库(我尝试运行 makefile,并且 gfortran 在其搜索路径中查看 /usr/bin),要么能够替换函数将解决问题。我在 OS X 10.8.3 上使用从 Homebrew 安装的 gfortran 4.8。

谢谢!

更新:

我通过在 gfortran 编译中包含库成功地编译了代码,但是现在运行输出程序会导致一串错误......</p>

输出错误是:

Program received signal SIGFPE: Floating-point exception - erroneous 
arithmetic operation.

Backtrace for this error:
#0  0x1470e91c2
#1  0x1470e998e
#2  0x7fff92330949
#3  0x10421642e
#4  0x104217472
[1]    18171 floating point exception  ./Lineshape_thick_SP_New.x

回到绘图板。

4

0 回答 0