Alternative implementations of some Fortran intrinsic functions offering either faster and/or more accurate evaluation. (Specification)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | a | |||
| real(kind=sp), | intent(inout) | :: | s | |||
| real(kind=sp), | intent(inout) | :: | c |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | a | |||
| real(kind=sp), | intent(inout) | :: | s | |||
| real(kind=sp), | intent(inout) | :: | c | |||
| logical, | intent(in) | :: | m |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | a | |||
| real(kind=dp), | intent(inout) | :: | s | |||
| real(kind=dp), | intent(inout) | :: | c |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | a | |||
| real(kind=dp), | intent(inout) | :: | s | |||
| real(kind=dp), | intent(inout) | :: | c | |||
| logical, | intent(in) | :: | m |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=sp), | intent(in) | :: | a | |||
| complex(kind=sp), | intent(inout) | :: | s | |||
| complex(kind=sp), | intent(inout) | :: | c |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=sp), | intent(in) | :: | a | |||
| complex(kind=sp), | intent(inout) | :: | s | |||
| complex(kind=sp), | intent(inout) | :: | c | |||
| logical, | intent(in) | :: | m |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(in) | :: | a | |||
| complex(kind=dp), | intent(inout) | :: | s | |||
| complex(kind=dp), | intent(inout) | :: | c |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(in) | :: | a | |||
| complex(kind=dp), | intent(inout) | :: | s | |||
| complex(kind=dp), | intent(inout) | :: | c | |||
| logical, | intent(in) | :: | m |
dot_product of rank 1 arrays. (Specification)
compute the dot_product of rank 1 arrays.
The 1-D base implementation follows a chunked approach for optimizing performance and increasing accuracy.
Supported data types include real, complex and integer.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(in) | :: | a(:) | |||
| complex(kind=dp), | intent(in) | :: | b(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=sp), | intent(in) | :: | a(:) | |||
| complex(kind=sp), | intent(in) | :: | b(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | a(:) | |||
| real(kind=dp), | intent(in) | :: | b(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int16), | intent(in) | :: | a(:) | |||
| integer(kind=int16), | intent(in) | :: | b(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | a(:) | |||
| integer(kind=int32), | intent(in) | :: | b(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | a(:) | |||
| integer(kind=int64), | intent(in) | :: | b(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int8), | intent(in) | :: | a(:) | |||
| integer(kind=int8), | intent(in) | :: | b(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | a(:) | |||
| real(kind=sp), | intent(in) | :: | b(:) |
dot_product of rank 1 arrays. (Specification)
compute the dot_product of rank 1 arrays.
The implementation follows a chunked approach combined with a kahan kernel for optimizing performance and increasing accuracy.
Supported data types include real and complex.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(in) | :: | a(:) | |||
| complex(kind=dp), | intent(in) | :: | b(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=sp), | intent(in) | :: | a(:) | |||
| complex(kind=sp), | intent(in) | :: | b(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | a(:) | |||
| real(kind=dp), | intent(in) | :: | b(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | a(:) | |||
| real(kind=sp), | intent(in) | :: | b(:) |
Sum elements of rank N arrays. (Specification)
This interface provides standard conforming call for sum of elements of any rank.
The 1-D base implementation follows a chunked approach for optimizing performance and increasing accuracy.
The N-D interfaces calls upon the (N-1)-D implementation.
Supported data types include real, complex and integer.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(in) | :: | a(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(in) | :: | a(:) | |||
| logical, | intent(in) | :: | mask(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=sp), | intent(in) | :: | a(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=sp), | intent(in) | :: | a(:) | |||
| logical, | intent(in) | :: | mask(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | a(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | a(:) | |||
| logical, | intent(in) | :: | mask(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int16), | intent(in) | :: | a(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int16), | intent(in) | :: | a(:) | |||
| logical, | intent(in) | :: | mask(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | a(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | a(:) | |||
| logical, | intent(in) | :: | mask(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | a(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | a(:) | |||
| logical, | intent(in) | :: | mask(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int8), | intent(in) | :: | a(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int8), | intent(in) | :: | a(:) | |||
| logical, | intent(in) | :: | mask(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | a(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | a(:) | |||
| logical, | intent(in) | :: | mask(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(in) | :: | x(:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=sp), | intent(in) | :: | x(:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(in) | :: | x(:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=sp), | intent(in) | :: | x(:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | x(:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int16), | intent(in) | :: | x(:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | x(:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | x(:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int8), | intent(in) | :: | x(:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | x(:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | x(:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int16), | intent(in) | :: | x(:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | x(:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | x(:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int8), | intent(in) | :: | x(:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | x(:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(in) | :: | x(:,:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=sp), | intent(in) | :: | x(:,:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(in) | :: | x(:,:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=sp), | intent(in) | :: | x(:,:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | x(:,:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int16), | intent(in) | :: | x(:,:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | x(:,:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | x(:,:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int8), | intent(in) | :: | x(:,:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | x(:,:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | x(:,:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int16), | intent(in) | :: | x(:,:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | x(:,:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(in) | :: | x(:,:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int8), | intent(in) | :: | x(:,:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | x(:,:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |
Sum elements of rank N arrays. (Specification)
This interface provides standard conforming call for sum of elements of any rank.
The 1-D base implementation follows a chunked approach combined with a kahan kernel for optimizing performance and increasing accuracy.
The N-D interfaces calls upon the (N-1)-D implementation.
Supported data types include real and complex.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(in) | :: | a(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(in) | :: | a(:) | |||
| logical, | intent(in) | :: | mask(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=sp), | intent(in) | :: | a(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=sp), | intent(in) | :: | a(:) | |||
| logical, | intent(in) | :: | mask(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | a(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | a(:) | |||
| logical, | intent(in) | :: | mask(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | a(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | a(:) | |||
| logical, | intent(in) | :: | mask(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(in) | :: | x(:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=sp), | intent(in) | :: | x(:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(in) | :: | x(:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=sp), | intent(in) | :: | x(:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | x(:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | x(:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | x(:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | x(:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(in) | :: | x(:,:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=sp), | intent(in) | :: | x(:,:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(in) | :: | x(:,:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=sp), | intent(in) | :: | x(:,:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | x(:,:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | x(:,:,:) | |||
| integer, | intent(in) | :: | dim | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | x(:,:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=sp), | intent(in) | :: | x(:,:,:) | |||
| logical, | intent(in), | optional | :: | mask(:,:,:) |