## 2 Computational Details: StarRate and the VMS Tool  
StarRate is an object-based, modern Fortran program for modeling the kinetics of multistep reactions. At its current stage of development, StarRate targets multi-step unimolecular reactions (which can however dissociate, irreversibly, to multiple products). (The implementation of procedures for the treatment of bimolecular entrance channels is currently in progress). From a technical point of view, the program is written in the so-called 'F language' [19; 20], a carefully crafted subset of Fortran 95, and is conceived in an object-based programming paradigm. As described in deeper detail in Ref. [21], StarRate is structured in three main modules, namely molecules, steps and reactions, which reflect the entities associated with a multi-step chemical reaction. All of these modules contain a defined data-type and some related procedures to access and operate on it. The main program, StarRate, controls the sequences of the calling of the procedures contained in each of the three main modules. Another important module of StarRate is in_out, which handles the input and output operations of the program. Input data are accessed by StarRate through an XML interface based on the same versatile hierarchical data structure that is adopted by VMS. (The current version of VMS reads data in the JSON format, so that a straightforward conversion from XML to JSON is in order. This can be easily done, for instance, using xml2 json ([[https://github.com/hay/xml2](https://github.com/hay/xml2) json]([https://github.com/hay/xml2](https://github.com/hay/xml2) json)), or online converters such as [[https://www.convertjson.com/xml-to-json.htm](https://www.convertjson.com/xml-to-json.htm)]([https://www.convertjson.com/xml-to-json.htm](https://www.convertjson.com/xml-to-json.htm))). At the beginning, the user has to prepare a very simple input file encoding a reaction scheme (see the starrate.inp box in Figure 1) and gather all the files, one for each molecular species, containing data deriving from electronic-structure calculations. These can be either in an internal standard format (similar to that adopted in the EStokTP [22] package) or directly output files of quantum-chemistry packages, as exemplified in Figure 1 for the case of the Gaussian package. Currently StarRate supports output files from this quantum-chemistry package (.log extension), though support for other popular electronic-structure programs is presently being pursued (see also Refs. [23; 24] on the issue of interoperability and common data formats in quantum chemistry). Then, a Python script is run which extracts data from the output files generated by the quantum-chemistry calculations and, driven by the reaction scheme, collects the information in the proper sections of the XML file. The structure of the XML interface is schematized in Figure 2. The whole XML document develops under a root element named escdata. The escdata has one child element for each molecule named section_run. Each of these elements contains three nodes: program_info, section_system, and system_single_configuration_calculation. All the information regarding a molecule is handled by these three sibling nodes. The program_info node contains two subnodes which keep track of quantum chemical software name and.log file location. The section_system node contains basic information which does not require quantum chemical information (viz., molecular charge, spin multiplicity, atom label, atomic numbers, rotational constants). The last sibling, system_single_configuration_calculation, contains information which requires quantum chemical calculations (viz., vibrational constants, SCF energy, density of state data). Finally, the last section_run collects information on physical conditions and on the reaction under study. For illustrative purposes, the actual.xml file for the reaction studied in Section 3 is given as Supplementary Material. Once the XML has been generated, the StarRate program comes into play.