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