/* * DO NOT MANUALLY UPDATE THIS FILE. * If needed: make cpp_headers * * fortran2c.py - automatic conversion * lowneu.inc -> lowneu.h */ #ifndef __LOWNEU__ #define __LOWNEU__ #include "types.h" #ifdef __cplusplus extern "C" { #endif // //=== lowneu ===========================================================* // //----------------------------------------------------------------------* // * // Copyright (C) 2003-2019: CERN & INFN * // All Rights Reserved. * // * // Created by Alfredo Ferrari on 6 July 1990 * // * // Lowneu: contains data for the low energy neutron transport * // * // Included in the following routines: * // * // Bdnopt * // Blnset * // Deflts * // Donimb * // E6lipw * // Ev1hpw * // Eveneu * // Evepwn * // Evpwxs * // Evxtes * // Fiprou * // Flkend * // Flukam * // Grggen * // Grngen * // Kasneu * // Lnfrnc * // Lnrsnc * // Lowres * // Lowset * // Lwmcrd * // Lwncrd * // Stfspr * // Usrbdx * // Usrcll * // Usrtrk * // Usryld * // Xsprnt * // Xsread * // Xtlwnt * // Zeroin * // * // Description of the variables: * // * // Igrthn = number of thermal neutron groups, the groups from * // Nmgp - Igrthn + 1 up to Nmgp are considered to be * // thermal ones. After initialization it is transfor-* // med into the absolute group index of the first * // thermal group, that is, Nmgp - Igrthn + 1 * // Tmrtln (im) = Temperature ratio with respect to the nominal one * // for FLUKA medium im * // Tmnmln (im) = Nominal temperature for FLUKA medium im * // Igtmrt (im) = First (thermal) group where to apply Tmrtln (must * // be such that it is not larger than Nmgp to be * // meaningful) for FLUKA medium im. After initializa-* // tion it is transformed in absolute group number * // Vllnth (ig,im) = Velocity (cm/s) for ig_th thermal group for im_th * // FLUKA medium (im=0 means reference 293 K) * // This is the average over dN_Maxwell/dv which over * // [0,oo) gives v_0 x 2 / sqrt(pi), where v_0 is gi- * // ven by: v_0 = sqrt(2KT/m) x c_light * // Enlnth (ig,im) = Kinetic energy (GeV) for ig_th thermal group for * // the reference 293 K temperature. * // This is the average over dN_Maxwell/dE which over * // [0,oo) gives 3/2 KT, where the average on the flux* // is given by KT * // Ablnth (ig,im) = Absorption (and gamma generation) modifying factor* // for ig_th thermal group for im_th FLUKA medium * // Stlnth (ig,im) = Total cross section modifying factor for ig_th * // thermal group for im_th FLUKA medium * // Neumed(im) = Neutron xsec medium index (mm) corresponding to * // the im_th Fluka material * // Icnmed(mm) = Continuous energy index for the mm_th neut. xsec * // medium (if any, =<0 means no information) * // Klnrnc(mm) = starting location (0 index) in blank common of * // residual nuclei informations for the mm_th neut. * // xsec medium (if any, <0 means no information) * // Ipwsgc(mm) = index of a (possible) pointwise capture gamma data* // set for the mm_th neut. xsec medium (if any, =0 * // means no information) * // Imd2nr(mm) = ordinal index when read of the mm_th neut. xsec * // medium (1=1st read in etc) * // Fnadef = default non-analogue absorption factor to be * // applied to neutron groups from nmgp-ngnaof to nmgp* // Ngnaof = see above * // Ngctff = global neutron group cut-off: neutrons belonging * // to groups >= Ngctff are killed * // Lpwxsc = flag for using pointwise cross sections and/or * // explicit (n,gamma) generation when available * // Lnfcrt = flag for neutron fission criticality problems. It * // simply forces the number of fission neutrons to * // be 1 with a proper weight * // Lexkrp = flag for partial kermas * // Lexnnu = flag for fission nu and chi infos * // Npxsec = number of extra edit infos recorded in the cross * // section file * // 1: Probability of non-elastic scattering fission * // included (gamma production reactions) * // 2: Probability of non-elastic scattering with * // neutron production (all non-elastic reactions * // (n,xn), x >= 1, but not (n,fission)) * // 3: Probability of fission * // 4: Probability of (n,gamma) * // 5: Probability of (n,p) * // 6: Probability of (n,a) * // Npkerm = number of partial kermas * // Nnuchi = number of fission nu/chi values * // * //----------------------------------------------------------------------* // Minimum energy for (possible) point-wise treatments: // Maximum number of thermal neutron groups: const double ENCNMN = 0.00000001E+00; // Maximum neutron weight profiles: const int MXGTHN = 35; // *** Partial kermas position definitions *** const int MXSHPP = 5; // Position in the kerma table of the correct(ed) kerma const int MPKERM = 19; // Position in the kerma table of the elastic kerma (k302) const int KCRKRM = 1; // Position in the kerma table of the nonelastic kerma (k303) const int KELKRM = 2; // Position in the kerma table of the inelastic kerma (k304) const int KNEKRM = 3; // Position in the kerma table of the "all other" kerma (k305) const int KINKRM = 4; // Position in the kerma table of the fission kerma (k318) const int KOTKRM = 5; // Position in the kerma table of the (n,n alpha) kerma (k322) const int KFSKRM = 6; // Position in the kerma table of the (n,2n alpha) kerma (k324) const int KNAKRM = 7; // Position in the kerma table of the (n,3n alpha) kerma (k325) const int K2AKRM = 8; // Position in the kerma table of the (n,n p) kerma (k328) const int K3AKRM = 9; // Position in the kerma table of the disappearence kerma (k401) // ((n,gamma) + (n,p) + (n,a) + ....) const int KNPKRM = 10; // Position in the kerma table of the (n,gamma) kerma (k402) const int KDIKRM = 11; // Position in the kerma table of the (n,p) kerma (k403) const int KCPKRM = MPKERM-7; // Position in the kerma table of the (n,alpha) kerma (k407) const int KPRKRM = MPKERM-6; // Position of kinematic limit (kerma 443) const int KALKRM = MPKERM-5; // Position in the kerma table of the total damage energy const int K443KR = MPKERM-4; // Position in the kerma table of the elastic damage energy const int KNIELS = MPKERM-3; // Position in the kerma table of the inelastic damage energy const int KELDMG = MPKERM-2; // Position in the kerma table of the disappearance damage energy // (MT's 102 through 120) const int KINDMG = MPKERM-1; // *** Fission nu/chi parameters position definitions *** // Number of Neutrons per Fission: (MT = 452) const int KDIDMG = MPKERM; // Number of Delayed neutrons per fission: (MT = 455) const int KNUTTL = 1; // Number of Prompt Neutrons per Fission: (MT = 456) const int KNUDLY = 2; // Chi_total (MT = 470) const int KNUPRM = 3; // Chi_del (MT = 471) const int KCHITT = 4; // const int KCHIDL = 5; extern struct { double atolow[MXXMDF]; double wshpln[MXSHPP][MXGLWN]; double extwwl; double shpimp[MXGLWN]; double extetl[MXGLWN]; double wwamfl; double vllnth[MXXMDF+1][MXGTHN]; double enlnth[MXGTHN]; double ablnth[MXXMDF][MXGTHN]; double stlnth[MXXMDF][MXGTHN]; double tmrtln[MXXMDF]; double fnadef; double tmnmln[MXXMDF]; int ichcpt[MXXMDF]; int igtmrt[MXXMDF]; int neumed[MXXMDF]; int id1med[MXXMDF]; int id2med[MXXMDF]; int id3med[MXXMDF]; int imd2nr[MXXMDF]; logical lcompn[MXXMDF]; logical lrecpr[MXXMDF]; int icnmed[MXXMDF]; int klnrnc[MXXMDF]; int ipwsgc[MXXMDF]; int kprlow; int nmgp; int nmtg; int igrthn; logical limprn; logical lbiasn; logical ldownn; logical llowww; logical llowet; int iclmed; int ikrbgn; int ikpbgn; int inabgn; int idwbgn; int ietbgn; int i0xsec; int idxsec; int isenav; int isveln; int ispnav; int iwwlwb; int iwwlwt; int ipxbgn; int npxsec; int npkerm; int nnuchi; int ngnaof; int ngctff; logical lpwxsc; logical lnfcrt; logical lexkrp; logical lexnnu; } lowneu_; const int lowneu_vllnth_base = 0; extern struct { char titlow[MXXMDF][10]; } chlwnt_; #ifdef __cplusplus } #endif #endif