The Fortran subroutine package pengeom provides a complete set of tools to handle quadric geometries in Monte Carlo simulations of radiation transport. The material structure where radiation propagates is assumed to consist of homogeneous bodies limited by quadric surfaces. The pengeom subroutines (a subset of the penelope code) track particles through the material structure, independently of the details of the physics models adopted to describe the interactions. Although these subroutines are designed for detailed simulations of photon and electron transport, where all individual interactions are simulated sequentially, they can also be used in mixed (class II) schemes for simulating the transport of high-energy charged particles, where the effect of soft interactions is described by the random-hinge method. The definition of the geometry and the details of the tracking algorithm are tailored to optimize simulation speed. The use of fuzzy quadric surfaces minimizes the impact of round-off errors. The provided software includes a Java graphical user interface for editing and debugging the geometry definition file and for visualizing the material structure. Images of the structure are generated by using the tracking subroutines and, hence, they describe the geometry actually passed to the simulation code. Program summaryProgram title: PengeomCatalogue identifier: AEYH_v1_0Program summary URL:http://cpc.cs.qub.ac.uk/summaries/AEYH_v1_0.htmlProgram obtainable from: CPC Program Library, Queen’s University, Belfast, N. IrelandLicensing provisions: Standard CPC licence, http://cpc.cs.qub.ac.uk/licence/licence.htmlNo. of lines in distributed program, including test data, etc.: 89390No. of bytes in distributed program, including test data, etc.: 5062646Distribution format: tar.gzProgramming language: Fortran, Java.Computer: PC with Java Runtime Environment installed.Operating system: Windows, Linux.RAM: 210 MiBClassification: 21.1, 14.Nature of problem: The Fortran subroutines perform all geometry operations in Monte Carlo simulations of radiation transport with arbitrary interaction models. They track particles through material systems consisting of homogeneous bodies limited by quadric surfaces. Particles are moved in steps (free flights) of a given length, which is dictated by the simulation program, and are halted when they cross an interface between media of different compositions or when they enter selected bodies.Solution method: The pengeom subroutines are tailored to optimize simulation speed and accuracy. Fast tracking is accomplished by the use of quadric surfaces, which facilitate the calculation of ray intersections, and of modules (connected volumes limited by quadric surfaces) organized in a hierarchical structure. Optimal accuracy is obtained by considering fuzzy surfaces, with the aid of a simple algorithm that keeps control of multiple intersections of a ray and a surface. The Java GUI PenGeomJar provides a geometry toolbox; it allows building and debugging the geometry definition file, as well as visualizing the resulting geometry in two and three dimensions.Restrictions: By default pengeom can handle systems with up to 5000 bodies and 10,000 surfaces. These numbers can be increased by editing the Fortran source file.Unusual features: All geometrical operations are performed internally. The connection between the steering main program and the tracking routines is through a Fortran module, which contains the state variables of the transported particle, and the input-output arguments of the subroutine step. Rendering of two- and three-dimensional images is performed by using the pengeom subroutines, so that displayed images correspond to the definitions passed to the simulation program.Additional comments: Java editor and viewer (PenGeomJar), geometry examples, translator to POV-Ray™ format, detailed manual. The Fortran subroutine package pengeom is part of the penelope code system [1].Running time: The running time much depends on the complexity of the material system. The most complicated example provided, phantom, an anthropomorphic phantom, has 264 surfaces and 169 bodies and modules, with different levels of grouping; the largest module contains 51 daughters. The rendering of a 3D image of phantom with 1680x1050 pixels takes about 25 s (i.e., about 1.5⋅10−5 seconds per ray) on an Intel Core I7-3520M CPU, with Windows 7 and subroutines compiled with gfortran.