| C****************************************************************************** | 
 | C FILE: omp_hello.f | 
 | C DESCRIPTION: | 
 | C   OpenMP Example - Hello World - Fortran Version | 
 | C   In this simple example, the master thread forks a parallel region. | 
 | C   All threads in the team obtain their unique thread number and print it. | 
 | C   The master thread only prints the total number of threads.  Two OpenMP | 
 | C   library routines are used to obtain the number of threads and each | 
 | C   thread's number. | 
 | C AUTHOR: Blaise Barney  5/99 | 
 | C LAST REVISED: | 
 | C****************************************************************************** | 
 |  | 
 |       PROGRAM HELLO | 
 |  | 
 |       INTEGER NTHREADS, TID, OMP_GET_NUM_THREADS, | 
 |      +        OMP_GET_THREAD_NUM | 
 |  | 
 | C     Fork a team of threads giving them their own copies of variables | 
 | !$OMP PARALLEL PRIVATE(NTHREADS, TID) | 
 |  | 
 |  | 
 | C     Obtain thread number | 
 |       TID = OMP_GET_THREAD_NUM() | 
 |       PRINT *, 'Hello World from thread = ', TID | 
 |  | 
 | C     Only master thread does this | 
 |       IF (TID .EQ. 0) THEN | 
 |         NTHREADS = OMP_GET_NUM_THREADS() | 
 |         PRINT *, 'Number of threads = ', NTHREADS | 
 |       END IF | 
 |  | 
 | C     All threads join master thread and disband | 
 | !$OMP END PARALLEL | 
 |  | 
 |       END |