|
- SUBROUTINE tester(i)
- REAL_8, DIMENSION(:), ALLOCATABLE :: A,B,C
- REAL_8 :: rnd(3)
- INTEGER :: i
- INTEGER :: M,N,K
- ! test random sizes
- CALL RANDOM_NUMBER(rnd)
- M=rnd(1)_37+1 ; N=rnd(2)_37+1 ; K=rnd(3)_37+1
- ALLOCATE(C(M_N),A(M_K),B(K_N))
- A=0 ; B=0 ; C=0
- CALL DGEMM("N","N",M,N,K,1.0D0,A,M,B,K,0.0D0,C,M)
- CALL DGEMM("T","N",M,N,K,1.0D0,A,K,B,K,0.0D0,C,M)
- CALL DGEMM("N","T",M,N,K,1.0D0,A,M,B,N,0.0D0,C,M)
- CALL DGEMM("T","T",M,N,K,1.0D0,A,K,B,N,0.0D0,C,M)
- END SUBROUTINE tester
-
- PROGRAM TEST_THREAD_SAFE
- !$OMP PARALLEL DO
- DO i=1,30
- CALL tester(i)
- ENDDO
- END PROGRAM
|