Please do not modify this file to implement new methods, please go look at tools/autogen/pic_array_cpu.fypp and edit the generator.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=default_int), | public, | parameter | :: | ASCENDING | = | 1 | |
| integer(kind=default_int), | public, | parameter | :: | DESCENDING | = | 2 | |
| integer(kind=default_int), | private, | parameter | :: | block_size | = | 32 |
This is the size to block over for matrices for performance purposes |
| character(len=5), | private, | parameter | :: | default_format | = | "NUMPY" |
supported formats: NUMPY, MATHEMATICA, and PLAIN which resembles numpy |
| character(len=*), | private, | parameter | :: | fmt_edge | = | "(A)" | |
| character(len=*), | private, | parameter | :: | fmt_in | = | '(A, ", ")' | |
| logical, | private | :: | use_threaded_default | = | .false. |
get_threading_mode returns the current threading mode for the array routines Usage: mode = get_threading_mode()
get the current threading mode for the array routines Usage: mode = get_threading_mode()
is_sorted provides a simple way to checking if a 1d array is sorted it is implemented for int32, int64, sp, and dp datatypes. The default is to check if an array is sorted in ascending fashion.
Usage: result = is_sorted(array, [optional] ASCENDING/DESCENDING)
check if a 1d array of type int32 is sorted
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | array(:) | |||
| integer(kind=default_int), | intent(in), | optional | :: | order |
check if a 1d array of type int64 is sorted
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | array(:) | |||
| integer(kind=default_int), | intent(in), | optional | :: | order |
check if a 1d array of type sp is sorted
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | array(:) | |||
| integer(kind=default_int), | intent(in), | optional | :: | order |
check if a 1d array of type dp is sorted
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | array(:) | |||
| integer(kind=default_int), | intent(in), | optional | :: | order |
check if a 1d array of type char is sorted
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | array(:) | |||
| integer(kind=default_int), | intent(in), | optional | :: | order |
copy provides a blas-less implementation of xcopy where x is (i,s,d) icopy, scopy, dcopy if you built pic with BLAS use the copy interface provided there, I will not beat BLAS copy is implemented for (int32, int64, sp, dp) for 1 and 2d arrays of the same types
Usage: call pic_copy(destination, source, [optional] threaded)
This subroutine is threaded for performance purposes if threaded is set to .true.
copy a vector of datatype int32
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(inout) | :: | dest(:) | |||
| integer(kind=int32), | intent(in) | :: | source(:) | |||
| logical, | intent(in), | optional | :: | threaded |
copy a vector of datatype int64
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(inout) | :: | dest(:) | |||
| integer(kind=int64), | intent(in) | :: | source(:) | |||
| logical, | intent(in), | optional | :: | threaded |
copy a vector of datatype sp
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(inout) | :: | dest(:) | |||
| real(kind=sp), | intent(in) | :: | source(:) | |||
| logical, | intent(in), | optional | :: | threaded |
copy a vector of datatype dp
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | dest(:) | |||
| real(kind=dp), | intent(in) | :: | source(:) | |||
| logical, | intent(in), | optional | :: | threaded |
copy a matrix of datatype int32
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(inout) | :: | dest(:,:) | |||
| integer(kind=int32), | intent(in) | :: | source(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
copy a matrix of datatype int64
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(inout) | :: | dest(:,:) | |||
| integer(kind=int64), | intent(in) | :: | source(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
copy a matrix of datatype sp
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(inout) | :: | dest(:,:) | |||
| real(kind=sp), | intent(in) | :: | source(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
copy a matrix of datatype dp
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | dest(:,:) | |||
| real(kind=dp), | intent(in) | :: | source(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
copy a tensor of datatype int32
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(inout) | :: | dest(:,:,:) | |||
| integer(kind=int32), | intent(in) | :: | source(:,:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
copy a tensor of datatype int64
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(inout) | :: | dest(:,:,:) | |||
| integer(kind=int64), | intent(in) | :: | source(:,:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
copy a tensor of datatype sp
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(inout) | :: | dest(:,:,:) | |||
| real(kind=sp), | intent(in) | :: | source(:,:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
copy a tensor of datatype dp
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | dest(:,:,:) | |||
| real(kind=dp), | intent(in) | :: | source(:,:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
fill provides a generic interface to assing a value alpha of types (int32, int64, sp, dp) as defined in pic_types.F90 The inteface supports filling 1d and 2d arrays of the specified variables
Usage: call pic_fill(array, value, [optional] threaded)
This subroutine is threaded for performance purposes if threaded is set to .true.
fill a vector of datatype int32 with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(inout) | :: | vector(:) | |||
| integer(kind=int32), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
fill a vector of datatype int64 with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(inout) | :: | vector(:) | |||
| integer(kind=int64), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
fill a vector of datatype sp with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(inout) | :: | vector(:) | |||
| real(kind=sp), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
fill a vector of datatype dp with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | vector(:) | |||
| real(kind=dp), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
fill a matrix of datatype int32 with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(inout) | :: | matrix(:,:) | |||
| integer(kind=int32), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
fill a matrix of datatype int64 with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(inout) | :: | matrix(:,:) | |||
| integer(kind=int64), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
fill a matrix of datatype sp with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(inout) | :: | matrix(:,:) | |||
| real(kind=sp), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
fill a matrix of datatype dp with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | matrix(:,:) | |||
| real(kind=dp), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
fill a tensor of datatype int32 with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(inout) | :: | tensor(:,:,:) | |||
| integer(kind=int32), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
fill a tensor of datatype int64 with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(inout) | :: | tensor(:,:,:) | |||
| integer(kind=int64), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
fill a tensor of datatype sp with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(inout) | :: | tensor(:,:,:) | |||
| real(kind=sp), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
fill a tensor of datatype dp with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | tensor(:,:,:) | |||
| real(kind=dp), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
Generic interface for printing arrays of different types
Usage: call pic_print_array(array, [optional] format) Where format can be: NUMPY, PLAIN, MATHEMATICA (can use lower caps)
Implemented types are:
array(:) -> int32, int64, sp, dp
array(:,:) -> int32, int64, sp, dp
array(:) (packed matrix) -> sp, dp
array(:,:,:) -> sp, dp
print a vector of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | vector(:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
print a vector of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | vector(:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
print a vector of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | vector(:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
print a vector of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | vector(:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
print a matrix of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | matrix(:,:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
print a matrix of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | matrix(:,:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
print a matrix of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | matrix(:,:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
print a matrix of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | matrix(:,:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
Print a packed lower triangular matrix of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | packed(:) | |||
| integer(kind=default_int), | intent(in) | :: | n_elements | |||
| character(len=*), | intent(in), | optional | :: | format_type |
Print a packed lower triangular matrix of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | packed(:) | |||
| integer(kind=default_int), | intent(in) | :: | n_elements | |||
| character(len=*), | intent(in), | optional | :: | format_type |
Print a packed lower triangular matrix of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | packed(:) | |||
| integer(kind=default_int), | intent(in) | :: | n_elements | |||
| character(len=*), | intent(in), | optional | :: | format_type |
Print a packed lower triangular matrix of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | packed(:) | |||
| integer(kind=default_int), | intent(in) | :: | n_elements | |||
| character(len=*), | intent(in), | optional | :: | format_type |
Print a 3D tensor of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | matrix(:,:,:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
Print a 3D tensor of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | matrix(:,:,:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
Print a 3D tensor of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | matrix(:,:,:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
Print a 3D tensor of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | matrix(:,:,:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
should not be used, intended for testing purposes. randomizes an array of type int32
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(inout) | :: | array(:) |
should not be used, intended for testing purposes. randomizes an array of type int64
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(inout) | :: | array(:) |
should not be used, intended for testing purposes. randomizes an array of type sp
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(inout) | :: | array(:) |
should not be used, intended for testing purposes. randomizes an array of type dp
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:) |
should not be used, intended for testing purposes. randomizes an array of type char
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(inout) | :: | array(:) |
pic_sum provides a threaded alternative to the sum(array) Fortran intrinsic which will be too slow for large sizes of vectors and matrices. Note that this provides the total sum. As opposed to the blas alternative XASUM which does the absolute sum
pic_sum is implemented for (int32, int64, sp, dp) 1 and 2d arrays
Usage: result = pic_sum(array, [optional] threaded)
This subroutine is threaded for performance purposes if threaded is set to true
perform the total sum of all components of type int32 in a vector
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | vector(:) | |||
| logical, | intent(in), | optional | :: | threaded |
perform the total sum of all components of type int64 in a vector
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | vector(:) | |||
| logical, | intent(in), | optional | :: | threaded |
perform the total sum of all components of type sp in a vector
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | vector(:) | |||
| logical, | intent(in), | optional | :: | threaded |
perform the total sum of all components of type dp in a vector
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | vector(:) | |||
| logical, | intent(in), | optional | :: | threaded |
perform the total sum of all components of type int32 in a matrix
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | matrix(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
perform the total sum of all components of type int64 in a matrix
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | matrix(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
perform the total sum of all components of type sp in a matrix
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | matrix(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
perform the total sum of all components of type dp in a matrix
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | matrix(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
perform the total sum of all components of type int32 in a 3d tensor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | tensor(:,:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
perform the total sum of all components of type int64 in a 3d tensor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | tensor(:,:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
perform the total sum of all components of type sp in a 3d tensor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | tensor(:,:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
perform the total sum of all components of type dp in a 3d tensor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | tensor(:,:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
pic_transpose provides a blas-less, threaded alternative to the Fortran transpose intrinsic which will be slow for large matrix sizes. pic_transpose does not assume symmetric matrices
pic_transpose is implemented for (int32, int64, sp, dp) 2d arrays
Usage: call pic_transpose(matrix_to_transpose, result, [optional] threaded)
This subroutine is threaded for performance purposes if threaded is set to true
transpose a matrix of datatype int32
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | A(:,:) | |||
| integer(kind=int32), | intent(out) | :: | B(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
transpose a matrix of datatype int64
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | A(:,:) | |||
| integer(kind=int64), | intent(out) | :: | B(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
transpose a matrix of datatype sp
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | A(:,:) | |||
| real(kind=sp), | intent(out) | :: | B(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
transpose a matrix of datatype dp
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | A(:,:) | |||
| real(kind=dp), | intent(out) | :: | B(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
set_threading sets the threading mode for the array routines this will set the use_threaded variable to true or false depending on the input Usage: call set_threading_mode(.true.) or call set_threading_mode(.false.)
set the threading mode for the array routines, this will set the use_threaded variable to true or false depending on the input
Usage: call set_threading(.true.) or call set_threading(.false.)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(in) | :: | threaded |
get the current threading mode for the array routines Usage: mode = get_threading_mode()
check if a 1d array of type char is sorted
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | array(:) | |||
| integer(kind=default_int), | intent(in), | optional | :: | order |
check if a 1d array of type dp is sorted
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | array(:) | |||
| integer(kind=default_int), | intent(in), | optional | :: | order |
check if a 1d array of type int32 is sorted
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | array(:) | |||
| integer(kind=default_int), | intent(in), | optional | :: | order |
check if a 1d array of type int64 is sorted
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | array(:) | |||
| integer(kind=default_int), | intent(in), | optional | :: | order |
check if a 1d array of type sp is sorted
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | array(:) | |||
| integer(kind=default_int), | intent(in), | optional | :: | order |
perform the total sum of all components of type dp in a 3d tensor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | tensor(:,:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
perform the total sum of all components of type int32 in a 3d tensor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | tensor(:,:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
perform the total sum of all components of type int64 in a 3d tensor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | tensor(:,:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
perform the total sum of all components of type sp in a 3d tensor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | tensor(:,:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
perform the total sum of all components of type dp in a matrix
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | matrix(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
perform the total sum of all components of type int32 in a matrix
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | matrix(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
perform the total sum of all components of type int64 in a matrix
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | matrix(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
perform the total sum of all components of type sp in a matrix
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | matrix(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
perform the total sum of all components of type dp in a vector
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | vector(:) | |||
| logical, | intent(in), | optional | :: | threaded |
perform the total sum of all components of type int32 in a vector
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | vector(:) | |||
| logical, | intent(in), | optional | :: | threaded |
perform the total sum of all components of type int64 in a vector
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | vector(:) | |||
| logical, | intent(in), | optional | :: | threaded |
perform the total sum of all components of type sp in a vector
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | vector(:) | |||
| logical, | intent(in), | optional | :: | threaded |
copy a tensor of datatype dp
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | dest(:,:,:) | |||
| real(kind=dp), | intent(in) | :: | source(:,:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
copy a tensor of datatype int32
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(inout) | :: | dest(:,:,:) | |||
| integer(kind=int32), | intent(in) | :: | source(:,:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
copy a tensor of datatype int64
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(inout) | :: | dest(:,:,:) | |||
| integer(kind=int64), | intent(in) | :: | source(:,:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
copy a tensor of datatype sp
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(inout) | :: | dest(:,:,:) | |||
| real(kind=sp), | intent(in) | :: | source(:,:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
copy a matrix of datatype dp
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | dest(:,:) | |||
| real(kind=dp), | intent(in) | :: | source(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
copy a matrix of datatype int32
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(inout) | :: | dest(:,:) | |||
| integer(kind=int32), | intent(in) | :: | source(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
copy a matrix of datatype int64
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(inout) | :: | dest(:,:) | |||
| integer(kind=int64), | intent(in) | :: | source(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
copy a matrix of datatype sp
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(inout) | :: | dest(:,:) | |||
| real(kind=sp), | intent(in) | :: | source(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
copy a vector of datatype dp
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | dest(:) | |||
| real(kind=dp), | intent(in) | :: | source(:) | |||
| logical, | intent(in), | optional | :: | threaded |
copy a vector of datatype int32
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(inout) | :: | dest(:) | |||
| integer(kind=int32), | intent(in) | :: | source(:) | |||
| logical, | intent(in), | optional | :: | threaded |
copy a vector of datatype int64
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(inout) | :: | dest(:) | |||
| integer(kind=int64), | intent(in) | :: | source(:) | |||
| logical, | intent(in), | optional | :: | threaded |
copy a vector of datatype sp
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(inout) | :: | dest(:) | |||
| real(kind=sp), | intent(in) | :: | source(:) | |||
| logical, | intent(in), | optional | :: | threaded |
fill a tensor of datatype dp with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | tensor(:,:,:) | |||
| real(kind=dp), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
fill a tensor of datatype int32 with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(inout) | :: | tensor(:,:,:) | |||
| integer(kind=int32), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
fill a tensor of datatype int64 with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(inout) | :: | tensor(:,:,:) | |||
| integer(kind=int64), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
fill a tensor of datatype sp with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(inout) | :: | tensor(:,:,:) | |||
| real(kind=sp), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
fill a matrix of datatype dp with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | matrix(:,:) | |||
| real(kind=dp), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
fill a matrix of datatype int32 with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(inout) | :: | matrix(:,:) | |||
| integer(kind=int32), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
fill a matrix of datatype int64 with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(inout) | :: | matrix(:,:) | |||
| integer(kind=int64), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
fill a matrix of datatype sp with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(inout) | :: | matrix(:,:) | |||
| real(kind=sp), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
fill a vector of datatype dp with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | vector(:) | |||
| real(kind=dp), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
fill a vector of datatype int32 with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(inout) | :: | vector(:) | |||
| integer(kind=int32), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
fill a vector of datatype int64 with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(inout) | :: | vector(:) | |||
| integer(kind=int64), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
fill a vector of datatype sp with a value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(inout) | :: | vector(:) | |||
| real(kind=sp), | intent(in) | :: | alpha | |||
| logical, | intent(in), | optional | :: | threaded |
Print a 3D tensor of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | matrix(:,:,:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
Print a 3D tensor of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | matrix(:,:,:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
Print a 3D tensor of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | matrix(:,:,:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
Print a 3D tensor of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | matrix(:,:,:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
print a matrix of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | matrix(:,:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
print a matrix of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | matrix(:,:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
print a matrix of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | matrix(:,:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
print a matrix of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | matrix(:,:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
Print a packed lower triangular matrix of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | packed(:) | |||
| integer(kind=default_int), | intent(in) | :: | n_elements | |||
| character(len=*), | intent(in), | optional | :: | format_type |
Print a packed lower triangular matrix of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | packed(:) | |||
| integer(kind=default_int), | intent(in) | :: | n_elements | |||
| character(len=*), | intent(in), | optional | :: | format_type |
Print a packed lower triangular matrix of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | packed(:) | |||
| integer(kind=default_int), | intent(in) | :: | n_elements | |||
| character(len=*), | intent(in), | optional | :: | format_type |
Print a packed lower triangular matrix of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | packed(:) | |||
| integer(kind=default_int), | intent(in) | :: | n_elements | |||
| character(len=*), | intent(in), | optional | :: | format_type |
print a vector of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | vector(:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
print a vector of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | vector(:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
print a vector of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | vector(:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
print a vector of values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | vector(:) | |||
| character(len=*), | intent(in), | optional | :: | format_type |
should not be used, intended for testing purposes. randomizes an array of type char
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(inout) | :: | array(:) |
should not be used, intended for testing purposes. randomizes an array of type dp
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | array(:) |
should not be used, intended for testing purposes. randomizes an array of type int32
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(inout) | :: | array(:) |
should not be used, intended for testing purposes. randomizes an array of type int64
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(inout) | :: | array(:) |
should not be used, intended for testing purposes. randomizes an array of type sp
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(inout) | :: | array(:) |
Set brackets based on output format type
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | format_type | |||
| character(len=1), | intent(out) | :: | open_bracket | |||
| character(len=1), | intent(out) | :: | close_bracket |
set the threading mode for the array routines, this will set the use_threaded variable to true or false depending on the input
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(in) | :: | threaded |
transpose a matrix of datatype dp
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | A(:,:) | |||
| real(kind=dp), | intent(out) | :: | B(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
transpose a matrix of datatype int32
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | A(:,:) | |||
| integer(kind=int32), | intent(out) | :: | B(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
transpose a matrix of datatype int64
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | A(:,:) | |||
| integer(kind=int64), | intent(out) | :: | B(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |
transpose a matrix of datatype sp
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | A(:,:) | |||
| real(kind=sp), | intent(out) | :: | B(:,:) | |||
| logical, | intent(in), | optional | :: | threaded |