Purpose
The omp_get_num_threads function returns the number of threads in the team currently executing the parallel region from which it is called. The function binds to the closest enclosing PARALLEL directive.
The omp_set_num_threads subroutine and the OMP_NUM_THREADS environment variable control the number of threads in a team. If you do not explicitly set the number of threads, the run-time environment will use the number of online processors on the machine by default.
If you call omp_get_num_threads from a serial portion of your program or from a nested parallel region that is serialized, the function returns 1.
Class
Function.
Argument Type and Attributes
None.
Result Type and Attributes
Default integer.
Result Value
The number of threads in the team currently executing the parallel region from which the function is called.
Examples
USE omp_lib INTEGER N1, N2 N1 = omp_get_num_threads() PRINT *, N1 !$OMP PARALLEL PRIVATE(N2) N2 = omp_get_num_threads() PRINT *, N2 !$OMP END PARALLEL
The omp_get_num_threads call returns 1 in the serial section of
the code, so N1 is assigned the value 1. N2 is assigned the number of
threads in the team executing the parallel region, so the output of the second
print statement will be an arbitrary number less than or equal to the value
returned by omp_get_max_threads.