1 #ifdef _OPENMP
2   #include <omp.h>
3   #if _OPENMP >= 201511
4     #define monotonic_dynamic monotonic:dynamic // #4786
5   #else
6     #define monotonic_dynamic dynamic
7   #endif
8   #define MY_OPENMP              _OPENMP
9   // for use in error messages (e.g. fsort.c; #4786) to save an #ifdef each time
10   // initially chose OMP_VERSION but figured OpenMP might define that in future, so picked MY_ prefix
11 #else
12   // for machines with compilers void of openmp support
13   #define omp_get_num_threads()  1
14   #define omp_get_thread_num()   0
15   #define omp_get_max_threads()  1
16   #define omp_get_thread_limit() 1
17   #define omp_get_num_procs()    1
18   #define omp_set_nested(a)   // empty statement to remove the call
19   #define omp_get_wtime()        0
20   #define MY_OPENMP              0
21 #endif
22 
23