文書の過去の版を表示しています。
CERN Program Library
Ubuntu 18.04 LTS
- Ubuntu 18.04 に gfortran でコンパイルした cernlib をインストールした。ただ、うまく動いてないかも?
- はじめに一応 Ubuntu のバージョンをチェックしておく。
$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=18.04 DISTRIB_CODENAME=bionic DISTRIB_DESCRIPTION="Ubuntu 18.04.3 LTS"
- imake コマンドを使えるようにし、gmake から make へのリンクを貼る
$ sudo apt-get install xutils-dev $ sudo ln -s /usr/bin/make /usr/bin/gmake
- ディレクトリを作成
$ mkdir -p ~/cern/cernlib-2005-paw-128mb $ cd ~/cern/cernlib-2005-paw-128mb
$ wget https://www-zeuthen.desy.de/linear_collider/cernlib/new/cernlib-2005-all-new.tgz $ wget https://www-zeuthen.desy.de/linear_collider/cernlib/new/cernlib.2005.corr.2014.04.17.tgz $ wget https://www-zeuthen.desy.de/linear_collider/cernlib/new/cernlib.2005.install.2014.04.17.tgz
- tar ファイルの解凍と上書き
$ tar zxvf cernlib-2005-all-new.tgz $ mv cernlib.2005.corr.2014.04.17.tgz cernlib.2005.corr.tgz $ tar zxvf cernlib.2005.install.2014.04.17.tgz
- 中身があるか一応チェック
$ ls Install_cernlib* Install_old_patchy4* Install_cernlib_and_lapack* README_cernlib Install_cernlib_bin* cernlib-2005-all-new.tgz Install_cernlib_fixes* cernlib.2005.corr.tgz Install_cernlib_include* cernlib.2005.install.2014.04.17.tgz Install_cernlib_lib* cernlib.fixed* Install_cernlib_patchy* cernlib_2005.tgz Install_cernlib_src* cernlib_env* Install_cernlib_test* lapack.tar.gz Install_lapack* patchy4.tar.gz $
- src の展開
$ export CERN=$PWD $ ./Install_cernlib_src
- PAW のメモリを増加
$ emacs ~/cern/cernlib-2005-paw-128mb/2005/src/pawlib/paw/paw/pawbig.inc
*** Edit Line 20 of the file as below ***
PARAMETER (NWPAW=2000000)
| | |
V V V
* NWPAW was enlarged from 2000000 to 32000000 by Nobu on Jul. 4, 2018
* PARAMETER (NWPAW=2000000)
PARAMETER (NWPAW=32000000)
- sdf
$ emacs ~/cern/cernlib-2005-paw-128mb/2005/src/config/linux-lp64.cf
*** Edit Line 142 and 157 as below ***
...
# define DefaultCCOptions -fPIC
| | |
V V V
# define DefaultCCOptions /* -fPIC c/o by Nobu on Aug. 24, 2019*/
...
# define DefaultFCOptions -fno-automatic -fno-second-underscore -fPIC
| | |
V V V
# define DefaultFCOptions -fno-automatic -fno-second-underscore /* -fPIC c/o by Nobu on Aug. 24, 2019*/
...
$ emacs ~/cern/cernlib-2005-paw-128mb/2005/src/config/Imake.cf
*** Edit Line 390 as below ***
...
#if __GNUC__ == 4
| | |
V V V
#if __GNUC__ == 7
- Install_cernlib を書き換え
$ emacs ~/cern/cernlib-2005-paw-128mb/Install_cernlib
*** Edit Line 13-15, and 33 as below ***
...
echo "installing cernlib sources"
./Install_cernlib_src
| | |
V V V
#echo "installing cernlib sources"
#
#./Install_cernlib_src
...
[ "$GCCVSN" = "4" ]&&FC=gfortran
| | |
V V V
[ "$GCCVSN" = "7" ]&&FC=gfortran
- インストールの実行
$ ./Install_cernlib
CentOS 7
- CentOS 7 に g77 と g77 でコンパイルされた cernlib をインストールした。
$ wget http://ftp.riken.jp/Linux/scientific/6.8/x86_64/os/Packages/compat-libf2c-34-3.4.6-19.el6.x86_64.rpm $ wget http://ftp.riken.jp/Linux/scientific/6.8/x86_64/os/Packages/compat-gcc-34-3.4.6-19.el6.x86_64.rpm $ wget http://ftp.riken.jp/Linux/scientific/6.8/x86_64/os/Packages/compat-gcc-34-g77-3.4.6-19.el6.x86_64.rpm $ wget http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/Packages/c/cernlib-g77-2006-34.el6.x86_64.rpm $ wget http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/Packages/c/cernlib-g77-devel-2006-34.el6.x86_64.rpm $ wget http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/Packages/c/cernlib-g77-static-2006-34.el6.x86_64.rpm $ wget http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/Packages/c/cernlib-g77-utils-2006-34.el6.x86_64.rpm $ wget http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/Packages/p/paw-2006-34.el6.x86_64.rpm $ su # yum remove compat-libf2c-34 # yum localinstall compat-libf2c-34-3.4.6-19.el6.x86_64.rpm # yum localinstall compat-gcc-34-3.4.6-19.el6.x86_64.rpm # yum localinstall compat-gcc-34-g77-3.4.6-19.el6.x86_64.rpm # yum localinstall cernlib-g77-2006-34.el6.x86_64.rpm # yum localinstall cernlib-g77-devel-2006-34.el6.x86_64.rpm # yum localinstall cernlib-g77-static-2006-34.el6.x86_64.rpm # yum localinstall cernlib-g77-utils-2006-34.el6.x86_64.rpm # yum localinstall paw-2006-34.el6.x86_64.rpm
順番をまちがえるとだめかも? インストール後、http://lnr.irb.hr/soya/physics/asdoc/chbook-example.c をダウンロードしてきてコンパイル。http://hep.fuw.edu.pl/misc/CERNLIB_from_C.html を参考に。C から cernlib を実行できた。
$ wget http://lnr.irb.hr/soya/physics/asdoc/chbook-example.c
$ gcc -c -Df2cFortran -I/usr/include/cernlib/2006/cfortran chbook-example.c
$ g77 chbook-example.o `cernlib-g77 packlib,mathlib` -o chbook-example
$ ./chbook-example
1 some random distribution PART 1 OF **
HBOOK ID = 1 DATE 24/12/2016 NO = 1
CHANNELS 100 0 1
10 0 1 2 3 4 5 6 7 8 9 0
1 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
...
...
LOW-EDGE 1. 3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334
0 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999990
0 6666666666666666666666667777777777777777777777777888888888888888888888888899999999999999999999999990
0 0011222334445566677888990001122233444556667788899000112223344455666778889900011222334445566677888990
0 4826048260482604826048260482604826048260482604826048260482604826048260482604826048260482604826048260
* ENTRIES = 100000 * ALL CHANNELS = 0.0000E+00 * UNDERFLOW = 0.0000E+00 * OVERFLOW = 0.1000E+06
* BIN WID = 0.4000E-03 * MEAN VALUE = 0.0000E+00 * R . M . S = 0.0000E+00
$
Shared Library
* CERN program library はそもそも shared library (lib*.so) をサポートしないらしい(参考: https://userweb.jlab.org/~marki/cernlib_on_debian/cernlib/faq.html#33)? 公式ページでも、武内さんのバイナリでも (http://ribf.riken.jp/~takesato/research/as/ap6.html)、static library (lib*.a) しかない。
