Modules

ModuleSource FileDescription
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.

Read more…
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.

Read more…
pic_ascii pic_ascii.f90

The stdlib_ascii module provides procedures for handling and manipulating intrinsic character variables and constants.

pic_cli pic_cli.f90

A declarative command line parser.

Read more…
pic_clock pic_clock.f90

Two unrelated notions of time, kept apart on purpose.

Read more…
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_graph builds its shortest-path algorithms directly on this type.

Read more…
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.

Read more…
pic_fixed_array pic_fixed_array.f90

Fixed-capacity (“in place”) array containers.

Read more…
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.

Read more…
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 csr_t from pic_csr.

Read more…
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 character(len=*) keys to integer(int64) values whose iteration order is a documented, reproducible guarantee rather than an implementation accident.

Read more…
pic_heap pic_heap.f90

A concrete binary heap keyed by integer(int64) and carrying an integer(int32) payload. This is the data structure behind Dijkstra, A*, k-nearest searches and discrete-event simulation loops.

Read more…
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: clamp, is_in_range and is_close. All procedures are elemental, so they apply equally to scalars and to arrays of any rank/shape.

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.

Read more…
pic_random_dist_real pic_random_dist_real.f90

Distributions that return real(dp).

Read more…
pic_rng pic_rng.f90

Portable, reproducible pseudo-random number generators.

Read more…
pic_serialize pic_serialize.f90

Self-describing binary serialization for PIC.

Read more…
pic_soa pic_soa.f90

Growth, resize, serialization and state-hash primitives shared by every struct-of-arrays container.

Read more…
pic_soa_particle pic_soa_particle.f90

A struct-of-arrays container holding 6 parallel field arrays.

Read more…
pic_sorting pic_sorting.f90

This module implements overloaded sorting subroutines named ORD_SORT, SORT_INDEX, and SORT, that each can be used to sort two kinds of INTEGER arrays, two kinds of REAL arrays, character(len=*) arrays

Read more…
   pic_sorting_ord_sort pic_sorting_ord_sort.f90

The generic subroutine implementing the ORD_SORT algorithm to return an input array with its elements sorted in order of (non-)decreasing value. Its use has the syntax:

Read more…
   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:

Read more…
   pic_sorting_sort pic_sorting_sort.f90

This submodule implements the overloaded sorting subroutine SORT that can be used to sort four kinds of INTEGER arrays and three kinds of REAL arrays. Sorting is in order of increasing value, with the worst case run time performance of O(N Ln(N)).

Read more…
   pic_sorting_sort_index pic_sorting_sort_index.F90

The generic subroutine implementing the SORT_INDEX algorithm to return an index array whose elements would sort the input array in the desired direction. It is primarily intended to be used to sort a derived type array based on the values of a component of the array. Its use has the syntax:

Read more…
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, mean, variance and std_dev always accumulate in and return real(dp), regardless of the input type. min_max preserves the input type and returns the two extremes in a length-2 array.

pic_string_type pic_string_type.F90

Implementation of a string type to hold an arbitrary sequence of characters.

Read more…
   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 error_t.

Read more…
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.

Read more…
pic_vector pic_vector.f90

Growable vectors: push_back, pop_back, at, and amortised O(1) growth over heap storage.

Read more…
module~~graph~~ModuleGraph module~pic pic module~pic_ansi pic_ansi module~pic_string_type pic_string_type module~pic_ansi->module~pic_string_type module~pic_strings pic_strings module~pic_ansi->module~pic_strings module~pic_types pic_types module~pic_ansi->module~pic_types module~pic_array pic_array module~pic_error pic_error module~pic_array->module~pic_error module~pic_io pic_io module~pic_array->module~pic_io module~pic_optional_value pic_optional_value module~pic_array->module~pic_optional_value module~pic_array->module~pic_types module~pic_array_hash pic_array_hash module~pic_array_hash->module~pic_types module~pic_uint64 pic_uint64 module~pic_array_hash->module~pic_uint64 module~pic_ascii pic_ascii module~pic_ascii->module~pic_types module~pic_cli pic_cli module~pic_cli->module~pic_error module~pic_cli->module~pic_string_type module~pic_tokenizer pic_tokenizer module~pic_cli->module~pic_tokenizer module~pic_cli->module~pic_types module~pic_clock pic_clock module~pic_clock->module~pic_error module~pic_clock->module~pic_strings module~pic_clock->module~pic_types module~pic_command_line pic_command_line module~pic_command_line->module~pic_error module~pic_command_line->module~pic_types module~pic_constants pic_constants module~pic_constants->module~pic_types module~pic_csr pic_csr module~pic_csr->module~pic_error module~pic_csr->module~pic_types module~pic_global_definitions pic_global_definitions module~pic_error->module~pic_global_definitions module~pic_error->module~pic_types module~pic_fixed_array pic_fixed_array module~pic_fixed_array->module~pic_error module~pic_fixed_array->module~pic_types module~pic_flop_rate pic_flop_rate module~pic_flop_recorder pic_flop_recorder module~pic_flop_rate->module~pic_flop_recorder module~pic_flop_rate->module~pic_io module~pic_timer pic_timer module~pic_flop_rate->module~pic_timer module~pic_flop_rate->module~pic_types module~pic_flop_recorder->module~pic_types module~pic_format pic_format module~pic_format->module~pic_strings module~pic_format->module~pic_types module~pic_global_definitions->module~pic_types module~pic_graph pic_graph module~pic_graph->module~pic_csr module~pic_graph->module~pic_error module~pic_heap pic_heap module~pic_graph->module~pic_heap module~pic_graph->module~pic_types module~pic_hash_32bit pic_hash_32bit module~pic_hash_32bit_fnv pic_hash_32bit_fnv module~pic_hash_32bit->module~pic_hash_32bit_fnv module~pic_hash_32bit->module~pic_types module~pic_hash_32bit_fnv->module~pic_types iso_fortran_env iso_fortran_env module~pic_hash_32bit_fnv->iso_fortran_env module~pic_hash_map pic_hash_map module~pic_hash_map->module~pic_error module~pic_hash_map->module~pic_hash_32bit_fnv module~pic_hash_map->module~pic_types module~pic_heap->module~pic_error module~pic_heap->module~pic_types module~pic_io->module~pic_ascii module~pic_io->module~pic_types module~pic_knowledge pic_knowledge module~pic_logger pic_logger module~pic_knowledge->module~pic_logger module~pic_knowledge->module~pic_string_type module~pic_knowledge->module~pic_types module~pic_logger->module~pic_global_definitions module~pic_logger->module~pic_types module~pic_math pic_math module~pic_math->module~pic_types module~pic_optional_value->module~pic_types module~pic_profiler pic_profiler module~pic_profiler->module~pic_logger module~pic_sorting pic_sorting module~pic_profiler->module~pic_sorting module~pic_profiler->module~pic_timer module~pic_profiler->module~pic_types module~pic_pure_logger pic_pure_logger module~pic_pure_logger->module~pic_logger module~pic_pure_logger->module~pic_types module~pic_random_dist pic_random_dist module~pic_random_dist->module~pic_error module~pic_rng pic_rng module~pic_random_dist->module~pic_rng module~pic_random_dist->module~pic_types module~pic_random_dist->module~pic_uint64 module~pic_random_dist_real pic_random_dist_real module~pic_random_dist_real->module~pic_rng module~pic_random_dist_real->module~pic_types module~pic_rng->module~pic_error module~pic_rng->module~pic_types module~pic_rng->module~pic_uint64 module~pic_serialize pic_serialize module~pic_serialize->module~pic_error module~pic_serialize->module~pic_io module~pic_serialize->module~pic_types module~pic_soa pic_soa module~pic_soa->module~pic_array_hash module~pic_soa->module~pic_error module~pic_soa->module~pic_io module~pic_soa->module~pic_serialize module~pic_soa->module~pic_types module~pic_soa_particle pic_soa_particle module~pic_soa_particle->module~pic_array_hash module~pic_soa_particle->module~pic_error module~pic_soa_particle->module~pic_soa module~pic_soa_particle->module~pic_types module~pic_sorting->module~pic_error module~pic_sorting->module~pic_optional_value module~pic_sorting->module~pic_types module~pic_sorting_ord_sort pic_sorting_ord_sort module~pic_sorting_ord_sort->module~pic_error module~pic_sorting_ord_sort->module~pic_sorting module~pic_sorting_run_type pic_sorting_run_type module~pic_sorting_ord_sort->module~pic_sorting_run_type module~pic_sorting_radix_sort pic_sorting_radix_sort module~pic_sorting_radix_sort->module~pic_error module~pic_sorting_radix_sort->module~pic_sorting module~pic_sorting_run_type->module~pic_types module~pic_sorting_sort pic_sorting_sort module~pic_sorting_sort->module~pic_sorting module~pic_sorting_sort_index pic_sorting_sort_index module~pic_sorting_sort_index->module~pic_error module~pic_sorting_sort_index->module~pic_sorting module~pic_sorting_sort_index->module~pic_sorting_run_type module~pic_statistics pic_statistics module~pic_statistics->module~pic_types module~pic_string_type->module~pic_ascii module~pic_string_type->module~pic_optional_value module~pic_string_type->module~pic_types module~pic_string_type_constructor pic_string_type_constructor module~pic_string_type_constructor->module~pic_string_type module~pic_string_type_constructor->module~pic_strings module~pic_strings->module~pic_ascii module~pic_strings->module~pic_optional_value module~pic_strings->module~pic_string_type module~pic_strings->module~pic_types iso_c_binding iso_c_binding module~pic_strings->iso_c_binding module~pic_strings_to_string pic_strings_to_string module~pic_strings_to_string->module~pic_string_type module~pic_strings_to_string->module~pic_strings module~pic_test_helpers pic_test_helpers module~pic_test_helpers->module~pic_global_definitions module~pic_test_helpers->module~pic_types module~pic_timer->module~pic_io module~pic_timer->module~pic_types module~pic_tokenizer->module~pic_ascii module~pic_tokenizer->module~pic_error module~pic_tokenizer->module~pic_string_type module~pic_tokenizer->module~pic_strings module~pic_tokenizer->module~pic_types module~pic_types->iso_c_binding module~pic_types->iso_fortran_env module~pic_uint64->module~pic_types module~pic_vector pic_vector module~pic_vector->module~pic_error module~pic_vector->module~pic_string_type module~pic_vector->module~pic_types proc~chomp_set_string_char chomp_set_string_char proc~chomp_set_string_char->module~pic_string_type proc~chomp_string chomp_string proc~chomp_string->module~pic_string_type proc~chomp_substring_string_char chomp_substring_string_char proc~chomp_substring_string_char->module~pic_string_type proc~chomp_substring_string_string chomp_substring_string_string proc~chomp_substring_string_string->module~pic_string_type proc~dp_radix_sort dp_radix_sort proc~dp_radix_sort->iso_c_binding proc~sp_radix_sort sp_radix_sort proc~sp_radix_sort->iso_c_binding proc~strip_string strip_string proc~strip_string->module~pic_string_type
Help