Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.

OpenMP in pure procedures

Stanislav_Fyodorov
379 Views

Hello,

According OpenMP 2.5 specification we can't use OpenMP in pure procedures. Why so? I mean, what if I what use PURE procedures also for compiler-checking of purity of my code (not only for parallelization)?

0 Kudos
1 Reply
jimdempseyatthecove
Honored Contributor III
379 Views

Have you considered using conditional compilation?

When _OPENMP not defined compile the affected routines with PURE

When _OPENMP defined compile the affected routines without PURE

If you use the Fortran PreProcessor you could define a macro as follows

#ifdef _OPENMP
#define TEST_PURE
#else
#define TEST_PURE pure
#endif

Then use as

TEST_PURE function foo(a,b,c)
...

Jim Dempsey


0 Kudos
Reply