/* * DO NOT MANUALLY UPDATE THIS FILE. * If needed: make cpp_headers * * fortran2c.py - automatic conversion * gomloc.inc -> gomloc.h */ #ifndef __GOMLOC__ #define __GOMLOC__ #include "types.h" #ifdef __cplusplus extern "C" { #endif // //=== Gomloc ===========================================================* // //----------------------------------------------------------------------* // * // This module is: * // Copyright (C) 2003-2019: CERN & INFN * // All Rights Reserved. * // limited to its reorganization/comments * // * // Include file: gomloc (Combinatorial geometry) * // * // Created on 01 December 1990 by Alfredo Ferrari & Paola Sala * // Infn - Milan * // * // KMA = starting location of the MA array (NSTOR(KMA)) * // KFPD = starting location of the FPD array (GMSTOR(IFPD)) * // (IFPD = KFPD/KALGNM + JALGNM) * // KLCR = starting location of the LOCREG array (NSTOR(KLCR)) * // KNBD = starting location of the NUMBOD array (NSTOR(KNBD)) * // KIOR = starting location of the IROR array (NSTOR(KIOR)) * // (IROR(IRP) = IR, IRP = zone number, IR = region number) * // KKR1 = starting location of the IR1 array (NSTOR(KKR2)) * // (IR1(IR) = first zone of region IR) * // KKR2 = starting location of the IR2 array (NSTOR(KKR1)) * // (IR2(IR) = last zone of region IR) * // KRDN = starting location of the MRDN array (NSTOR(KRDN)) * // (MRDN(IR) = flag for DNEAR use, IR = region number) * // KRIZ = starting location of the MRIZ array (NSTOR(KRIZ)) * // (MRIZ(IR) = IRT in FLUKA, IRT = rotation numb.)* // KMIZ = starting location of the MMIZ array (NSTOR(KMIZ)) * // (MMIZ(IR) = IR in FLUKA, IR = region number, * // or =-ICELL, ICELL = lattice number) * // KRCZ = starting location of the MRCZ array (NSTOR(KRCZ)) * // (MRCZ(IRR) = IR in FLUKA, IRR = zone number, IR = region number) * // KMCZ = starting location of the MMCZ array (NSTOR(KMCZ)) * // (MMCZ(IRR) = IR in FLUKA, IRR = zone number, IR = region number) * // LTMA = total length of the MA array * // LFPD = total length of the FPD array * // IRTRU = total number of input regions * // NUMR = total number of zones * // NUMB = total number of bodies * // * // Parameter: * // MASBDY = size of body storage in the MA array * // * // Starting location inside the MA array of the Ibody_th body data: * // LOCAT = MASBDY * IBODY - MASBDY + 1 * // Body number: should be = ibody * // JBODY = MA ( LOCAT ) * // LOOP: index of the last call to this body * // LOOP = MA ( LOCAT + 1 ) * // ITYPE: body type * // ITYPE = MA ( LOCAT + 2 ) * // LRI/LRO: entrance/exit surfaces, meaningful for LOOP=KLOOP only * // LRI = MA ( LOCAT + 3 ) * // LRO = MA ( LOCAT + 4 ) * // Starting location inside the FPD array of the Ibody_th body data:* // KF = MA ( LOCAT + 6 ) * // Possible transformation index for the Ibody_th body data: * // KBDYTR = MA ( LOCAT + 7 ) * // Body name * // BODYNM = CHFPD ( KF - 1 - KEXTRN ) * // Current Dnear value, meaningful for LOOP=KLOOP only * // BNNEAR = FPD ( KF - 1 ) * // RIN/ROUT: entrance/exit distances, meaningful for LOOP=KLOOP only* // RIN = FPD ( KF ) * // ROUT = FPD ( KF + 1 ) * // Ith physical parameters of the body * // ALPHA = FPD ( KF + 1 + I ) * // * // M(N): starting location of the 1st body data for the Irr_th zone * // M = LOCREG(IRR) * // N = LOCREG(IRR) + 1 * // IALP1: first zone of the region corresponding to zone Irr * // IALP1 = MA ( M ) * // NBO: body number (with sign) * // NBO = MA ( N ) * // LOCAT: see above * // LOCAT = MA ( N + 1 ) * // Note that MA ( N + 2 ) and MA ( N + 3 ) are used for the proxi- * // mity array leap frog access * // INEXT = N + 2 * // INEX = INEXT + 1 * // IRPNEW: 1st recorded adjacent zone (if any) * // IRPNEW = MA (INEXT) = MA ( N + 2 ) * // INEXT: address inside MA on the next adjacent zone record if any * // INEXT = MA (INEX) = MA ( N + 3 ) * // NUM: starting last of the last body data for the Irr_th zone * // NUM = NUMBOD ( IRR ) * 4 + N - 4 * // IR: region corresponding to the zone Irr * // IR = IROR ( IRR ) * // JR1/JR2: initial and final zones corresponding to region Ir * // JR1 = IR1 ( IR ) * // JR2 = IR2 ( IR ) * // * //----------------------------------------------------------------------* // const int JALGNM = KALGNM/2; const int KEXTRN = KALCH8; // const int MASBDY = 8; extern struct { int kma; int kfpd; int klcr; int knbd; int kior; int kriz; int krcz; int kmiz; int kmcz; int kkr1; int kkr2; int krdn; int knsr; int kvol; int krnm; int naad; int ldata; int ltma; int lfpd; int numr; int irtru; int numb; int nir; } gomloc_; #ifdef __cplusplus } #endif #endif