--- /dev/null
+#include "cfortran.h"
+#include "Rtypes.h"
+
+#include "Fdimpar.h"
+
+extern "C" {
+/*$ CREATE DPDXCM.ADD
+*COPY DPDXCM
+*
+*=== dpdxcm ===========================================================*
+*
+*----------------------------------------------------------------------*
+* *
+* Copyright (C) 1989-2006 by Alfredo Ferrari *
+* All Rights Reserved. *
+* *
+* *
+* Include file: dpdxcm (DP/DX CoMmon) *
+* *
+* Created on 10 february 1991 by Alfredo Ferrari *
+* INFN - Milan *
+* *
+* Last change on 21-may-06 by Alfredo Ferrari *
+* *
+* Included in the following routines: *
+* *
+* blockmvax/bdtrns.f *
+* dedxmvax/dedsdv.f *
+* dedxmvax/dedx.f *
+* dedxmvax/dedxfl.f *
+* dedxmvax/deltad.f *
+* dedxmvax/deltar.f *
+* dedxmvax/deltas.f *
+* dedxmvax/delthr.f *
+* dedxmvax/delths.f *
+* dedxmvax/dpdx.f *
+* dedxmvax/dpdxio.f *
+* dedxmvax/enion.f *
+* dedxmvax/enionf.f *
+* dedxmvax/gdedxc.f *
+* dedxmvax/heabre.f *
+* dedxmvax/hosufl.f *
+* dedxmvax/hvbrem.f *
+* dedxmvax/hvpair.f *
+* dedxmvax/t0zffc.f *
+* elsmvax/sigtab.f *
+* emfmvax/ededxf.f *
+* emfmvax/emfin.f *
+* emfmvax/emfret.f *
+* emfmvax/emfsco.f *
+* emfmvax/emfstp.f *
+* emfmvax/pdedxf.f *
+* kaskadmvax/hmsnsc.f *
+* kaskadmvax/kashea.f *
+* kaskadmvax/kaskad.f *
+* kaskadmvax/mulhad.f *
+* kaskadmvax/omegah.f *
+* kaskadmvax/sgttot.f *
+* kaskadmvax/stepop.f *
+* mainmvax/deflts.f *
+* mainmvax/dltcrd.f *
+* mainmvax/matcrd.f *
+* mainmvax/zeroin.f *
+* *
+* Avionp (m) = average ionization potential (eV) of medium m *
+* Ccster (m) = Sternheimer cbar parameter for medium m *
+* X0ster (m) = Sternheimer x0 parameter for medium m *
+* Xester (m) = Sternheimer x1 parameter for medium m *
+* Amster (m) = Sternheimer m parameter for medium m *
+* Aaster (m) = Sternheimer a parameter for medium m *
+* D0ster (m) = Sternheimer delta0 parameter for medium m *
+* Aviont (m) = auxiliary ionization potential of medium m *
+* T0dpdx (m) = delta ray production threshold of medium m *
+* (all particle but e+/e-) *
+* Tedpdx (m) = delta ray production threshold of medium m *
+* (electrons and positrons) *
+* Gaspfl (m) = pressure (atm) if a gas *
+* Pthrmx = maximum momentum of the tabulations *
+* Anpicm (m) = average number of primary ionization per cm *
+* for a mip for medium m (at NTP for a gas) *
+* Frstip (m) = first ionization potential for medium m (GeV) *
+* Faltmt (m) = density modifying factor for a possible alt- *
+* ernate material for medium m *
+* Maltmt (m) = alternate material for medium m *
+* Msdpdx (m) = possible "special material" flag for medium m *
+* 0: no special treatment *
+* 1: implicit delta production down to Avionr *
+* inside ..dedxf.. routines with recording *
+* of the selected values activated *
+*----------------------------------------------------------------------*
+*
+ PARAMETER ( MNDPDX = 50 )
+ PARAMETER ( RMDPDX = 1.15D+00 )
+ PARAMETER ( DPDXR1 = 0.15D+00 )
+ PARAMETER ( DPDXR2 = 0.70D+00 )
+ PARAMETER ( ERDEDX = 0.15D+00 * 0.15D+00 )
+ PARAMETER ( MDPDXH = 4 )
+* Toln10 = 2 x log (10)
+ PARAMETER ( TOLN10 = 4.605170185988091 D+00 )
+*
+ LOGICAL LDELTA, LPDETB, LETFUN
+ COMMON / DPDXCM / P0DPDX (MPDPDX,MXXMDF), P1DPDX (MPDPDX,MXXMDF),
+ & TMDPDX (MXXMDF), T0DPDX (MXXMDF),
+ & TEDPDX (MXXMDF), D0DPDX (MXXMDF),
+ & AVIONP (MXXMDF), RHORFL (MXXMDF),
+ & GASPFL (MXXMDF), CCSTER (MXXMDF),
+ & AMSTER (MXXMDF), XOSTER (MXXMDF),
+ & XESTER (MXXMDF), AASTER (MXXMDF),
+ & D0STER (MXXMDF), AVIONT (MXXMDF),
+ & ETDPDX (MXXMDF), ALMASS (MPDPDX), PTHRMX,
+ & FRSTIP (MXXMDF), ANPICM (MXXMDF),
+ & FALTMT (MXXMDF), MALTMT (MXXMDF),
+ & MSDPDX (MXXMDF), NBDPDX (MXXMDF),
+ & KDPDXT (MPDPDX,MXXMDF),
+ & LDELTA (MXXMDF), LPDETB (MXXMDF),
+ & IJDPDX (-6:NALLWP), LETFUN
+ SAVE / DPDXCM /
+*/
+
+ const Int_t mndpdx = 50;
+ const Double_t rmdpdx = 1.15e0;
+ const Double_t dpdxr1 = 0.15e0;
+ const Double_t dpdxr2 = 0.70e0;
+ const Double_t erdedx = 0.15e0 * 0.15e0;
+ const Int_t mdpdxh = 4;
+
+ typedef struct {
+ Double_t p0dpdx [mxxmdf][mpdpdx];
+ Double_t p1dpdx [mxxmdf][mpdpdx];
+ Double_t tmdpdx [mxxmdf];
+ Double_t t0dpdx [mxxmdf];
+ Double_t tedpdx [mxxmdf];
+ Double_t d0dpdx [mxxmdf];
+ Double_t avionp [mxxmdf];
+ Double_t rhorfl [mxxmdf];
+ Double_t gaspfl [mxxmdf];
+ Double_t ccster [mxxmdf];
+ Double_t amster [mxxmdf];
+ Double_t xoster [mxxmdf];
+ Double_t xester [mxxmdf];
+ Double_t aaster [mxxmdf];
+ Double_t d0ster [mxxmdf];
+ Double_t aviont [mxxmdf];
+ Double_t etdpdx [mxxmdf];
+ Double_t almass [mpdpdx];
+ Double_t pthrmx;
+ Double_t frstip [mxxmdf];
+ Double_t anpicm [mxxmdf];
+ Double_t faltmt [mxxmdf];
+ Int_t maltmt [mxxmdf];
+ Int_t msdpdx [mxxmdf];
+ Int_t nbdpdx [mxxmdf];
+ Int_t kdpdxt [mxxmdf][mpdpdx];
+ Int_t ldelta [mxxmdf];
+ Int_t lpdetb [mxxmdf];
+ Int_t ijdpdx [nallwp + 7];
+ Int_t letfun;
+ } dpdxcmCommon;
+#define DPDXCM COMMON_BLOCK(DPDXCM,dpdxcm)
+COMMON_BLOCK_DEF(dpdxcmCommon, DPDXCM);
+}
--- /dev/null
+#include "cfortran.h"
+#include "Rtypes.h"
+
+#include "Fdimpar.h"
+
+extern "C" {
+/*$ CREATE FLKMAT.ADD
+*COPY FLKMAT
+*
+*=== Flkmat ===========================================================*
+*
+*----------------------------------------------------------------------*
+* *
+* Partial (some variables come from FLUKA87) *
+* Copyright (C) 1996-2005 by Alfredo Ferrari *
+* All Rights Reserved. *
+* *
+* *
+* FLuKa MATerial properties and atomic data *
+* *
+* Version for Fluka91/.../2005/...: *
+* *
+* Last change on 28-Apr-05 by Alfredo Ferrari, INFN-Milan *
+* *
+* *
+* This common contains the basic properties of the materials used *
+* in the FLUKA run. Other properties are recorded in specialized *
+* commons (ie for dE/dx etc) *
+* *
+* Aocmbm(i) = Atomic density of the i_th material in barn^-1 cm^-1 *
+* (Atoms Over Cm times Barn for Materials) *
+* Eocmbm(i) = Electron density of the i_th material in barn^-1cm^-1*
+* (Atoms Over Cm times Barn for Materials) *
+* Amss(i) = Atomic weight (g/mole) of the i_th material *
+* Amssem(i) = "Effective" i_th material atomic weight for the para-*
+* metrized EM cascade *
+* Rho(i) = Density of the i_th material *
+* Ztar(i) = Atomic number of the i_th material *
+* Zsqtar(i) = Squared atomic number of the i_th material *
+* Ztarem(i) = "Effective" atomic number for the i_th material for *
+* the parametrized EM cascade *
+* Ainlng(i) = Inelastic scattering length of the i_th material *
+* for beam particles at the average beam energy in cm *
+* Aellng(i) = Elastic scattering length of the i_th material for *
+* beam particles at average beam energy in cm *
+* X0rad(i) = Radiation lengths of the materials in cm *
+* Ainnth(i) = Inelastic scattering length of the i_th material *
+* for neutrons at threshold energy in cm *
+* Medium(k) = Material number of the k_th region *
+* Mulflg(i) = Flags for multiple scattering options for the i_th *
+* material *
+* Icomp(i) = Starting address in the Matnum array if the i_th *
+* material is a compound/mixture, 0 otherwise *
+* Mssnum(i) = Mass number of the target nucleus for the i_th mater-*
+* ial, if =< 0 it means that it is in the natural isot-*
+* opic composition *
+* Msindx(i) = Index for tabulations for the given isotope of the *
+* target nucleus (meaningful only for mssnum > 0) *
+* that it is in the natural isotopic composition *
+* Lcmpnd(i) = logical flag for real compounds versus mixtures *
+* Matnam(i) = Alphabetical name of the i_th material number *
+* Nregs = total number of regions *
+* Nregcg = total number of combinatorial geometry regions *
+* Nmat = total number of materials used in the problem *
+* Mtbsnm = medium for which inelastic interaction biasing must *
+* be done *
+* *
+* Mxxmdf = maximum number of materials *
+* Mxxrgn = maximum number of regions *
+* *
+*----------------------------------------------------------------------*
+*
+ CHARACTER*8 MATNAM
+ LOGICAL LCMPND
+ COMMON / FLKMAT / AOCMBM(MXXMDF), EOCMBM(MXXMDF), AMSS (MXXMDF),
+ & AMSSEM(MXXMDF), RHO (MXXMDF), ZTAR (MXXMDF),
+ & ZTAREM(MXXMDF), ZSQTAR(MXXMDF), AINLNG(MXXMDF),
+ & AELLNG(MXXMDF), X0RAD (MXXMDF), AINNTH(MXXMDF),
+ & MEDIUM(MXXRGN), MULFLG(MXXMDF), ICOMP (MXXMDF),
+ & MSSNUM(MXXMDF), MSINDX(MXXMDF), LCMPND(MXXMDF),
+ & NREGS , NMAT , MTBSNM, NREGCG
+ COMMON / CHFLKM / MATNAM(MXXMDF)
+ SAVE / FLKMAT /
+ SAVE / CHFLKM /
+*/
+
+ typedef struct {
+ Double_t aocmbm[mxxmdf];
+ Double_t eocmbm[mxxmdf];
+ Double_t amss [mxxmdf];
+ Double_t amssem[mxxmdf];
+ Double_t rho [mxxmdf];
+ Double_t ztar [mxxmdf];
+ Double_t ztarem[mxxmdf];
+ Double_t zsqtar[mxxmdf];
+ Double_t ainlng[mxxmdf];
+ Double_t aellng[mxxmdf];
+ Double_t x0rad [mxxmdf];
+ Double_t ainnth[mxxmdf];
+ Int_t medium[mxxrgn];
+ Int_t mulflg[mxxmdf];
+ Int_t icomp [mxxmdf];
+ Int_t mssnum[mxxmdf];
+ Int_t msindx[mxxmdf];
+ Int_t lcmpnd[mxxmdf];
+ Int_t nregs;
+ Int_t nmat;
+ Int_t mtbsnm;
+ Int_t nregcg;
+ } flkmatCommon;
+#define FLKMAT COMMON_BLOCK(FLKMAT,flkmat)
+ COMMON_BLOCK_DEF(flkmatCommon, FLKMAT);
+}