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
Note
If this subroutine is called inside a omp threaded region it will run serially because of nested parallelism
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int32), | intent(in) | :: | A(:,:) | |||
integer(kind=int32), | intent(out) | :: | B(:,:) | |||
logical, | intent(in), | optional | :: | threaded |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int64), | intent(in) | :: | A(:,:) | |||
integer(kind=int64), | intent(out) | :: | B(:,:) | |||
logical, | intent(in), | optional | :: | threaded |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=sp), | intent(in) | :: | A(:,:) | |||
real(kind=sp), | intent(out) | :: | B(:,:) | |||
logical, | intent(in), | optional | :: | threaded |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in) | :: | A(:,:) | |||
real(kind=dp), | intent(out) | :: | B(:,:) | |||
logical, | intent(in), | optional | :: | threaded |