URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 273 |
Rev 338 |
! { dg-do run }
|
! { dg-do run }
|
SUBROUTINE SUBDOMAIN(X, ISTART, IPOINTS)
|
SUBROUTINE SUBDOMAIN(X, ISTART, IPOINTS)
|
INTEGER ISTART, IPOINTS
|
INTEGER ISTART, IPOINTS
|
REAL X(*)
|
REAL X(*)
|
INTEGER I
|
INTEGER I
|
DO 100 I=1,IPOINTS
|
DO 100 I=1,IPOINTS
|
X(ISTART+I) = 123.456
|
X(ISTART+I) = 123.456
|
100 CONTINUE
|
100 CONTINUE
|
END SUBROUTINE SUBDOMAIN
|
END SUBROUTINE SUBDOMAIN
|
SUBROUTINE SUB(X, NPOINTS)
|
SUBROUTINE SUB(X, NPOINTS)
|
INCLUDE "omp_lib.h" ! or USE OMP_LIB
|
INCLUDE "omp_lib.h" ! or USE OMP_LIB
|
REAL X(*)
|
REAL X(*)
|
INTEGER NPOINTS
|
INTEGER NPOINTS
|
INTEGER IAM, NT, IPOINTS, ISTART
|
INTEGER IAM, NT, IPOINTS, ISTART
|
!$OMP PARALLEL DEFAULT(PRIVATE) SHARED(X,NPOINTS)
|
!$OMP PARALLEL DEFAULT(PRIVATE) SHARED(X,NPOINTS)
|
IAM = OMP_GET_THREAD_NUM()
|
IAM = OMP_GET_THREAD_NUM()
|
NT = OMP_GET_NUM_THREADS()
|
NT = OMP_GET_NUM_THREADS()
|
IPOINTS = NPOINTS/NT
|
IPOINTS = NPOINTS/NT
|
ISTART = IAM * IPOINTS
|
ISTART = IAM * IPOINTS
|
IF (IAM .EQ. NT-1) THEN
|
IF (IAM .EQ. NT-1) THEN
|
IPOINTS = NPOINTS - ISTART
|
IPOINTS = NPOINTS - ISTART
|
ENDIF
|
ENDIF
|
CALL SUBDOMAIN(X,ISTART,IPOINTS)
|
CALL SUBDOMAIN(X,ISTART,IPOINTS)
|
!$OMP END PARALLEL
|
!$OMP END PARALLEL
|
END SUBROUTINE SUB
|
END SUBROUTINE SUB
|
PROGRAM A4
|
PROGRAM A4
|
REAL ARRAY(10000)
|
REAL ARRAY(10000)
|
CALL SUB(ARRAY, 10000)
|
CALL SUB(ARRAY, 10000)
|
END PROGRAM A4
|
END PROGRAM A4
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.