文書の過去の版を表示しています。
CERN Program Library
Ubuntu 18.04 LTS
- Ubuntu 18.04CentOS 7 に g77 と g77 でコンパイルされた 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
$ aino-1:tamidaq>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 Jul. 4, 2018*/ ... # define DefaultFCOptions -fno-automatic -fno-second-underscore -fPIC | | | V V V # define DefaultFCOptions -fno-automatic -fno-second-underscore /* -fPIC c/o by Nobu on Jul. 4, 2018*/ ... #
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) しかない。