title: How to correctly use mkl_domatcopy from MKL?
body: <p>I need to find a faster way to transpose a matrix using MKL. And I tried mkl_domatcopy from MKL but never get it right.</p>
  
  <p>Here is the test code(Fortran):</p>
  
  <pre><code>        PROGRAM MAIN
  
                  INTEGER, PARAMETER:: NROW = 3 !rows
                  INTEGER, PARAMETER:: NCOL = 3 !cols
  
                  REAL*8, ALLOCATABLE:: M(:,:)
                  REAL*8, ALLOCATABLE:: MT(:,:)
  
                  INTEGER:: i,j
  
                  ALLOCATE(M(NROW,NCOL))
                  ALLOCATE(MT(NROW,NCOL))
  
  
                  DO i = 1, NROW
                  DO j = 1, NCOL
                          M(i,j)=i
                  END DO
                  END DO
  
  call mkl_domatcopy("c","t",3,3,9,M,3,MT,3)
  
                  print *,M
                  print *,"************************"
                  print *,MT
  
          END
  </code></pre>
  
  <p>And the output is:</p>
  
  <pre><code>   1.00000000000000        2.00000000000000        3.00000000000000
     1.00000000000000        2.00000000000000        3.00000000000000
     1.00000000000000        2.00000000000000        3.00000000000000
   ************************
             0
  </code></pre>
  
  <p>why the MT is 0?Is it beacause I use it wrong or something?</p>
  
  <p>Documents about this function:
  <a href="https://software.intel.com/en-us/node/520863" rel="nofollow">https://software.intel.com/en-us/node/520863</a></p>
  
  <p>PS:I still don't get what 'alpha' means.</p>