一部未完成です.
WRFのインストールと動かし方
0)WRFとWPSのインストール準備.
WRF ARWのHPからモデルのソースファイルを持ってくる.
さらにKnown Problems and Fixesからmodified fileをダウンロードし、オリジナルのソースファイルと入れ替える.
1)WRF をインストールする
> ./configure
5
1(Nestingあり)
※ ここで何番を選ぶかは、コンパイル環境による.
※ コンパイル時の選択として、大きく4パターンある.
- For a single processor job (serial)
- For using OpenMP shared-memory parallelization (smpar)
:共有メモリ型 [OpenMPなど]
- For using distributed-memory parallelization (dmpar) options
:分散メモリ型 [MPIなど, フリーではMPICH, LAMなど]
smparとdmparはmultiple processors用
- For combination of shared-memory and distributed memory options (dm+sm)
※ 並列計算の参考文献
> ./compile em_real >& compile.log &
log を随時見るには、
tail -f もしくは less shift +f
main/ndown.exe Used for one-way nesting
main/nup.exe Upscaling - used with WRF-Var
main/real.exe WRF initialization for real data cases
main/wrf.exe WRF model integration
が作成されればOK!
もう一度やり直したい時は、
./clean -a
./configure
2)WPSでGRIB2を使うためのライブラリをインストールする.(GRIB2を入れない場合は必要ない.)
2-1) JasPer
> ./configure
> make
> make install
2-2) zlib
> ./configure
> make
> make install
2-3) libpng(先にzlibをインストールしてから)
> ./configure
> make check
> make install
※ makeが通らない場合はgccではなくifortなどを使うと良い.たとえば、
export CC=icc
export CXX=icpc
export CFLAGS="-O2 -ipo -no-prec-div -static"
export CXXFLAGS="-O2 -ipo -no-prec-div -static"
export F77=ifort
export FFLAGS="-O2 -ipo -no-prec-div -static"
export CPP="icc -E"
export CXXCPP="icpc -E"
./configure >& configure.log
3)WPSのインストール
> ./configure
1
> ./compile >& compile.output &
※WRFをコンパイルし直した時は、WPSもやり直す.
geogrid.exe -> geogrid/src/geogrid.exe Generate static data
metgrid.exe -> metgrid/src/metgrid.exe Generate input data for WRFV2
ungrib.exe -> ungrib/src/ungrid.exe Unpack GRIB data
ができればOK!
やり直す時は、
./clean
※ GRIB2のインストール時に下記のようなエラーメッセージが出てうまくいかないことがある.
その場合、 ./configure の後で、少し書き換えるとうまくいく.先にインストールした
3 toolsへのパスを通せばよいのだが...(また今度かきます.)
4)geogデータをダウンロード.(V3.1.1ではgeogも新しくなった.versionも注意.)
5)ARWpostをインストール.
> ./configure
> ./compile
これだと、エラーが出るので、 configure.arwpの
FFLAGS と F77 のコンパイルオプションに -assume byterecl を加えて
./compile を実行する.(Intel fortranの場合.)
0)WRFの実行の前に.
0-1)
スタックサイズに制限がかかっている場合には、制限をなくす.
スタックサイズの確認方法は、
> ulimit -a
例えば)
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
・・・・・・
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
・・・・・・
WRFの実行前に、コマンドラインで
ulimit -s unlimited
を実行.
0-2)
初期値、境界値データは、FNLが便利.下記のHPから必要な月のファイルをダウンロードする.
http://dss.ucar.edu/datasets/ds083.2/
1)WPS
1-1)namelist.wpsを書き変える.
1-2)geogrid.exe を実行.
1-3)Link (with the UNIX command ln) the correct Vtable
1-4)Link (with supplied script link_grib.csh) the input GRIB data
1-5)ungrib.exeを実行.(intemediate files はeach timeに対し、1ファイル)
1-6)metgrid.exe を実行.
Outputは:
met_em.d01.YYYY-MM-DD_DD:00:00.nc - one file for per time
met_em.dxx.YYYY-MM-DD_DD:00:00.nc - one file for per nest
2)WRF
2-1)run/ か test/em_real/で計算を行う.
2-2)WPSで作ったmet_emをコピーもしくはリンクを張る.
2-3)namelist.input を書き変える.
2-4)real.exeを実行する.
wrfinput_d01 & wrfbdy_d01 が作成される.
wrfinput_dxx for nested domains
2-5)wrf.exeを実行する.
wrfout_dxx_[initial_date] (one for each domain)
3)WRF output を GrADSに変換する.
./ARWpost.exe
1)MPICH2のインストール.
1-1)
MPICH2のソースファイルをダウンロード.
tar -zxvf mpich2-1.0.8p1.tar.gz
cd mpich2-1.0.8p1
1-2)インストール用のShellを作成する.
emacs -nw install4mpich2.sh
#!bin/bash
export CC=icc
export CXX=icpc
export F90=ifort
export F77=ifort
export CPP='icc -E'
export CXXCPP='icpc -E'
./configure --prefix=/opt/mpich2 --enable-debuginfo
make >& make.log
make install >& make.install.log
1-3)PATHを通す.
export PATH=${PATH}:/opt/mpich2/bin
1-4)ホームディレクトリで
touch ~/.mpd.conf
emacs -nw .mpd.conf
secretword=
※は何でも良い.
chmod 600 .mpd.conf
1-5) テストする.
mpd &
mpdboot -n <ブートするノードの数> -f mpd.hosts
※<ブートするノードの数>とは,最大でマスターノードとサブノードの合計.
この場合は最大で3となる.
以上でサンプルプログラムを実行することが出来るようになった.
mpiexec -l -n <プロセスの回数> /usr/local/src/mpich2/mpich2-1.0.8p1/examples/cpi
※ mpiexec failed: gethostbyname_ex failed for hostname
というメッセージが出て動かない場合は、/etc/hostsを確認.
192.168.X.XXX hostname
などと書かれているかどうかをチェック.
1)インストール
1-1) NcviewのHPからソースをダウンロードする.
http://meteora.ucsd.edu/~pierce/ncview_home_page.html
1-2) ファイルを展開する.
mkdir /usr/local/src/ncview/
mv ncview-1.93f.tar.gz /usr/local/src/ncview/
cd /usr/local/src/ncview/
tar -zxvf ncview-1.93f.tar.gz
cd ncview-1.93f
●NETCDFのコンパイルをGCCでした場合
./configure --prefix=/usr/local/ncview-1.93f \
--with-netcdf_incdir=/usr/local/netcdf-3.6.2/include \
--with-netcdf_libdir=/usr/local/netcdf-3.6.2/lib
●NETCDFのコンパイルをIntelでした場合
export CC=icc
./configure --prefix=/usr/local/ncview-1.93f \
--with-netcdf_incdir=/usr/local/netcdf-3.6.2-ifort/include \
--with-netcdf_libdir=/usr/local/netcdf-3.6.2-ifort/lib \
--x-libraries=/usr/lib64/X11
make
make install
※ うまくいかない場合はf2cがインストールしていないからかも.
f2cのインストール方法は下記参照.
1)Fortran compiler のテスト
blockdata_test を使ってテストする.NCARのページからblockdata_test.tarをダウンロード.
> tar -xvf blockdata_test.tar
Makefileの中の"g77"を自分の環境に合わせて書き変える.例えば"ifort","g95".
> make main.good main.bad main.init main.good2
> ./main.good
> ./main.good2
> ./main.init
> ./main.bad
TESTSUB: WK=20, WK should be 20
が帰ってこればOK..らしい.
2)NCLのインストールには多くのソフトのインストールが必要だが、NCARGだけであれば、HDF-4だけあればOK(らしい).
2-1)HDFのインストール の前に、HDF-4に必要とされるソフトをインストール.
HDFのページ(http://www.hdfgroup.org/products/hdf4/index.html)へ行って、
external libraries (szip, zlib, jpeg)のソースをダウンロード.
2-2) szipをインストール
> tar -zxvf szip-2.1.tar.gz
> ./configure --prefix=/usr/local
> make
> make install
> cp szip/lib /usr/local/lib
> cp szip/include /usr/local/include
2-3) jpegもインストール
> tar -zxvf jpegsrc.v6b.tar.gz
> ./configure
> make
> make install
manのコピー時にエラーがあったので、
> mkdir /usr/local/man/man1
> /usr/bin/install -c -m 644 ./cjpeg.1 /usr/local/man/man1/cjpeg.1
2-4) zlibも同様にインストール.
2-5) HDFをインストール
> tar -zxvf HDF4.2r3.tar.gz
> export CC=icc
> export F77=ifort
> ./configure --with-zlib=/usr/local --with-jpeg=/usr/local --prefix=/usr/local/HDF4.2r3 --disable-netcdf
> gmake >& gmake.out
> gmake check >& check.out
> gmake install
PATH, LD_LIBRARY_PATHの設定をする.
2-6) 今後のために、ついでにf2cをインストール
http://www.netlib.org/f2c/ から libf2c.zipとsrcをダウンロード.
/usr/local/src/f2c などに入れる.
<解凍>
cd f2c
cd src
gzip -d *.gz
cd ..
mkdir libf2c
mv libf2c.zip libf2c
unzip libf2c.zip
<コンパイル>
cd src
cp makefile.u makefile
make
cd ../libf2c
make -f makefile.u
できたファイルをパスの通っている所に置く.
cp src/f2c /usr/bin
cp libf2c/libf2c.a /usr/lib
cp f2c.h /usr/include
cp f2c.1 /usr/share/man/man1
ranlib /usr/lib/libf2c.a
3)NCLのソースコードからNCARGをインストール.
NCL version5 以降はNCLとNCARGのソースが一緒になっている.
このため、NCARGのみをインストールする時でも、NCLをコンパイルする形になる.
3-1) ソースをダウンロード
> tar -zxvf ncl_ncarg_src-5.0.0.tar.gz
> export NCARG=/usr/local/src/NCL/ncl_ncarg-5.0.0
- そのままインストールすると、メッセージが出るので、一部書き変える.
ncarview/src/lib/libncarg_ras/hdf.c
#include <hdf/hdf.h>
#include <hdf/df.h>
#include <hdf/hfgr.h>
を
#include <hdf.h>
#include <df.h>
#include <hfgr.h>
へ.
- wrapit.c のデバッグ情報があるので、新しいwrapit.c を ni/src/mkwrap/wrapit.c にコピーする.
詳しくは=> http://www.ncl.ucar.edu/Download/build_from_src.shtml#Troubleshooting
- ictrans のコンパイル時にエラーが出てしまうのを避けるため、一部書き変える.
ncarview/src/bin/ictrans/yMakefile
を開き、
SYS_LIBS = $(MORE_LIBS)
を
SYS_LIBS = -Im -Iifcore -If2c $(MORE_LIBS)
とする.
make local-Makefile
※上記に変更してもictransのコンパイルには失敗した.解決策は未解明.
3-2) インストール
> cd $NCARG/config
>make -f Makefile.ini
> ./ymake -config `pwd`
> grep SYSTEM_INCLUDE Makefile
とすると、例えば
> SYSTEM_INCLUDE = "LINUX"
などと返ってくる.
"LINUX"と返って来た場合には、LINUX* をconfiguration file として使う.
$NCARG/config を見ると、LINUX用だけでもたくさんのconfiguration fileが用意されている.今回は、64bitマシーンにIntel fortranを使ってインストールしたいので、LINUX.IA64.INTELを用いることにする.
> cp LINUX.IA64.INTEL LINUX
LINUXを書き変える.
#define CtoFLibraries "-L/opt/intel/cce/10.1.015/lib" -Im -Iifcore
#define ArchRecLibSearch -L/usr/lib/X11 -L/usr/local/netcdf-3.6.2-ifort/lib -L/usr/local/HDF4.2r3/lib
#define ArchRecIncSearch -I/usr/include/X11 -I/usr/local/netcdf-3.6.2-ifort/include -I/usr/local/HDF4.2r3/include "-I/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include"
> cd $NCARG
> ./Configure -v
いくつか質問をされる.ここでは、NCARGをインストールしたいので、
Build NCL (y)?
>n
Parent installation directory : /usr/local/ncarg
> Enter
System temp directory : /tmp
> Enter
Build HDF support into raster library? (y)
> yes
Enter local library search path(s) : /usr/X11R6/lib
> /usr/lib/X11
Enter local include search path(s) : /usr/X11R6/include
> /usr/include/X11
Go back and make more changes or review? (n)
> Enter
Save current configuration ? (y)
> Enter
configuration が終わったら、正しいコンパイラー、オプション、パスが設定できているかを確認するために、
> make Info
設定がOKそうであれば、build とinstall process に入る.
> make Everything >& make-output &
> tail -f make-output
3-3)高解像度の海岸線データを使えるようにする.
Rainer Feistel のサイト(http://www.io-warnemuende.de/homepages/rfeistel/)へいって
以下のものをダウンロードする.
rangs(0).zip gshhs(0).zip
rangs(1).zip gshhs(1).zip
rangs(2).zip gshhs(2).zip
rangs(3).zip gshhs(3).zip
rangs(4).zip gshhs(4).zip
全てを解凍し、インストール先ディレクトリの
ncarg/lib/ncarg/database
の下にrangsというディレクトリを作って、その中に移す.
容量は200MB程度なので、あまり問題ないが、別の場所においておきたい場合は
下記の環境変数の NCARG_RANGS で指定する.
3-4)環境変数の設定
export NCARG_ROOT=/usr/local/ncarg
export PATH=${PATH}:${NCARG_ROOT}/bin
export NCARG_RANGS=${NCARG_ROOT}/lib/ncarg/database/rangs
export MANPATH=${MANPATH}:${NCARG_ROOT}/man
※ ictrunsにエラーが出て、コンパイルがうまくいかない.その他の実行ファイルはOKそう.
※ lib/ncarg/database/rgb.* もない.
これらは未解決.
4)RIP4をインストール.
4-1)tar file を解凍.
tar -zxvf RIP4.tar.gz
cd RIP4
export RIP_ROOT=/usr/loca/src/RIP/RIP4
4-2)Makefileを書き変える.今回はifortでコンパイルするので、intel の部分のみ書き変える.
intel:
・・・
・・・
"LIBS = -L$(NCARG_ROOT)/lib -lncarg -lcgm -lncarg_gks -lncarg_c -L/usr/lib64/X11 -lX11 -L/usr/lib/gcc/x86_64-redhat-linux/4.1.2 -L/usr/lib -lf2c"
4-3)makeする.
make intel >& make.out &