14#if !defined(ADOLC_ADOLC_OPENMP_H)
15#define ADOLC_ADOLC_OPENMP_H 1
17#if !defined(__cplusplus)
18#warning ADOLC_OPENMP IS ONLY USEFUL WHEN COMPILED WITH C++ !!!
22#error OPENMP NOT ENABLED AT COMPILE TIME !!!
27extern void beginParallel();
28extern void endParallel();
30extern int ADOLC_parallel_doCopy;
32typedef struct ADOLC_OpenMP {
33 inline ADOLC_OpenMP() {}
34 inline ADOLC_OpenMP(
const ADOLC_OpenMP &arg) {
35 ADOLC_parallel_doCopy = 1;
38 inline ~ADOLC_OpenMP() { endParallel(); }
41typedef struct ADOLC_OpenMP_NC {
42 inline ADOLC_OpenMP_NC() {}
43 inline ADOLC_OpenMP_NC(
const ADOLC_OpenMP_NC &arg) {
44 ADOLC_parallel_doCopy = 0;
47 inline ~ADOLC_OpenMP_NC() { endParallel(); }
50extern ADOLC_OpenMP ADOLC_OpenMP_Handler;
51extern ADOLC_OpenMP_NC ADOLC_OpenMP_Handler_NC;
53#define ADOLC_OPENMP firstprivate(ADOLC_OpenMP_Handler)
54#define ADOLC_OPENMP_NC firstprivate(ADOLC_OpenMP_Handler_NC)