本文を読み飛ばす

FEFF8.5L compilation notes

まとめ

FEFF 8.5L (one-file source code への直接リンク) のコンパイル方法.

環境

OS

Debian GNU/Linux 10.4 Buster

Compiler

ifort 14.0

Procedure

$ source /opt/intel/bin/ifortvars.sh intel64
$ ifort feff85L.f -o feff85L

gfortran について

If you use gfortran, you will encounter several issues.

gfortran 8.3.0

$ gfortran feff85L.f -o feff85L

以下のような文法エラーが起きる.

feff85L.f:11742:21:

      2               dmag, vclap, vtot, vvalgs, imt, inrm, rmt, rnrm,
                     1
Error: Actual argument contains too few elements for dummy argument ‘dmag’ (3012/3263) at (1)

-std=legacy オプション

$ gfortran -std=legacy feff85L.f -o feff85L

以下のような文法エラーが起きる.

feff85L.f:1032:1:

 d                 read(words(1),30,err=900) xivec(1)  ! read direction of incoming beam
 1
Error: Non-numeric character in statement label at (1)

gfortran 7 でも試しましたがうまくいきません.難しくないエラーだと思いますが,Fortran を知らないので直せません.どなたか patch できたら教えてください.ifort あれば ifort でやるのが早いです.

おまけ

GitHub に Feff8L: Open Source theoretical EXAFS calculations が上がっています.こちらは FEFF9 などと同じように rdinp などの実行ファイルが分割されているタイプです.