pic_transpose Interface

public interface pic_transpose

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

Calls

interface~~pic_transpose~~CallsGraph interface~pic_transpose pic_transpose proc~transpose_matrix_dp transpose_matrix_dp interface~pic_transpose->proc~transpose_matrix_dp proc~transpose_matrix_int32 transpose_matrix_int32 interface~pic_transpose->proc~transpose_matrix_int32 proc~transpose_matrix_int64 transpose_matrix_int64 interface~pic_transpose->proc~transpose_matrix_int64 proc~transpose_matrix_sp transpose_matrix_sp interface~pic_transpose->proc~transpose_matrix_sp interface~pic_optional pic_optional proc~transpose_matrix_dp->interface~pic_optional proc~transpose_matrix_int32->interface~pic_optional proc~transpose_matrix_int64->interface~pic_optional proc~transpose_matrix_sp->interface~pic_optional proc~optional_char optional_char interface~pic_optional->proc~optional_char proc~optional_dp optional_dp interface~pic_optional->proc~optional_dp proc~optional_int32 optional_int32 interface~pic_optional->proc~optional_int32 proc~optional_int64 optional_int64 interface~pic_optional->proc~optional_int64 proc~optional_logical optional_logical interface~pic_optional->proc~optional_logical proc~optional_sp optional_sp interface~pic_optional->proc~optional_sp

Module Procedures

private subroutine transpose_matrix_int32(A, B, threaded)

transpose a matrix of datatype int32

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: A(:,:)
integer(kind=int32), intent(out) :: B(:,:)
logical, intent(in), optional :: threaded

private subroutine transpose_matrix_int64(A, B, threaded)

transpose a matrix of datatype int64

Arguments

Type IntentOptional Attributes Name
integer(kind=int64), intent(in) :: A(:,:)
integer(kind=int64), intent(out) :: B(:,:)
logical, intent(in), optional :: threaded

private subroutine transpose_matrix_sp(A, B, threaded)

transpose a matrix of datatype sp

Arguments

Type IntentOptional Attributes Name
real(kind=sp), intent(in) :: A(:,:)
real(kind=sp), intent(out) :: B(:,:)
logical, intent(in), optional :: threaded

private subroutine transpose_matrix_dp(A, B, threaded)

transpose a matrix of datatype dp

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: A(:,:)
real(kind=dp), intent(out) :: B(:,:)
logical, intent(in), optional :: threaded