* CNS 1.1インストールメモ -- &color(red){Vine 4};/&color(blue){Vine 3};[#yf647aa4]
 Intel Compilerを使ってCNSをコンパイル、インストールしました((参考文献:平田kunyo博士のCNSインストールメモ))。ついでにパッチを作りました。~
 
 ** インストール方法 [#qc1d601d]
 ここではインストール先は/usr/local/cns_solve_1.1にしました。
 
 *** aptで追加インストール [#ib5143ea]
 - flex
 
 *** ファイルの展開 [#j111d6e3]
 /usr/local以下に以下のファイルを展開
 
 - cns_solve_1.1_basic_inputs.tar.gz
 - cns_solve_1.1_data.tar.gz
 - cns_solve_1.1_test.tar.gz (これは好みで)
 
 - &ref(cns_solve_1.1_Vine-3.2_Intel-9.0.patch); インストール用パッチ
 -- instlib/machine/supported/linux/Makefile.headerをIntel Compiler用に書き換え
 -- cns_solve_envのsedオプションを修正
 -- source/xpeakpik.fの不具合を修正
 
 /usr/localでパッチを当てます。
  # cd /usr/local
  # patch -p0 < cns_solve_1.1_Vine-3.2_intel-9.0.patch
  # cd /usr/local/cns_solve_1.1
 以降の作業は/usr/local/cns_solve_1.1で行いました。
 
 *** cns_solve_envの編集 [#m1f1cf1e]
 cns_solve_envを編集。通常は、
  18             setenv CNS_SOLVE '_CNSsolve_location_'
 の'''_CNSsolve_location_'''を環境に合わせて修正します。
  18             setenv CNS_SOLVE '/usr/local/cns_solve_1.1'
 
 *** インストール [#z5a8690f]
  # tcsh                                        (tcshで作業)
  # source /opt/intel/cc/9.0/bin/iccvars.csh    (C++環境設定)
  # source /opt/intel/fc/9.0/bin/ifortvars.csh  (Fortran環境設定)
  # source cns_solve_env
  # make install
 で終わりです。Intel Compilerでコンパイルされます。
  linking: cns_solve
  created executable file cns_solve-0606121008.exe
 と出力されれば実行ファイルはできているはずです。
 
 *** 備考 [#q5c2aaf9]
 インストール出力の最後の方に
  compiling: machine_c.c
  machine_c.c(100): warning #880: omission of explicit type is nonstandard ("int" assumed)
    outbuf_()
    ^
 という警告が最後に出ますが、どうやらインストールはできているような気がします・・・
 
 ** CNSでの既知の不具合 [#dba91445]
 以下の不具合をパッチで修正してあります。
 
 *** cns_solve_envでsedが通らない [#t9dd3724]
 構造生物グループMLより:
 
  インストール自体は問題なく行ったのに、環境変数ファイルcns_solve_env
  にsourceを貼ると
  
  sed: -e expression #1, char 11: Invalid range end
  
  と表示されました。cnsbbによると、FedoraやRedhatEnterprise2から
  現れた問題のようで、SEDのオプション仕様が変更されたことが原因の
  ようです。そこで、インストール前にcns_solve_envファイルとgetarch
  ファイルの以下の部分を次のように変更します。
  
  sed 's/[A-z]  =>  sed 's/[A-Z,a-z]
  
  cns_solve_envには2箇所、getarchには1箇所の変更箇所があります。
  そうすると問題なしです。
 
 Vineでは特に影響を受けませんでしたが、ついでだったのでパッチに取り込みました。
 
 *** CNSにおいてwater_pickができない [#ec2177af]
 構造生物グループMLより:
 
  私的にはもう一つ気になっている問題がありました。自分の使用している
  FC3のDual Xeon PCでは、cnsのwater_pickで水が拾えない(no water residue
  となる)ことがしばしばあって困っていました。仕方ないので、もう一台の
  Athlon64 PCの方で拾わせていました。これもどうやら最近出てきた問題の
  ようで、メモリを3GB以上積むと発現することがあるとcnsbbに出てました。
  対応策は以下の通りだそうです。
  
  $ vi $cns_solve_1.1/source/xpeakpik.f
  145行目:IF (MPACK.GT.0) THEN  =>  IF (MPACK.NE.0) THEN
  
  と変更してからmake g77installすれば良いようです。
 
 私の環境ではメモリ2GBで再現したのでGCCのバージョンにも依存するのかも知れません。以上のように修正してmakeしたら問題は解決できました&smile;