1

我正在寻找让 f2c 在我的 redhat linux 操作系统上工作的 rpm 或简单的安装说明。我是 linux 新手,很难在谷歌上找到这样的东西。

(目标是用f2c把一个简单的fortran77文件转成c,然后编译)

有人有什么建议吗?

4

2 回答 2

5
  1. 使用 rsync 获取源代码(推荐):

    $ rsync -avz netlib.org::netlib/f2c/src f2c
    

    通过 FTP 获取源:

    $ mkdir -p f2c/src
    $ cd f2c/src
    $ ftp ftp.netlib.org
    ftp> cd f2c
    ftp> prompt
    ftp> mget *
    
  2. 要构建源代码,请在 f2c/src 目录中执行以下操作:

    $ make -f makefile.u
    
  3. 要安装二进制文件,请将其复制到 $PATH 中的目录:

    $ mkdir -p /usr/local/bin /usr/local/man/man1
    $ cp f2c /usr/local/bin
    $ cp f2c.1t /usr/local/man/man1
    
  4. 要编译 Fortran 程序,您还需要libf2c

    $ mkdir libf2c
    $ cd libf2c
    $ unzip ../libf2c.zip
    $ make -f makefile.u
    $ make -f makefile.u install LIBDIR=/usr/local/lib
    

    libf2c 是libF77libI77库的组合。您可以单独安装这些库,然后使用“-lF77 -lI77”链接。假设 f2c/src 在当前目录中可用,保存libF77libI77并执行以下操作(如果您已经在上面安装了 libf2c,则不需要):

    $ sh libf77
    $ sh libi77
    $ cd libF77
    $ make CFLAGS=-I../f2c/src
    $ make install LIBDIR=/usr/local/lib
    $ cd ../libI77
    $ make CFLAGS=-I../f2c/src
    $ make install LIBDIR=/usr/local/lib
    
  5. fc shell 脚本是与 f2c 一起使用的一个不错的前端。将其保存在某处并执行:

    $ cp fc /usr/local/bin/f77
    $ chmod 755 /usr/local/bin/f77
    

    我将它重命名为 f77 以避免冲突,因为 fc 是内置的 bash。fc 脚本需要 libf2c 而不是 libF77 和 libI77,因此如果您安装了这些库而不是上面的 libf2c,则必须对其进行编辑并将“-lf2c”替换为“-lF77 -lI77”。

  6. 最后,要编译您的程序,您可以执行以下操作:

    $ f77 source.f -o binary
    

还要检查f2c 父目录。它包含getopt.cf2c.pdf和其他一些可能有用的东西。

有关 f2c 的更多信息,请参阅自述文件 ( less f2c/src/readme) 和手册页 ( man f2c)。有关 fc 脚本的更多信息,请查看文件开头的注释。

于 2009-07-24T08:21:56.840 回答
0

您可以从 ATrpms 获得预编译的 f2c 包:http://atrpms.net/name/f2c/ 确实在标准目录中包含标头(例如f2c.h)和库(libf2c),因此编译时应该没有任何问题在那之后。

否则,您可以尝试使用免费的 Fortran 编译器直接编译;试试gfortran。如果未安装,它在 package 中gcc-gfortran,因此您可以使用以下命令安装它:yum install gcc-gfortran

于 2009-07-31T12:02:57.090 回答