Sourcery
Sourcery includes several small nearly independent classes and procedures that we find useful ubiquitously. One of the most useful procedures is an assertion utility for checking runtime constraints, providing useful diagnostic output when constraints are violated, and a mechanism for eliminating the constraints in optimized production builds. One unique aspect of the assertion utility is that it can be called inside pure procedures because it uses the Fortran 2018 capability for error termination with variable integer or character stop codes. Another unique aspect is that it allows for user-defined derived type output of diagnostic data via the Object pattern described in Scientific Software Design: The Object-Oriented Way by Rouson, Xia, and Xu (Cambridge University Press, 2011). A planned future capability will also allow for JSON output of diagnostic data. Other utilities in Sourcery include array functions, basic parallel data partitioning functions and units-handling functions.