我从以前的研究员那里继承了一个旧的f77 / g77程序,但是Fortran经验很少。我已经完成了文件中的大部分语法转换,但是我遇到了一个问题,即旧文件调用一个(不推荐的?)库,称为libstr。我似乎无法在任何当前的gfortran文档中找到对此的引用(尽管我不确定我是否正在寻找合适的位置)。我想知道的是,是否有办法避免调用Union
和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编译中包含库来编译代码,但是现在运行输出程序会导致一串错误......
输出错误是:
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
回到绘图板。