| Module | Source File | Description |
|---|---|---|
| pic | pic.f90 | simple interface module that prints banner and other information about the library mostly here to verify installs, etc. |
| pic_ansi | pic_ansi.f90 | The half of a terminal interface that is pure string processing. |
| pic_array | pic_array.f90 | Please do not modify this file to implement new methods, please go look at tools/autogen/pic_array_cpu.fypp and edit the generator. |
| pic_array_hash | pic_array_hash.f90 | A 32- and 64-bit FNV-1a state hash over arrays of intrinsic type. |
| pic_ascii | pic_ascii.f90 | The |
| pic_cli | pic_cli.f90 | A declarative command line parser. |
| pic_clock | pic_clock.f90 | Two unrelated notions of time, kept apart on purpose. |
| pic_command_line | pic_command_line.f90 | command line interaction module |
| pic_constants | pic_constants.f90 | this will be the physical constants module |
| pic_csr | pic_csr.f90 | A compressed sparse row matrix: the standard layout for sparse linear
algebra and, identically, for adjacency lists of weighted graphs.
|
| pic_error | pic_error.F90 | Unified error handling with stack traces for PIC. Use error_t as an intent(out) or intent(inout) argument to propagate errors with context through call chains. |
| pic_fixed_array | pic_fixed_array.f90 | Fixed-capacity (“in place”) array containers. |
| pic_flop_rate | pic_flop_rate.f90 | pic_flop_rate is a convenient encapsulation of the flop_recorder and pic_timer it is used to measure the flop rate of a given operation, and report it |
| pic_flop_recorder | pic_flop_recorder.f90 | general flop recorder module |
| pic_format | pic_format.f90 | Deterministic, compiler independent formatting of reals and integers. |
| pic_global_definitions | pic_global_definitions.f90 | Global definitions for input output |
| pic_graph | pic_graph.f90 | Shortest-path and traversal algorithms on a weighted directed graph
stored as a |
| pic_hash_32bit | pic_hash_32bit.f90 | module for pic’s 32 bit hashing algorithms |
| pic_hash_32bit_fnv | pic_hash_32bit_fnv.f90 | An implementation of the FNV hashes 1 and 1a of Glenn Fowler, Landon Curt Noll, and Kiem-Phong-Vo, https://en.wikipedia.org/wiki/Fowler–Noll–Vo_hash_function |
| pic_hash_map | pic_hash_map.f90 | A hash map from |
| pic_heap | pic_heap.f90 | A concrete binary heap keyed by |
| pic_io | pic_io.f90 | Assorted output helper routines |
| pic_knowledge | pic_knowledge.f90 | a simple module that collects phrases and prints them out randomly, like fortune |
| pic_logger | pic_logger.f90 | this is the logger module |
| pic_math | pic_math.f90 | This module provides small, elemental numeric helpers that are commonly
needed but missing from the Fortran intrinsics: |
| pic_optional_value | pic_optional.f90 | This module provides functions to handle optional arguments |
| pic_profiler | pic_profiler.F90 | Lightweight profiler for named code regions with optional NVTX support |
| pic_pure_logger | pic_pure_logger.f90 | Pure-compatible deferred logger for PIC. Messages are buffered and flushed after the pure call chain returns. |
| pic_random_dist | pic_random_dist.f90 | Distributions whose output is an integer or a logical, and which are therefore bit-identical on every supported compiler. |
| pic_random_dist_real | pic_random_dist_real.f90 | Distributions that return |
| pic_rng | pic_rng.f90 | Portable, reproducible pseudo-random number generators. |
| pic_serialize | pic_serialize.f90 | Self-describing binary serialization for PIC. |
| pic_soa | pic_soa.f90 | Growth, resize, serialization and state-hash primitives shared by every struct-of-arrays container. |
| pic_soa_particle | pic_soa_particle.f90 | A struct-of-arrays container holding 6 parallel field arrays. |
| pic_sorting | pic_sorting.f90 | This module implements overloaded sorting subroutines named |
| pic_sorting_ord_sort | pic_sorting_ord_sort.f90 | The generic subroutine implementing the |
| pic_sorting_radix_sort | pic_sorting_radix_sort.f90 | The generic subroutine implementing the LSD radix sort algorithm to return an input array with its elements sorted in order of (non-)decreasing value. Its use has the syntax: |
| pic_sorting_sort | pic_sorting_sort.f90 | This submodule implements the overloaded sorting subroutine |
| pic_sorting_sort_index | pic_sorting_sort_index.F90 | The generic subroutine implementing the |
| pic_sorting_run_type | pic_sorting_run_type.f90 | |
| pic_statistics | pic_statistics.f90 | This module provides simple reductions over rank-1 arrays. To avoid
precision loss and integer overflow, |
| pic_string_type | pic_string_type.F90 | Implementation of a string type to hold an arbitrary sequence of characters. |
| pic_string_type_constructor | pic_string_type_constructor.f90 | |
| pic_strings | pic_strings.f90 | This module implements basic string handling routines. |
| pic_strings_to_string | pic_strings_to_strings.F90 | |
| pic_test_helpers | pic_helpers.f90 | simple reusable helpers for random things |
| pic_timer | pic_timer.F90 | contains a simple timer module to measure and record time |
| pic_tokenizer | pic_tokenizer.f90 | Splitting of character data into tokens and parsing of those tokens into
numbers with explicit error reporting through |
| pic_types | pic_types.F90 | main module for defining types for integer and double precision |
| pic_uint64 | pic_uint64.f90 | Unsigned 64-bit arithmetic for algorithms that are specified in terms of wrapping 64-bit words: hashes, counter-based generators, fixed-point tables. |
| pic_vector | pic_vector.f90 | Growable vectors: |