test8.f90 Source File


This file depends on

sourcefile~~test8.f90~~EfferentGraph sourcefile~test8.f90 test8.f90 sourcefile~formatmul.f90 formatmul.f90 sourcefile~test8.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_matmul10

   use kinds
   use formatmul
   use forunittest

   implicit none

   real(rk), allocatable :: A(:,:), B(:,:)
   real(rk), allocatable :: C_ref(:,:), C(:,:)
   integer               :: m, n, o, im
   type(unit_test)       :: ut

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

   ! C(m,o) = A(m,n).B(n,o)
   m = 500
   n = 400
   o = 300

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

   C_ref = matmul(A,B)

   C = matmul(A,B, coarray=.true.)
   if (im==1) call ut%check(C, C_ref, tol=1e-5_rk, msg='test_matmul10.1')

   C = matmul(A,B, option='m1', coarray=.true.)
   if (im==1) call ut%check(C, C_ref, tol=1e-5_rk, msg='test_matmul10.2')

   C = matmul(A,B, option='m2', coarray=.true.)
   if (im==1) call ut%check(C, C_ref, tol=1e-5_rk, msg='test_matmul10.3')

   C = matmul(A,B, option='m3', coarray=.true.)
   if (im==1) call ut%check(C, C_ref, tol=1e-5_rk, msg='test_matmul10.4')

   C = matmul(A,B, option='m4', coarray=.true.)
   if (im==1) call ut%check(C, C_ref, tol=1e-5_rk, msg='test_matmul10.5')

   C = matmul(A,B, option='m5', coarray=.true.)
   if (im==1) call ut%check(C, C_ref, tol=1e-5_rk, msg='test_matmul10.6')

   C = matmul(A,B, option='m6', coarray=.true.)
   if (im==1) call ut%check(C, C_ref, tol=1e-5_rk, msg='test_matmul10.7')

   C = matmul(A,B, option='m7', coarray=.true.)
   if (im==1) call ut%check(C, C_ref, tol=1e-5_rk, msg='test_matmul10.8')

   C = matmul(A,B, option='m8', coarray=.true.)
   if (im==1) call ut%check(C, C_ref, tol=1e-5_rk, msg='test_matmul10.9')

   C = matmul(A,B, option='m9', coarray=.true.)
   if (im==1) call ut%check(C, C_ref, tol=1e-5_rk, msg='test_matmul10.10')

!    C = matmul(A,B, option='m10', coarray=.true.)
!    if (im==1) call ut%check(C, C_ref, tol=1e-5_rk, msg='test_matmul10.11')

!    C = matmul(A,B, option='m11', coarray=.true.)
!    if (im==1) call ut%check(C, C_ref, tol=1e-5_rk, msg='test_matmul10.12')

   C = matmul(A,B, option='m12', coarray=.true.)
   if (im==1) call ut%check(C, C_ref, tol=1e-5_rk, msg='test_matmul10.13')

   C = matmul(A,B, option='m13', coarray=.true.)
   if (im==1) call ut%check(C, C_ref, tol=1e-5_rk, msg='test_matmul10.14')

end program test_matmul10