| @@ -1 +1,23 @@ | |||||
| 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 | |||||