[1727] | 1 | PROGRAM MAIN
|
---|
| 2 | IMPLICIT NONE
|
---|
| 3 |
|
---|
| 4 | ! declaration d'interface de fonction
|
---|
| 5 | interface
|
---|
[1728] | 6 | subroutine check_table(k, a, b, c, ntot)
|
---|
[1727] | 7 | integer, intent (in) :: k
|
---|
[1728] | 8 | integer, intent (inout) :: ntot
|
---|
[1727] | 9 | double precision, intent (in), dimension(:,:) :: a,b,c
|
---|
| 10 | end subroutine check_table
|
---|
| 11 | end interface
|
---|
| 12 |
|
---|
[1728] | 13 | integer, parameter :: NL = 4, NC=5
|
---|
[1727] | 14 | double precision, dimension (NL, NC) :: m1,m2,m3,m4
|
---|
| 15 |
|
---|
[1728] | 16 | integer :: i,j,k,kk
|
---|
| 17 | integer :: ntot,nloop
|
---|
| 18 |
|
---|
[1727] | 19 | integer :: N = 5000000
|
---|
| 20 |
|
---|
| 21 | print *, '--- timing test : N=', N, ' NL=', NL, ' NC=',NC
|
---|
[1728] | 22 | ntot = 0
|
---|
| 23 | nloop = 0
|
---|
| 24 | do kk=1,1
|
---|
[1727] | 25 | do k=1,N
|
---|
| 26 | m1 = 0
|
---|
| 27 | m2 = 0
|
---|
| 28 | do i=1,NL
|
---|
| 29 | do j=1,NC
|
---|
| 30 | m1(i,j) = k*300+10.*i+j
|
---|
| 31 | m2(i,j) = k*550+20.*i+2.*j;
|
---|
| 32 | enddo
|
---|
| 33 | enddo
|
---|
| 34 | m3 = m1+m2;
|
---|
| 35 | m4 = m1*m2;
|
---|
[1728] | 36 | call check_table(k, m2, m3, m4, ntot)
|
---|
[1727] | 37 | ! if (k .eq. 1) then
|
---|
| 38 | ! print *, 'm1=', m1
|
---|
| 39 | ! print *, 'm2=', m2
|
---|
| 40 | ! print *, 'm3=', m3
|
---|
| 41 | ! print *, 'm4=', m4
|
---|
| 42 | ! endif
|
---|
[1728] | 43 | nloop = nloop+1
|
---|
[1727] | 44 | enddo
|
---|
[1728] | 45 | enddo
|
---|
| 46 |
|
---|
| 47 | print *, ' nloop = ', nloop , ' ntot = ' , ntot
|
---|
| 48 | print *, '------- end of matrixf.f90 -------- '
|
---|
[1727] | 49 | end
|
---|
| 50 |
|
---|
| 51 |
|
---|
[1728] | 52 | subroutine check_table(k, a, b, c, ntot)
|
---|
[1727] | 53 | integer, intent (in) :: k
|
---|
| 54 | double precision, intent (in), dimension(:,:) :: a,b,c
|
---|
| 55 |
|
---|
| 56 | if ((k.eq.1) .or. (k.eq.50)) then
|
---|
| 57 | print *, 'check_table(',k, '...) size(a,1)= ', size(a,1), &
|
---|
| 58 | ' size(a,2)= ', size(a,2)
|
---|
| 59 | endif
|
---|
[1728] | 60 | ntot = ntot+1
|
---|
[1727] | 61 | end subroutine check_table
|
---|
| 62 |
|
---|