RTTOV v11が2013年5月にリリースされた。
新規,既存のRTTOV v10ユーザ共request formから申請が必要。
1日くらいでダウンロードリンク付のメールが届く。
アーカイブをそのまま展開すると,いろいろぶちまけるのでディレクトリを作ってからそこに展開するようにした方がよい。
追記 2014/1/30: 以下の書き換えをせずに,gcc_selectを使ってもよい。
$ sudo port select gcc mp-gcc47
/opt/local/binにgcc-mp-4.7のシンボリックリンクとしてgcc,gfortran-mp-4.7のシンボリックとしてgfortranが作られる。
並列実行には,OpenMPが必須なのでg95は諦めてgfortranを使うことにする。MacPortsのgfortranは変な名前なので,build/arch/gfortran-openmpを修正する。
FC=gfortran-mp-4.7
FC77=gfortran-mp-4.7
CC=gcc-mp-4.7
srcでARCHを指定してコンパイル。
$ make ARCH=gfortran-openmp
追記 2014/1/30: この節はうまくいかない。hdf5-18はgcc-mp-4.7にサポートされていないオプションを与えているために,configureで落ちる。+gcc47の代わりに+gfortranとするとコンパイルできるが,netcdf-fortranの依存関係検査と整合しない。
HDF5とnetcdfはオプションだが,リンクしておく。hdf5-18はFortranインターフェースがコンパイルされていなかったので,既存のものをdeactivateし,+fortranつきでインストール。netcdf-fortranがインストールされていなかったので,+gcc47をつけてインストール。
$ sudo port -df deactivate hdf5-18
$ sudo port -d install hdf5-18 +fortran +gcc47 +szip
Makefile.localを修正する。
NETCDF_PREFIX = /opt/local
FFLAGS_NETCDF = -I$(NETCDF_PREFIX)/include
# LDFLAGS_NETCDF = -L$(NETCDF_PREFIX)/lib -lnetcdf
# For NetCDF builds with a separate Fortran library:
LDFLAGS_NETCDF = -L$(NETCDF_PREFIX)/lib -lnetcdff -lnetcdf
HDF5_PREFIX = /opt/local
FFLAGS_HDF5 = -D_RTTOV_HDF -I$(HDF5_PREFIX)/include
LDFLAGS_HDF5 = -L$(HDF5_PREFIX)/lib -lhdf5hl_fortran -lhdf5_hl -lhdf5_fortran -lhdf5
コンパイルやり直し。
$ make clean && make ARCH=gfortran-openmp all
スタックサイズを調整してcoreについてテストを実行。
$ export OMP_STACKSIZE=1000M
$ ./test_core.sh ARCH=gfortran-openmp > test.log 2>&1 &
係数のファイルがないものはエラーになったが,正常に動いているようだ。