xlf と f90のコンパイル方法
解決したいこと
現在、私は学校で研究を行っています。
そこで研究の参考となる資料に付属されていた2つのプログラムを実装しようと考えました。
そのプログラムにはコンパイラ記載箇所にxlfと書かれているものとf90とかかれているMakefileが入っていました。
しかし、いすれのコンパイラもみたことがなく、どのようにコンパイルし実行すればよいのかが分かりません。
そこで強硬手段として、いずれのコンパイル記載箇所に対して、私のパソコンに入っているgfortranに書き換えてみましたが実行できませんでした。
発生している問題・エラー
gfortran -p -g -o piprot pipco.o pipge.o piphn.o piptn.o pipphnc.o pipio.o pipintur.o pipindip.o piptr.o piptu.o pipma.o pipti.o ../../NCARFFT/ffts.o
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: pipco.o: in function `meshes_':
C:\Users\sfe8\Desktop\diskette\CODESCH10\PIP/pipco.f:10: undefined reference to `__fentry__'
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: pipco.o: in function `cordin_':
C:\Users\sfe8\Desktop\diskette\CODESCH10\PIP/pipco.f:34: undefined reference to `__fentry__'
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: pipco.o: in function `cordino_':
C:\Users\sfe8\Desktop\diskette\CODESCH10\PIP/pipco.f:142: undefined reference to `__fentry__'
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: pipge.o: in function `divgu_':
C:\Users\sfe8\Desktop\diskette\CODESCH10\PIP/pipge.f:14: undefined reference to `__fentry__'
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: pipge.o: in function `divuck_':
C:\Users\sfe8\Desktop\diskette\CODESCH10\PIP/pipge.f:40: undefined reference to `__fentry__'
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: pipge.o:C:\Users\sfe8\Desktop\diskette\CODESCH10\PIP/pipge.f:88: more undefined references to `__fentry__' follow
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: pipma.o: in function `main':
C:\Users\sfe8\Desktop\diskette\CODESCH10\PIP/pipma.f:176: undefined reference to `_monstartup'
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: pipti.o: in function `invinv_':
C:\Users\sfe8\Desktop\diskette\CODESCH10\PIP/pipti.f:11: undefined reference to `__fentry__'
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ../../NCARFFT/ffts.o: in function `fftrig_':
C:\Users\sfe8\Desktop\diskette\CODESCH10\PIP/../../NCARFFT/ffts.f:1249: undefined reference to `__fentry__'
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ../../NCARFFT/ffts.o: in function `fax_':
C:\Users\sfe8\Desktop\diskette\CODESCH10\PIP/../../NCARFFT/ffts.f:1189: undefined reference to `__fentry__'
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ../../NCARFFT/ffts.o: in function `fft99b_':
C:\Users\sfe8\Desktop\diskette\CODESCH10\PIP/../../NCARFFT/ffts.f:948: undefined reference to `__fentry__'
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ../../NCARFFT/ffts.o: in function `vpassm_':
C:\Users\sfe8\Desktop\diskette\CODESCH10\PIP/../../NCARFFT/ffts.f:1290: undefined reference to `__fentry__'
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ../../NCARFFT/ffts.o:C:\Users\sfe8\Desktop\diskette\CODESCH10\PIP/../../NCARFFT/ffts.f:874: more undefined references to `__fentry__' follow
collect2.exe: error: ld returned 1 exit status
make: *** [piprot] エラー 1
該当するソースコード
一例としてf90コンパイラが書かれていたmakefileを添付します。
SWI= -c -p -g -O5
piprot: pipco.o pipge.o piphn.o piptn.o pipphnc.o pipio.o pipintur.o pipindip.o piptr.o piptu.o pipma.o pipti.o ../../NCARFFT/ffts.o
f90 -p -g -o piprot pipco.o pipge.o piphn.o piptn.o pipphnc.o pipio.o pipintur.o pipindip.o piptr.o piptu.o pipma.o pipti.o ../../NCARFFT/ffts.o
pipco.o: pipco.f param.f
f90 $(SWI) pipco.f
piphn.o: piphn.f param.f
f90 $(SWI) piphn.f
pipti.o: pipti.f param.f
f90 $(SWI) pipti.f
piptn.o: piptn.f param.f
f90 $(SWI) piptn.f
pipphnc.o: pipphnc.f param.f
f90 $(SWI) pipphnc.f
pipio.o: pipio.f param.f
f90 $(SWI) pipio.f
pipintur.o: pipintur.f param.f
f90 $(SWI) pipintur.f
pipindip.o: pipindip.f param.f
f90 $(SWI) pipindip.f
piptr.o: piptr.f param.f
f90 $(SWI) piptr.f
piptu.o: piptu.f param.f
f90 $(SWI) piptu.f
pipma.o: pipma.f param.f
f90 $(SWI) pipma.f
pipge.o: pipge.f param.f
f90 $(SWI) pipge.f
../../NCARFFT/ffts.o: ../../NCARFFT/ffts.f
f90 $(SWI) ../../NCARFFT7ffts.f
自分で試したこと
先ほども述べましたが、今回のエラーの発生は強硬手段であると考えています。
しかし、xlf、f90ともにどのように入手すればよいのかがわかりません。
参考とした資料には
"The make files permit to compile the codes, in IBM or Digital computers."
と書かれていましたが、IBMのハードウェアは所持していません。
またxl fortran のサイトでインストールを試みましたが、前提ハードウェアである"IBM POWER8" を所持していないため、インするトールができませんでした。
よろしくお願いいたします。
0 likes