/* * DO NOT MANUALLY UPDATE THIS FILE. * If needed: make cpp_headers * * fortran2c.py - automatic conversion * fluoxr.inc -> fluoxr.h */ #ifndef __FLUOXR__ #define __FLUOXR__ #include "types.h" #ifdef __cplusplus extern "C" { #endif // //=== fluoxr ===========================================================* // //----------------------------------------------------------------------* // * // Copyright (C) 2003-2019: CERN & INFN * // All Rights Reserved. * // * // Include file Fluoxr: created on 4-October-1990 by A. Ferrari * // INFN - Milan * // Description of the variables (not complete): * // * // Brrlxl(ix,il,iz) = Relative branching ratios of the * // ix-th Lil line (il=1-3, LI,LII,LIII) * // Brrkxl(ix,iz) = Relative branching ratios of the * // ix-th K line * // Flyldk(iz) = Fluorescence yield for the K-shell * // of the iz-th element * // Flyldl(il,iz) = Fluorescence yield for the il sub- * // shell of the L-shell (LI,LII,LII) * // of the iz-th element * // Zelshl(ks,iz) = Number of electrons in the ks_th sub-* // shell of the element iz * // Ishell(id) = Main shell (K,L,M,N,O,P,Q) of the * // id-th level * // id=1 --> K * // id=2 - 4 --> L * // id=5 - 9 --> M * // id=10-16 --> N * // id=17-21 --> O * // id=22-27 --> P * // id=28-29 --> Q * // Ktoxtr(ix) = end level index for the ix-th X * // transitions from the K shell * // Ltoxtr(ix,il) = end level index for the ix-th X * // transitions from Lil subshell * // Nshell(is) = Number of sub-shell for the is-th * // shell (is=1-7 --> K,L,M,N,O,P,Q) * // Nflndx(1,iz) = Last (sub)edge index for the iz ele- * // ment in the global numbering * // (Nlfndx(1,iz)-Nflndx(1,iz-1) is the * // total number of (sub)edges of the iz * // element for which a tabulated fit * // exists). These indeces are used in * // the Zphoto and Sgphpa arrays * // Nflndx(2,iz) = Last (main)edge (shell) index for the* // iz element in the global numbering * // (Nlfndx(2,iz)-Nflndx(2,iz-1) is the * // total number of tabulated main shells* // of the iz element). These indeces are* // used in the Azphot, Bzphot and Eiedge* // arrays * // Nflndx(3,iz) = Last (energy) level index for the * // iz element in the global numbering * // (Nlfndx(3,iz) - Nflndx(3,iz-1) is * // the total number of tabulated energy * // levels of the iz element). The total * // number of recorded energy levels is * // 1329 and includes also levels below * // 1 keV. * // The indeces between Nflndx(3,iz-1)+1 * // and Nlfndx(3,iz) point to the corres-* // ponding elements of the Ziedge array * // Ktbedg(ie) = Starting blank common location (0 * // address, 0th element is included) for* // edge-by-edge photoelectric tabulati- * // ons * // Ielshl(ks,iz) = is_th (edge) sub-shell correpsonding * // to the ks_th subshell of the element * // iz * // Lnwpex = logical flag for using the NeW edge- * // by-edge PhotoElectric X-section tabu-* // lations. If true, Nflndx(1,iz) and * // Nflndx(3,iz) coincides * // * // ks_th sub-shell: it corresponds to the sequence * // K (1S1/2) * // L1 (2S1/2) * // L2 (2P1/2) * // L3 (2P3/2) * // M1 (3S1/2) * // M2 (3P1/2) * // M3 (3P3/2) * // M4 (3D3/2) * // M5 (3D5/2) * // N1 (4S1/2) * // N2 (4P1/2) * // N3 (4P3/2) * // N4 (4D3/2) * // N5 (4D5/2) * // N6 (4F5/2) * // N7 (4F7/2) * // O1 (5S1/2) * // O2 (5P1/2) * // O3 (5P3/2) * // O4 (5D3/2) * // O5 (5D5/2) * // O6 (5F5/2) * // O7 (5F7/2) * // P1 (6S1/2) * // P2 (6P1/2) * // P3 (6P3/2) * // P4 (6D3/2) * // P5 (6D5/2) * // Q1 (7S1/2) * // Q2 (7P1/2) * // Q3 (7P3/2) * // is_th sub-shell: it corresponds to the same sequence * // skipping empty sub-shells, it is the * // sequence of photoelectric edges (and * // endrgy levels) * //----------------------------------------------------------------------* // const double EHYDR0 = 1.3605697953179906E-05; // PARAMETER ( TWOPIP = TWOTWO * PIPIPI ) // This is 4 sqrt(2) const double SIGTHO = 6.6524615280813428E-01; // PARAMETER ( PHCONS = TWO3O2 * SIGTHO * FSCTO4 ) const double TWO3O2 = 5.656854249492380E+00; const double PHCONS = 1.0671336148164197E-08; // PARAMETER ( PHCON2 = XXXXXXXXXXXXXXX ) // This is 2 x pi x exp (-4) const double PHCON2 = 64.E+00*SIGTHO/FSCTO3; // This is 3 / ( 8 x sqrt (2) ) const double PHEDG0 = 0.1150805531573017E+00; // Parameters for new photoelectric tabulations: const double SAUCST = 0.2651650429449553E+00; // PARAMETER ( NTBED0 = 15 ) // PARAMETER ( NTBED1 = 55 ) // PARAMETER ( NTBD12 = 2000 ) // PARAMETER ( Z0ED12 = 11.7 D+00 ) // PARAMETER ( S2ED12 = ONEONE ) // PARAMETER ( NTBD20 = 400 ) // PARAMETER ( Z0ED20 = 19.9 D+00 ) // PARAMETER ( S2ED20 = TWOTWO ) // PARAMETER ( NTBD27 = 350 ) // PARAMETER ( Z0ED27 = 27.0 D+00 ) // PARAMETER ( S2ED27 = SIXSIX ) const double EMXED0 = 1.E+11; const int NTBED0 = 15; const int NTBED1 = 58; const int NTBD12 = 2000; const double Z0ED12 = 11.35E+00; const double S2ED12 = TWOTWO; const int NTBD20 = 600; const double Z0ED20 = 19.7E+00; const double S2ED20 = THRTWO; const int NTBD27 = 450; const double Z0ED27 = 27.35E+00; // const double S2ED27 = TENTEN; const double EDGPOA = THRTHR; // t = tabulation abscissa // x = E/E_edge // // 1/a // 1: t = ln[x] // a // E = E_edge exp[t ] // // // 2: t = ln[1+ln(x)] // // E = E_edge exp[exp(t)-1] // // 1/a // 3: t = ln[1+ln(x) ] // a // E = E_edge exp{[exp(t)-1] } // const double EDGPOD = 0.0E+00; // const int IEDGTB = 3; extern struct { double zphoto[920]; double azphot[455]; double bzphot[455]; double ziedge[1612]; double ziedft[1612]; double eiedge[455]; double brrlxl[100][3][4]; double brrkxl[100][8]; double flyldk[100]; double flyldl[100][3]; double sgphpa[1612]; double hallcr[100]; double asypow[1612]; double axmlmx[1612]; double ehydro; double zelshl[100][MXESHL]; double emxedg; int ktoxtr[8]; int ltoxtr[3][4]; int nflndx[100+1][3]; int nflnft[100+1]; int nshell[7+1]; int ishell[29+1]; int ktbedg[1612]; int ntbedg[1612]; int idmin[100]; int ielshl[100][MXESHL]; logical lnwpex; } fluoxr_; const int fluoxr_nflndx_base = 0; const int fluoxr_nflnft_base = 0; const int fluoxr_nshell_base = 0; const int fluoxr_ishell_base = 0; extern struct { char chkxln[8][8]; char chlxln[3][4][8]; char cheshl[MXESHL][10]; } chfluo_; #ifdef __cplusplus } #endif #endif