文書の過去の版を表示しています。


CERN Program Library

Ubuntu 18.04 LTS

  • Ubuntu 18.04CentOS 7 に g77 と g77 でコンパイルされた cernlib をインストールした。
    1. はじめに一応 Ubuntu のバージョンをチェックしておく。
$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.3 LTS"
  1. imake コマンドを使えるようにし、gmake から make へのリンクを貼る
$ sudo apt-get install xutils-dev
$ sudo ln -s /usr/bin/make /usr/bin/gmake
  1. ディレクトリを作成
$ mkdir -p ~/cern/cernlib-2005-paw-128mb
$ cd ~/cern/cernlib-2005-paw-128mb
  1. 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
  1. 中身があるか一応チェック
$ 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
$ 
  1. src の展開
$ export CERN=$PWD
$ ./Install_cernlib_src
  1. 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)
  1. 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) しかない。

softwares/cernlib.1566656793.txt.gz · 最終更新: 2019/08/24 23:26 by kobayash
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0