Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
PROGRAM TestOMP
USE omp_lib
implicit none
INCLUDE 'mpif.h'
! Declaration of local variables.
! -------------------------------
INTEGER(KIND=4), DIMENSION (:) , ALLOCATABLE ::isub
INTEGER :: TID, NTID
INTEGER:: status
INTEGER :: ierr,me,npes, ierror,lname
INTEGER :: asss,bsss,csss,dsss,esss,fsss,gsss,hsss
character*(MPI_MAX_PROCESSOR_NAME) hostname_me
!-----------------------------------------------------------------------
CALL MPI_INIT(ierror)
CALL MPI_COMM_RANK(MPI_COMM_WORLD, me, ierror)
CALL MPI_COMM_SIZE(MPI_COMM_WORLD, npes, ierror)
CALL MPI_GET_PROCESSOR_NAME(hostname_me, lname, ierror)
WRITE(6, *) "TestOMP - RUN. PE=",me," HOSTNAME:",hostname_me(1:lname),' npes=',npes
NTID = 1
NTID = OMP_GET_MAX_THREADS()
!$OMP PARALLEL PRIVATE(isub) &
!$OMP PRIVATE(asss,bsss,csss)
!---!$OMP PRIVATE(dsss,esss,fsss) &
!---!$OMP PRIVATE(gsss,hsss)
ALLOCATE(isub(8), STAT=status)
!-----------------------------------------------------------------------
! Ogni thread conta quanti indici di sottocella genera in pcg
!-----------------------------------------------------------------------
TID = 0
TID = OMP_GET_THREAD_NUM()
asss=TID
esss=TID
if(tid.lt.5) hsss=TID
isub(1:8)=TID
write(6,*)'PE=',me,"TID=",TID, asss,esss,hsss
DEALLOCATE(isub)
!$OMP END PARALLEL
call MPI_FINALIZE(ierror)
STOP
END