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

Threadprivate issue


I'm having problems with ifort version 14.0.1

I'm working on a hybrid (OpenMP+MPI) FORTRAN code.  In that code the following pointer is declared and specified as threadprivate.  However, when I include it in a OpenMP parallel region (default none), I get this compile error:

ftn  -O3 -r8 -openmp cal_xy.F90
cal_xy.F90(750): error #6752: Since the OpenMP* DEFAULT(NONE) clause applies, the PRIVATE, SHARED, REDUCTION, FIRSTPRIVATE, or LASTPRIVATE attribute must be explicitly specified for every variable.   [TERM_X]
             select type(term_x)

If I add the variable to one of the data sharing clauses of the parallel region I get this error instead:

ftn -O3 -r8 -openmp calc_xy.F90
calc_xy.F90(739): error #7859: A SHARABLE or THREADPRIVATE entity is not permitted in a PRIVATE, FIRSTPRIVATE, LASTPRIVATE, SHARED or REDUCTION clause.   [TERM_X]
                call term_x%add(mat_a,col_r,&

It looks to be like the first error I get (the #6752 error) only occurs from the "select type()" command, is there any reason why this would be causing me problems with Intel's OpenMP implementation?




0 Kudos
1 Reply
Black Belt

I suppose you would need to present actual examples on the appropriate Intel Fortran forum (Windows or linux).

It may require help from a Fortran OpenMP expert if you are pushing the boundaries of f2003 OpenMP.

0 Kudos