********************************************************************************Since several years, the FLUKA source code has been organised in "modules". This word must not be intended to have the technical meaning which it has been assigned later in Fortran 90. A FLUKA module is simply a collection of routines covering the same physics field or belonging to the same class of functionality. In the FLUKA2016 version, there are 36 modules: AAMODM : dynamic memory allocation routines BAMJM : new hadronisation package (strongly improved version of the original BAMJET [Rit84]) BLOCKM : block data routines BMEM : the Boltzmann Master Equation nucleus-nucleus interaction package for nucleus-nucleus interactions below 150 MeV/u COMLATM : all geometry routines specific for combinatorial geometry (CG) and repetition (lattice capability) in the geometry description DECAYM : all routines connected with particle decays during transport, including those managing polarisation or non phase-space-like decays for pions, kaons, muons and taus DEDXM : all routines connected with dE/dx and radiative losses of hadrons and muons, including delta-ray production and cross- sections for muon photonuclear interactions DPMM : interface routines for the DPMJET generator DUM : dummy routines ELSM : all hadron and photon (photonuclear) cross section routines EMFM : all routines dealing with electron, positron and photon transport and interactions (except for photon photonuclear interactions, fluorescent X-ray and Auger production) EVENTQM : auxiliary routines for the high energy hadronic interaction generators EVENTVM : all routines (besides those in EVENTQM) connected with the high energy hadronic inelastic interaction package EVFFRM : separate module with all evaporation, fission and Fermi break-up routines FLUOXM : all routines dealing with fluorescence X-ray and Auger production GCRM : cosmic ray and solar flare simulation package GEOLATM : geometry navigation and debugging routines KASKADM : general event steering, most of the relevant transport routines for hadron and muon transport, including magnetic field tracking, most of material and region dependent initialisation and source routines LOWNEUM : all routines concerning the multigroup treatment of "low" energy (E < 20 MeV) neutrons MAINM : main, input parsing and auxiliary routines MATHM : mathematical auxiliary routines (interpolation, integration, etc) Many of them adapted from SLATEC (http://www.netlib.org/slatec). NEUTRIM : nuclear interactions of neutrinos NOPTM : all routines connected with new scoring options implemented after FLUKA86, and blank COMMON setting for scoring options NUNDISM : neutrino-nucleon deep inelastic scattering NUNRESM : neutrino-nucleon resonance production OPPHM : optical photon production and transport OUTPUTM : printing routines (apart from output of new options which is performed in NOPTM) PEMFM : electromagnetic initialisation PGM : PLOTGEOM geometry drawing package PRECLM : full PEANUT second part PREEQM : full PEANUT first part PRIPROM : initialisation and drivers for PEANUT RNDM : random number generation, including gaussian-distributed random numbers RQMDM : interface routines for the RQMD generator USERM : user oriented routines (see list below) IBMM/HPM/LINUXM/OSFM/VAXM : timing and "environment" routines. These are machine specific. User oriented routines (see description in 13}): The "FLUKA User Routines" mentioned at point 3) in the FLUKA User License are those (and only those) contained in the directory usermvax, both in the source and binary versions of the code. ABSCFF : absorption coefficient (for optical photons) COMSCW : response functions, user dependent selection for density-like quantities DFFCFF : diffusion coefficient (for optical photons) ELEFLD : to use an electric field map ENDSCP : energy density distributed - change of positions FLDSCP : fluence distributed - change of positions FLUSCW : response functions, user dependent selection for flux-like quantities FORMFU : nuclear charge form factors FRGHNS : material roughness (for optical photons) FTELOS : called at the very end of a FLUKA run FUSRBV : defines a continuous variable for 3-D binnings LATTIC : symmetry transformation for lattice geometry LUSRBL : defines a discrete variable for 3-D binnings MAGFLD : to use a magnetic field map MDSTCK : management of secondary stack MGDRAW : to dump trajectories, etc. MUSRBR : defines a discrete variable for 3-D binnings OPHBDX : boundary crossing properties (for optical photons) PSHCKP : call user when pushing Cherenkov photons to the stack PSHSCP : call user when pushing scintillation photons to the stack QUEFFC : quantum efficiency (for optical photons) RFLCTV : reflectivity (for optical photons) RFRNDX : refraction index (for optical photons) SOEVSV : saving source events SOURCE : to generate any distribution for source particles SPHSPC : to generate scintillation photons according to a spectrum STUPRE : set user variables (electrons and photons) STUPRF : set user variables (hadrons, muons and neutrinos) UBSSET : to override input biasing parameters UDCDRL : decay direction biasing USFSCI : to set the number of scintillation photons produced per GeV USIMBS : user-defined importance biasing USREIN : event initialisation USREOU : post-event output USRGLO : user global settings USRHSC : user provided density scaling factors USRINI : user initialisation USRMED : to perform user driven biasing and/or particle selections on a material basis USROUT : user output USRRNC : user customisation of residual nuclei scoring USTCKV : user customisation of Cherenkov photon production WVLNSH : wave-length shitfing of optical photons