/[PAMELA software]/gpamela/README
ViewVC logotype

Contents of /gpamela/README

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3.3 - (show annotations) (download)
Thu Jan 23 13:55:49 2014 UTC (10 years, 10 months ago) by mocchiut
Branch: MAIN
CVS Tags: HEAD
Changes since 3.2: +10 -0 lines
Compilation using SL6

1 Emiliano Mocchiutti:
2 UNDER SL6:
3 A) install compat-gcc-34-g77 and related compatibility packages
4 B) use
5 # CERNLIB SETTINGS
6 export CERN=/afs/cern.ch/sw/lcg/external/cernlib
7 export CERN_LEVEL=2006b/i686-slc5-gcc34-opt/
8 export CERN_ROOT=$CERN/$CERN_LEVEL
9 export PATH=$CERN_ROOT/bin:$PATH
10
11
12 Quick and dirty instruction list to build GPAMELA executable
13 ------------------------------------------------------------
14
15 (F. Cafagna, Bari 11 July 2002)
16
17
18 1. INTRODUCTION
19
20 In this directory you will find all the sources and auxiliary files needed
21 to build GPAMELA.
22
23 GPAMELA sources are distributed in several subdirectories along with
24 the GARFIELD car files needed to build the GARFIELD library.
25
26 To build GPAMELA you need the Makefile in the top directory along with
27 the file: makefile_linux, stored in the garfield/src directory.
28
29 2. BUILD GPAMELA EXECUTABLE FOR INPATIENTS
30
31 Here is the list of action for the inpatients:
32
33 - Create the directory you want to store executables and run the program,
34 in this example I wil create my_gpamela in my home directory:
35
36 > mkdir $HOME/my_gpamela
37
38 - Define the environment variable GPAMELA_BIN pointing the the created directory:
39
40 > GPAMELA_BIN = $HOME/my_gpamela; export GPAMELA_BIN (for [ba]sh )
41 > setenv GPAMELA_BIN $HOME/my_gpamela (for [t]csh)
42
43 - Make it:
44
45 > make distclean; make gpamelax11.exe; make gpamela.exe
46 > make gpamelax11_deb.exe; make gpamela_deb.exe
47
48 - Install it:
49
50 > make install
51
52 3. DIRECTORY TREE
53
54 Here follows the gpamela directory tree:
55 .
56 |-- Makefile
57 |-- aux
58 | |-- Auxiliary files needed by GPAMELA, i.e. field map, data cards,
59 | garfield definitions etc. etc.
60 |-- cmz
61 | `-- Versions
62 | |-- History of the previous CMZ releases
63 |-- garfield
64 | `-- src
65 | |-- GARFIELD sources and makefile
66 |-- gcdes
67 | |-- GEANT 3.21 include files
68 |-- gpamela
69 | |-- general purpose routine, for example GUSTEP, GPDAT etc. etc.
70 |-- gpcal
71 | |-- CALorimeter related routines
72 |-- gpcalor
73 | |-- GCALOR interface between GEANT and MICAP
74 |-- gpcalordes
75 | |-- GCALOR include files
76 |-- gpcas
77 | |-- CAS related soubroutine
78 |-- gpcat
79 | |-- CAT related soubroutine
80 |-- gpcdes
81 | |-- GPAMELA include files
82 |-- gpfield
83 | |-- magnetic field related subroutines
84 |-- gpgar
85 | |-- GPAMELA- GARFIELD interface related subroutines
86 |-- gphys
87 | |-- obsolete routines to integrate dE/dx fluctuations
88 | in the GEANT physics bank
89 |-- gpmain
90 | `-- GPAMELA main routine
91 |-- gpnd
92 + |-- neutron detector related routines
93 |-- gpobsolete
94 | |-- obsolete code for tracker digitization
95 |-- gpspe
96 | |-- SPEctrometer related subroutine
97 |-- gptof
98 | |-- TOF related subroutine
99 |-- gptrd
100 | |-- TOF related subroutine
101 |-- gpxint
102 | |-- GPAMELA main routine for the interactive version
103 |-- history
104 | `-- history file (GPAMELA logbook)
105 `-- inform
106 `-- list and usage of GPAMELA data cards
107
108 Please note that no lib and bin directories are presents in the distribution.
109 They will be created by make.
110
111 Please note that all the source files have the .F extensions, they must be preprocessed.
112
113 4. BUILD GPAMELA EXECUTABLE, LONG VERSION
114
115 You can create GPAMELA executables using gmake. For sake of simplicity I am
116 using just one Makefile located in the top directory: gpamela.
117
118 The Makefile will create the executables locally in the bin directory
119 of the top directory gpamela and will install them into the any user
120 created directory along with the auxiliaries files need. You can pass
121 the used directory via the GPAMELA_BIN environment variable.
122
123 Please note that the Makefile does use GNUmake: gmake,
124 extension. Usually in the RedHat Linux distributions make points to
125 gmake so the usage is equivalent.
126
127 The Makefile contains the following targets:
128
129 -gpamelax11.exe : builds the interactive version of GPAMELA
130 -gpamela.exe : builds the batch version of GPAMELA
131 -gpamelax11_deb.exe : builds the interactive version of GPAMELA with debug flags
132 -gpamela_deb.exe : builds the batch version of GPAMELA with debug flags
133 -depend : creates dependency files for each source file
134 -install : install GPAMELA executables and auxiliary files in GPAMELA_BIN
135 -${GPLIBDIR}/libgarfield-7.a: builds the GARFIELD library in garfield/src directory
136 -createdir : creates the ./bin directory in the top directory
137 -distclean : deletes all the objects, dependency files, executables,
138 GARFIELD library, bin and lib directories
139 -clean : deletes all the objects and dependency files
140
141 The Makefile contains the following implicit rule:
142
143 %.d: %.F : builds dependency files from the .F files
144
145 Please note that no rule has been included to build dependencies for .f files.
146 To avoid confusion all the GPAMELA fortran sources must have the .F extension.
147
148 The Makefiles does use the g77 capability of creating dependencies suitable for
149 usage in makefile. Once the dependency files have been created Makefiles does include
150 them and use them as targets to build the objects from the sources.
151 Because I am using a single Makefile in the top directory the rule does create the
152 dependency files in the subdirectories.
153
154 Please note tha gmake scans the Makefile before executing it. If no
155 files are available for the include directive gmake will try to build
156 them. For this reason you will get the "Creating dependency files"
157 message also when you try to delete them .......
158
159 Please note that all the object files are deleted after executable
160 creation. Because the GPAMELA code relies on the preprocessor
161 directives codes must be preprocessed for each case, i.e. interactive
162 or not interactive version. Deleting them in each executable target
163 will force the object creation next time you build any target. To be
164 sure you are using the right objects you should issue a "make clean"
165 command before any executable creation.
166
167 Please note that the dependency files are note recreated. This means
168 that they should not depend on preprocessor directives, i.e. #if
169 #define etc. etc.
170
171 GPAMELA depends on GARFIELD libraries. In case libgarfield-7.a is not
172 present in the lib subdirectory it will be created from scratch. This
173 is a long procedure that may take several minutes.
174
175 Here is the list of action to build GPAMELA executables:
176
177 - Create the directory you want to store executables and run the program,
178 in this example I wil create my_gpamela in my home directory:
179
180 > mkdir $HOME/my_gpamela
181
182 - Define the environment variable GPAMELA_BIN pointing the the created directory:
183
184 > GPAMELA_BIN = $HOME/my_gpamela; export GPAMELA_BIN (for [ba]sh )
185 > setenv GPAMELA_BIN $HOME/my_gpamela (for [t]csh)
186
187 - Delete all the objects, dependency files and GARFIELD library (you never know):
188 > make distclean
189
190 - Create interactive executable (it will create the libgarfield-7.a also):
191 > make gpamelax11.exe;
192
193 - Create batch executable:
194 > make gpamela.exe
195
196 - Create debug versions
197 > make gpamelax11_deb.exe; make gpamela_deb.exe
198
199 - Install all executables, along with GPAMELA.FFR, gpfield.rz,
200 TRD_ATT.DAT, PROVA.GAR, in GPAMELA_BIN directory:
201 > make install
202
203 5. OUTPUT MESSAGES
204
205 To maintain backward compatibility with the previous g77 version, I am
206 still using the debug-kludge flag to access fortran COMMONs in
207 debug. This is obsolete in the new release: 2.96. For this reason if
208 you are running a RedHat 7.x you will receive the message:
209
210 f771:warning: -fdebug-kludge disabled, use normal debugging flags
211
212 During gpamelax11(_deb).exe building you will get the message:
213
214 /cern/pro/lib/libpawlib.a(bugrep.o): In function `br_create_template':
215 bugrep.o(.text+0x113): the use of `tmpnam' is dangerous, better use `mkstemp'
216
217 It is a warning related to the pawlib in the cern release that is still not RH7.x certified.

  ViewVC Help
Powered by ViewVC 1.1.23