0

我正在尝试编译一段名为 DLPOLY 的科学代码(支持多核处理)。有关如何执行此操作的在线说明似乎已过时,并且生成文件仅包含大型计算集群的示例,而不是家用计算机。

说明如下:

通用目标模板

未知平台:

    $(MAKE) LD="path to FORTRAN90 Linker-loaDer" \
    LDFLAGS="appropriate flags for LD (MPI libraries)" \
    FC="path to FORTRAN90 compiler" \
    FCFLAGS="appropriate flags for FC (MPI include)" \
    EX=$(EX) BINROOT=$(BINROOT) $(TYPE)

我通过自制软件安装了 gfortran 和 open-mpi,以及 Xcode CLT。如果它更容易,我不介意使用,例如,macports。

编辑:例如我试过这个:

    LD="ld"
    LDFLAGS="-L/usr/local/lib"
    FC="gfortran"
    FCFLAGS="-I/usr/local/include/"

但随后出现此错误:

   'Use mpi_module' must change to 'Use mpi' in 'comms_module.f90'

   gfortran -I/usr/local/include/ kinds_f90.f90
   Undefined symbols for architecture x86_64:
     "_MAIN__", referenced from:
         _main in libgfortranbegin.a(fmain.o)
   ld: symbol(s) not found for architecture x86_64
   collect2: ld returned 1 exit status
   make[1]: *** [kinds_f90.o] Error 1

所以我不知道我需要做什么。在进一步谷歌搜索后,我尝试了:

  LD="mpif90"
  LDFLAGS="-m64"
  FC="mpif90"
  FCFLAGS="-m64"

但我收到了类似的错误消息...

4

1 回答 1

1

已经取得了进展。它开始使用这些设置进行编译,尽管我没有正确理解它们:

$(MAKE) FC="mpif90" LD="mpif90 -o" \
LDFLAGS="-O2 -ffast-math" \
FFLAGS="-c -O2 -ffast-math"\
EX=$(EX) BINROOT=$(BINROOT) $(TYPE)

但最终出现错误:

mpif90 -c -O2 -ffast-math set_bounds.f90 set_bounds.f90:36.23:

zero_plus = Nearest( 0.0_wp , 1.0_wp) 1 错误:NEAREST 的结果在 (1) 处下溢

于 2012-11-12T01:20:43.043 回答