0

DLPOLY(マルチコア処理をサポート)と呼ばれる科学コードをコンパイルしようとしています。これを行う方法についてのオンラインの説明は時代遅れのようであり、makefileには大規模なコンピューティングクラスターの例のみが含まれており、家庭用コンピューターは含まれていません。

手順は次のとおりです。

汎用ターゲットテンプレート

unknown_platform:

    $(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)

Xcode CLTとともに、gfortranとopen-mpiをhomebrew経由でインストールしています。簡単であれば、たとえば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 に答える