Modules

ModuleSource FileDescription
dArgDynamicArray_ClassdArgDynamicArray_Class.f90

Class that act as stacks, queues, and priority queues like dDynamicArray_Class but with an added integer index so that 'lists' of both a key and value can be maintained. These classes use dynamically allocated contiguous blocks of memory to store a list of numbers. The queues can be sorted to become priority queues and use binary searches to quickly insert new numbers. If the allocated memory is filled, the available space is doubled. Memory is only reallocated to a smaller size, if the utilization is a quarter of that allocated. The array can be specified as fixed, so that no reallocation occurs. This is useful for heaps of given like k nearest neighbours, or k smallest.

dDynamicArray_ClassdDynamicArray_Class.f90

Class that act as stacks, queues, and priority queues. These classes use dynamically allocated contiguous blocks of memory to store a list of numbers. The queues can be sorted to become priority queues and use binary searches to quickly insert new numbers. If the allocated memory is filled, the available space is doubled. Memory is only reallocated to a smaller size, if the utilization is a quarter of that allocated. The array can be specified as fixed, so that no reallocation occurs. This is useful for heaps of given like k nearest neighbours, or k smallest.

formattingm_format.f90

Contains routines that handle string formatting

iArgDynamicArray_ClassiArgDynamicArray_Class.f90

Class that act as stacks, queues, and priority queues like iDynamicArray_Class but with an added integer index so that 'lists' of both a key and value can be maintained. These classes use dynamically allocated contiguous blocks of memory to store a list of numbers. The queues can be sorted to become priority queues and use binary searches to quickly insert new numbers. If the allocated memory is filled, the available space is doubled. Memory is only reallocated to a smaller size, if the utilization is a quarter of that allocated. The array can be specified as fixed, so that no reallocation occurs. This is useful for heaps of given like k nearest neighbours, or k smallest.

idArgDynamicArray_ClassidArgDynamicArray_Class.f90

Class that act as stacks, queues, and priority queues like idDynamicArray_Class but with an added integer index so that 'lists' of both a key and value can be maintained. These classes use dynamically allocated contiguous blocks of memory to store a list of numbers. The queues can be sorted to become priority queues and use binary searches to quickly insert new numbers. If the allocated memory is filled, the available space is doubled. Memory is only reallocated to a smaller size, if the utilization is a quarter of that allocated. The array can be specified as fixed, so that no reallocation occurs. This is useful for heaps of given like k nearest neighbours, or k smallest.

idDynamicArray_ClassidDynamicArray_Class.f90

Class that act as stacks, queues, and priority queues. These classes use dynamically allocated contiguous blocks of memory to store a list of numbers. The queues can be sorted to become priority queues and use binary searches to quickly insert new numbers. If the allocated memory is filled, the available space is doubled. Memory is only reallocated to a smaller size, if the utilization is a quarter of that allocated.

iDynamicArray_ClassiDynamicArray_Class.f90

Class that act as stacks, queues, and priority queues. These classes use dynamically allocated contiguous blocks of memory to store a list of numbers. The queues can be sorted to become priority queues and use binary searches to quickly insert new numbers. If the allocated memory is filled, the available space is doubled. Memory is only reallocated to a smaller size, if the utilization is a quarter of that allocated.

m_allocatem_allocate.f90

Contains fundamental interface to allocate allocatable arrays of different types and shapes

m_array1Dm_array1D.f90

1D array routines

m_comparem_compare.f90
m_copym_copy.f90

Contains fundamental routines to copy arrays to new memory locations while maintaining both copies

m_deallocatem_deallocate.f90

Contains fundamental interface to deallocate allocatable arrays of different types and shapes.

m_debuggingm_debugging.f90

Contains routines for debugging

m_errorsm_errors.f90

Module contains error handling procedures

m_fileIOm_fileIO.f90

Contains functions and subroutines that inquire and operate on files including reading and writing multiple entries to a file

m_indexingm_indexing.f90

Contains routines to obtain packed and unpacked indices into arrays

m_KdTreem_KdTree.f90

Build and search k-dimensional trees in 2, 3, and K dimensions. This KdTree is balanced, in that splits are made along the dimension with the largest variance. A quickselect is used to quickly find the median in each splitting dimension as the splitting value. The ends of each branch contain multiple leaves to prevent tail recursion. An in-depth example is given below on how to use all the aspects of the KdTree and KdTreeSearch classes.

m_mathsm_maths.f90

Math routines

m_medianOf3m_medianOf3.f90

Given three numbers, find their median and sort at the same time

m_parametersm_parameters.f90

Module contains user defined parameters for consistent use

m_partitionm_partition.f90

Contains Hoare's style partitioning algorithm used for quicksorting and quickselect routines.

m_partition3waym_partition3way.f90

Contains Hoare's style partitioning algorithms used for quicksorting routines n=(right+left)/2 call swap(idx(left),idx(n))

m_randomm_random.f90

This module has been comprised using different sources. The first was a public domain pseudo-random number generator using the xorshift1024* and xorshift128+ methods. See Prng_Class for more details on those methods.

m_readlinem_read.f90

Contains core routines to read different combinations of scalars and 1D arrays from a file

m_reallocatem_reallocate.f90

Contains routines to re-allocate allocatable arrays

m_searchingm_searching.f90

Contains routines to perform a simple binary search on a vector

m_selectm_select.f90

Perform a quickselect on an array. Quick select finds the kth smallest number in an array. It also puts values lower than the kth on the left, and those higher on the right This makes it perfect for finding the median.

m_sortm_sort.f90

Module containing in-place and indirect routines to sort an array of numbers.

m_stringsm_strings.f90

Module provides string handling capabilities Replace a substring with another in a string

m_swapm_swap.f90

Handles a simple swapping of two elements

m_testsm_tests.f90
m_timem_time.f90

Contains functions that handle time

m_unitTesterm_unitTester.f90
m_writelinem_write.f90

Contains core routines to write different combinations of scalars and 1D arrays to a file

Prng_ClassPrng_Class.f90

Class providing a pseudo-random number generator with an xorshift128+ or xorshift1024* generator that are both suitable for parallel applications. This is class is thread safe, and can be used in parallel without Prngs on different threads affecting each other.

ProgressBar_ClassProgressBar_Class.f90

An inline and updateable command prompt progress bar

rArgDynamicArray_ClassrArgDynamicArray_Class.f90

Class that act as stacks, queues, and priority queues like rDynamicArray_Class but with an added integer index so that 'lists' of both a key and value can be maintained. These classes use dynamically allocated contiguous blocks of memory to store a list of numbers. The queues can be sorted to become priority queues and use binary searches to quickly insert new numbers. If the allocated memory is filled, the available space is doubled. Memory is only reallocated to a smaller size, if the utilization is a quarter of that allocated. The array can be specified as fixed, so that no reallocation occurs. This is useful for heaps of given like k nearest neighbours, or k smallest.

rDynamicArray_ClassrDynamicArray_Class.f90

Class that act as stacks, queues, and priority queues. These classes use dynamically allocated contiguous blocks of memory to store a list of numbers. The queues can be sorted to become priority queues and use binary searches to quickly insert new numbers. If the allocated memory is filled, the available space is doubled. Memory is only reallocated to a smaller size, if the utilization is a quarter of that allocated.

Stopwatch_ClassStopwatch_Class.f90

Contains code timing capabilities

variableKindm_variableKind.f90

Defines variable kinds

module~~graph~~ModuleGraph module~idargdynamicarray_class idArgDynamicArray_Class module~m_tests m_tests module~idargdynamicarray_class->module~m_tests module~rdynamicarray_class rDynamicArray_Class module~rargdynamicarray_class rArgDynamicArray_Class module~rdynamicarray_class->module~rargdynamicarray_class module~rdynamicarray_class->module~m_tests module~m_partition3way m_partition3way module~m_partition m_partition module~m_kdtree m_KdTree module~m_kdtree->module~m_tests program~scaletest_coretran scaleTest_coretran module~m_kdtree->program~scaletest_coretran module~formatting formatting module~dargdynamicarray_class dArgDynamicArray_Class module~dargdynamicarray_class->module~m_kdtree module~dargdynamicarray_class->module~m_tests module~m_reallocate m_reallocate module~m_reallocate->module~rdynamicarray_class module~idynamicarray_class iDynamicArray_Class module~m_reallocate->module~idynamicarray_class module~m_reallocate->module~m_tests module~iddynamicarray_class idDynamicArray_Class module~m_reallocate->module~iddynamicarray_class module~ddynamicarray_class dDynamicArray_Class module~m_reallocate->module~ddynamicarray_class module~m_reallocate->program~scaletest_coretran module~progressbar_class ProgressBar_Class module~progressbar_class->module~m_tests module~progressbar_class->program~scaletest_coretran module~m_indexing m_indexing module~prng_class Prng_Class module~m_indexing->module~prng_class module~m_indexing->module~m_tests module~m_indexing->program~scaletest_coretran module~m_copy m_copy module~m_copy->module~m_tests module~m_copy->program~scaletest_coretran module~variablekind variableKind module~variablekind->module~idargdynamicarray_class module~variablekind->module~rdynamicarray_class module~variablekind->module~m_partition3way module~variablekind->module~m_partition module~variablekind->module~m_kdtree module~variablekind->module~formatting module~variablekind->module~dargdynamicarray_class module~variablekind->module~m_reallocate module~variablekind->module~progressbar_class module~variablekind->module~m_indexing module~variablekind->module~m_copy module~variablekind->module~idynamicarray_class module~m_fileio m_fileIO module~variablekind->module~m_fileio module~variablekind->module~prng_class module~m_unittester m_unitTester module~variablekind->module~m_unittester module~m_deallocate m_deallocate module~variablekind->module~m_deallocate module~m_allocate m_allocate module~variablekind->module~m_allocate module~iargdynamicarray_class iArgDynamicArray_Class module~variablekind->module~iargdynamicarray_class module~variablekind->module~rargdynamicarray_class module~m_searching m_searching module~variablekind->module~m_searching module~variablekind->module~m_tests module~m_readline m_readline module~variablekind->module~m_readline module~m_parameters m_parameters module~variablekind->module~m_parameters module~variablekind->module~iddynamicarray_class module~m_writeline m_writeline module~variablekind->module~m_writeline module~m_time m_time module~variablekind->module~m_time module~stopwatch_class Stopwatch_Class module~variablekind->module~stopwatch_class module~m_array1d m_array1D module~variablekind->module~m_array1d module~m_medianof3 m_medianOf3 module~variablekind->module~m_medianof3 module~m_select m_select module~variablekind->module~m_select module~m_swap m_swap module~variablekind->module~m_swap module~m_debugging m_debugging module~variablekind->module~m_debugging module~m_compare m_compare module~variablekind->module~m_compare module~m_sort m_sort module~variablekind->module~m_sort module~variablekind->module~ddynamicarray_class module~m_errors m_errors module~variablekind->module~m_errors module~m_random m_random module~variablekind->module~m_random module~m_strings m_strings module~variablekind->module~m_strings module~m_maths m_maths module~variablekind->module~m_maths program~test_coretran test_coretran module~variablekind->program~test_coretran module~variablekind->program~scaletest_coretran module~idynamicarray_class->module~idargdynamicarray_class module~idynamicarray_class->module~m_kdtree module~idynamicarray_class->module~dargdynamicarray_class module~idynamicarray_class->module~iargdynamicarray_class module~idynamicarray_class->module~rargdynamicarray_class module~idynamicarray_class->module~m_tests module~m_fileio->module~m_tests module~m_fileio->program~scaletest_coretran module~prng_class->module~m_tests module~prng_class->module~m_random module~m_unittester->module~m_fileio module~m_unittester->module~m_allocate module~m_unittester->module~m_tests module~m_unittester->module~m_random module~m_unittester->module~m_maths module~m_unittester->program~test_coretran module~m_deallocate->module~rdynamicarray_class module~m_deallocate->module~m_kdtree module~m_deallocate->module~idynamicarray_class module~m_deallocate->module~m_tests module~m_deallocate->module~iddynamicarray_class module~m_deallocate->module~ddynamicarray_class module~m_deallocate->module~m_random module~m_deallocate->module~m_maths module~m_allocate->module~rdynamicarray_class module~m_allocate->module~m_kdtree module~m_allocate->module~m_reallocate module~m_allocate->module~m_copy module~m_allocate->module~idynamicarray_class module~m_allocate->module~prng_class module~m_allocate->module~m_tests module~m_allocate->module~iddynamicarray_class module~m_allocate->module~m_array1d module~m_allocate->module~ddynamicarray_class module~m_allocate->module~m_random module~m_allocate->module~m_maths module~m_allocate->program~scaletest_coretran module~iargdynamicarray_class->module~m_tests module~rargdynamicarray_class->module~m_tests module~m_searching->module~idargdynamicarray_class module~m_searching->module~rdynamicarray_class module~m_searching->module~dargdynamicarray_class module~m_searching->module~idynamicarray_class module~m_searching->module~iargdynamicarray_class module~m_searching->module~rargdynamicarray_class module~m_searching->module~iddynamicarray_class module~m_searching->module~ddynamicarray_class module~m_searching->program~scaletest_coretran module~m_tests->program~test_coretran module~m_readline->module~m_fileio module~m_readline->program~scaletest_coretran module~m_parameters->module~m_strings module~iddynamicarray_class->module~idargdynamicarray_class module~iddynamicarray_class->module~m_tests module~m_writeline->module~m_fileio module~m_writeline->module~m_tests module~m_writeline->program~scaletest_coretran module~m_time->module~progressbar_class module~m_time->module~prng_class module~m_time->module~m_tests module~m_time->module~stopwatch_class module~m_time->program~scaletest_coretran module~stopwatch_class->module~progressbar_class module~stopwatch_class->module~m_tests module~stopwatch_class->program~scaletest_coretran module~m_array1d->module~m_kdtree module~m_array1d->module~m_tests module~m_array1d->module~m_maths module~m_array1d->program~scaletest_coretran module~m_select->module~m_kdtree module~m_select->module~m_tests module~m_select->module~m_maths module~m_select->program~scaletest_coretran module~m_swap->module~m_partition3way module~m_swap->module~m_array1d module~m_swap->module~m_medianof3 module~m_compare->module~m_partition3way module~m_sort->module~rdynamicarray_class module~m_sort->module~idynamicarray_class module~m_sort->module~m_tests module~m_sort->module~iddynamicarray_class module~m_sort->module~ddynamicarray_class module~m_sort->module~m_maths module~m_sort->program~scaletest_coretran module~ddynamicarray_class->module~dargdynamicarray_class module~ddynamicarray_class->module~m_tests module~m_errors->module~idargdynamicarray_class module~m_errors->module~rdynamicarray_class module~m_errors->module~m_kdtree module~m_errors->module~dargdynamicarray_class module~m_errors->module~m_reallocate module~m_errors->module~m_copy module~m_errors->module~idynamicarray_class module~m_errors->module~m_fileio module~m_errors->module~prng_class module~m_errors->module~m_unittester module~m_errors->module~m_deallocate module~m_errors->module~m_allocate module~m_errors->module~iargdynamicarray_class module~m_errors->module~rargdynamicarray_class module~m_errors->module~m_tests module~m_errors->module~m_readline module~m_errors->module~iddynamicarray_class module~m_errors->module~m_writeline module~m_errors->module~m_array1d module~m_errors->module~ddynamicarray_class module~m_errors->module~m_random module~m_errors->module~m_strings module~m_errors->module~m_maths module~m_errors->program~scaletest_coretran module~m_random->module~m_tests module~m_random->module~m_array1d module~m_random->program~test_coretran module~m_random->program~scaletest_coretran module~m_strings->module~idargdynamicarray_class module~m_strings->module~rdynamicarray_class module~m_strings->module~m_kdtree module~m_strings->module~dargdynamicarray_class module~m_strings->module~idynamicarray_class module~m_strings->module~m_fileio module~m_strings->module~prng_class module~m_strings->module~iargdynamicarray_class module~m_strings->module~rargdynamicarray_class module~m_strings->module~m_tests module~m_strings->module~m_readline module~m_strings->module~iddynamicarray_class module~m_strings->module~m_writeline module~m_strings->module~stopwatch_class module~m_strings->module~m_array1d module~m_strings->module~m_debugging module~m_strings->module~ddynamicarray_class module~m_strings->module~m_random module~m_strings->program~scaletest_coretran module~m_maths->module~m_kdtree module~m_maths->module~m_tests module~m_maths->program~scaletest_coretran iso_fortran_env iso_fortran_env iso_fortran_env->module~dargdynamicarray_class iso_fortran_env->module~progressbar_class iso_fortran_env->module~variablekind iso_fortran_env->module~prng_class iso_fortran_env->module~m_unittester iso_fortran_env->module~m_writeline iso_fortran_env->module~stopwatch_class iso_fortran_env->module~m_errors iso_fortran_env->module~m_random iso_fortran_env->module~m_strings iso_fortran_env->program~test_coretran iso_fortran_env->program~scaletest_coretran omp_lib omp_lib omp_lib->module~m_tests
Help