| File | Description |
|---|---|
| pic.f90 | the main pic module interface: versions, banners, random quotes etc will go here |
| pic_ansi.f90 | ANSI escape sequences, key decoding and flicker-free frame composition. |
| pic_array.f90 | pic array contains L0.5 BLAS level routines, as in things that could be use in lieu of blas if you don’t have it but if you do, please don’t use these routines |
| pic_array_hash.f90 | State hashing of whole intrinsic arrays, for checkpoint validation and cross-run comparison. |
| pic_ascii.f90 | This file contains the module that handles all ASCII related business |
| pic_cli.f90 | Command line parsing: declare the interface, then read it. |
| pic_clock.f90 | Monotonic elapsed time and wall-clock date and time. |
| pic_command_line.f90 | The pic_command_line.f90 file will contain all routines that will interact with the command line |
| pic_constants.f90 | all things constants, physical, chemical, etc |
| pic_csr.f90 | Compressed sparse row (CSR) matrix storage and the core CSR kernels. |
| pic_error.F90 | Error handling module for pic Provides a unified error type to replace stat/errmsg pairs Enhanced with stack trace support for better debugging |
| pic_fixed_array.f90 | Bounded, fixed-capacity arrays with no heap allocation in the hot path.
The Fortran analogue of C++’s |
| pic_flop_rate.f90 | flop rate handler modules |
| pic_flop_recorder.f90 | flop recorder |
| pic_format.f90 | Deterministic number-to-string formatting. |
| pic_global_definitions.f90 | this is an experimental file that contains definitions that will be uses across the program, for example input/output units that PIC will use across things. |
| pic_graph.f90 | Graph traversal and shortest-path algorithms over CSR adjacency. |
| pic_hash_32bit.f90 | Contains the 32 bit hashing routines |
| pic_hash_32bit_fnv.f90 |
|
| pic_hash_map.f90 | Insertion-ordered hash map with character keys and 64-bit integer values. |
| pic_heap.f90 | Binary heap / priority queue with stable (FIFO) tie-breaking. |
| pic_helpers.f90 | General helpers |
| pic_io.f90 | this file contains “helper” routines, for example printing a set amount of x characters to creates tables, etc. |
| pic_knowledge.f90 | the gathered knowledge of the species |
| pic_logger.f90 | the pic_logger.f90 is the base file that defines the logger function this is heavily inspired by the logger from the standard library but with some key changes for my purposes. The logger will be the way in which the code interacts with the output to console and files |
| pic_math.f90 | Scalar numeric utility functions: range clamping, range checking, and approximate floating-point equality. |
| pic_optional.f90 | Optional value handling module |
| pic_profiler.F90 | Portable profiler with NVTX range support |
| pic_pure_logger.f90 | pic_pure_logger.f90 provides a pure-compatible logger for use inside pure functions and subroutines. Since I/O is forbidden in pure contexts, messages are cached into a log_buffer_type that must be flushed by the caller once execution returns to an impure context. |
| pic_random_dist.f90 | Integer-valued random distributions, reproducible across compilers. |
| pic_random_dist_real.f90 | Real-valued random distributions, for tooling and statistics. |
| pic_rng.f90 | Reproducible pseudo-random number generation with explicit state. |
| pic_serialize.f90 | Binary serialization helpers built on a small, self-describing envelope. |
| pic_soa.f90 | Runtime substrate for struct-of-arrays (SoA) containers. |
| pic_soa_particle.f90 | Struct-of-arrays container for particle data. |
| pic_sorting.f90 | This file is subject both to the Fortran Standard Library license, and to additional licensing requirements as it contains translations of other software. |
| pic_sorting_ord_sort.f90 | This file is subjec† both to the Fortran Standard Library license, and to additional licensing requirements as it contains translations of other software. |
| pic_sorting_radix_sort.f90 | |
| pic_sorting_run_type.f90 | Shared |
| pic_sorting_sort.f90 | This file is subject both to the Fortran Standard Library license, and to additional licensing requirements as it contains translations of other software. |
| pic_sorting_sort_index.F90 | This file is subjec† both to the Fortran Standard Library license, and to additional licensing requirements as it contains translations of other software. |
| pic_statistics.f90 | Basic descriptive statistics for 1-D arrays: mean, variance, standard deviation and combined min/max. |
| pic_string_type.F90 | String derived type container |
| pic_string_type_constructor.f90 | contains the definitions for building strings from different data types |
| pic_strings.f90 | string manipulation module and subroutines |
| pic_strings_to_strings.F90 | Contains the submodule that defines the to_string functions used to handle and manipulate strings |
| pic_timer.F90 | timing routines in general |
| pic_tokenizer.f90 | String splitting and checked numeric parsing. |
| pic_types.F90 | pic_types.F90 controls the standarized sizes for the datatypes across pic, this is key for interfacing with other codes specially those that use default sizes |
| pic_uint64.f90 | Arithmetic modulo 2**64 on |
| pic_vector.f90 | Growable, heap-backed arrays with bounds-checked access. |