test13.f90 Source File


This file depends on

sourcefile~~test13.f90~~EfferentGraph sourcefile~test13.f90 test13.f90 sourcefile~formatmul.f90 formatmul.f90 sourcefile~test13.f90->sourcefile~formatmul.f90 sourcefile~formatmul_opts.f90 formatmul_opts.f90 sourcefile~formatmul.f90->sourcefile~formatmul_opts.f90 sourcefile~external_interfaces.f90 external_interfaces.f90 sourcefile~formatmul_opts.f90->sourcefile~external_interfaces.f90

Source Code

program test_matmul15

   use kinds
   use formatmul
   use forunittest

   implicit none

   real(rk), allocatable :: A(:,:), v(:)
   real(rk), allocatable :: w_ref(:), w(:)
   integer               :: m, n, im
   type(unit_test)       :: ut

#if defined(USE_COARRAY)
   im = this_image()
#else
   im = 1
#endif

   ! w(m) = A(n,m).v(n)
   m = 100
   n = 300

   allocate(A(n,m),v(n))
   call random_number(A)
   call random_number(v)
   A = A*100.0_rk
   v = v*100.0_rk


   w_ref = matmul(transpose(A),v)

   w = matmul(A,v, transA=.true., coarray=.true.)
   if (im==1) call ut%check(w, w_ref, tol=1e-5_rk, msg='test_matmul15.1')

   w = matmul(A,v, option='m1', transA=.true., coarray=.true.)
   if (im==1) call ut%check(w, w_ref, tol=1e-5_rk, msg='test_matmul15.2')

   w = matmul(A,v, option='m2', transA=.true., coarray=.true.)
   if (im==1) call ut%check(w, w_ref, tol=1e-5_rk, msg='test_matmul15.3')

   w = matmul(A,v, option='m3', transA=.true., coarray=.true.)
   if (im==1) call ut%check(w, w_ref, tol=1e-5_rk, msg='test_matmul15.4')

   w = matmul(A,v, option='m4', transA=.true., coarray=.true.)
   if (im==1) call ut%check(w, w_ref, tol=1e-5_rk, msg='test_matmul15.5')

   w = matmul(A,v, option='m5', transA=.true., coarray=.true.)
   if (im==1) call ut%check(w, w_ref, tol=1e-5_rk, msg='test_matmul15.6')

   w = matmul(A,v, option='m6', transA=.true., coarray=.true.)
   if (im==1) call ut%check(w, w_ref, tol=1e-5_rk, msg='test_matmul15.7')

   ! w = matmul(A,v, option='m7', transA=.true., coarray=.true.)
   ! if (im==1) call ut%check(w, w_ref, tol=1e-5_rk, msg='test_matmul15.8')

   ! w = matmul(A,v, option='m8', transA=.true., coarray=.true.)
   ! if (im==1) call ut%check(w, w_ref, tol=1e-5_rk, msg='test_matmul15.9')

end program test_matmul15