HOME >  技術情報 >  Fortran install

Fortran install 

gfortran

gfortran をとりあえずhpc.sourceforge.net から入れていたが、最近MacOSX用にパッケージ化してくれたヒトがいるらしい。しかしいれてみると

gfortran -O2 -fno-range-check -c fftsg.f 
dyld: Library not loaded: /usr/lib/libiconv.2.dylib Referenced from: /usr/local/bin/gfortran 
Reason: Incompatible library version: gfortran requires version 7.0.0 or later, 
but libiconv.2.dylib provides version 5.0.0

というエラーが出て止まるようになった。これはいかん。とりあえずlibiconv.2.dylib で検索をかけてみると、

http://homepage.mac.com/matsuan_tamachan/software/LibIconv.html

というページが出てきた。これを見て最新版をインストールする。ついでに

$ export DYLD_LIBRARY_PATH="/usr/local/lib"

を入れて新しい版を認識するようにしてみたが、今度は

gfortran -O2 -fno-range-check -c fftsg.f make[1]: *** [fftsg.o] Bus error make: *** [double] Error 2
が出て止まる。元に戻す。

ifort install

intelでもfortranを出している。

http://www.intel.com/cd/software/products/asmo-na/eng/282048.htm

これが Intel Mac だと最適化して非常に早くなるという噂を聞いたので、評価版をダウンロードして入れてみる。これはインストーラが付属していて特に問題なし。とりあえずMakefile でコンパイラをifortに変えると


 

fortcom: Error: fortmain.f, line 32: Syntax error, found END-OF-STATEMENT when expecting one of: 
= .EQV. .NEQV. .XOR. .OR. .AND. .LT. < .LE.  ...
        dimension u(imax,jmax), v(imax,jmax), eig_u(imax,jmax), eig_v(imax,jmax)
--------------------------------------------------------------------------------^
compilation aborted for fortmain.f (code 1)
make: *** [fortmain.o] Error 1

 


というエラーが出て止まる。ためしに、

gfortran fortmain.f

をかけてみると、

fortmain.f:32.72:

       dimension u(imax,jmax), v(imax,jmax), eig_u(imax,jmax), eig_v(ima
                                                                       1
Error: Expected another dimension in array declaration at (1)

が出て止まる。ほぼ同じ場所で止まっているようだ。ということは、Makefile に入っている-ffixed-line-length-noneが効いているようだ。Fortran の文法の問題か?代わりに-extend-source を入れると通った。しかしこんどは

Linking Type1.out ...
ld: multiple definitions of symbol _main
/opt/intel/fc/10.0.016/lib/for_main.o definition of _main in section (__TEXT,__text)
fname.o definition of _main in section (__TEXT,__text)
make: *** [Type1.out] Error 1

というのが出る。検索をかけてみたら

lists.apple.com—msg00012.html <http://lists.apple.com/archives/fortran-dev/2007/Jul/msg00012.html>

というのがあったので、-nofor-main というオプションをLDFLAGSにつけてやったら通った。完了。

ページトップへ戻る
-->
Copyright(c) 2013 九州大学大学院医学研究院 系統解剖学分野 All Rights Reserved.