Threadprivate issue

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?




2 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.

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.

Laisser un commentaire

Veuillez ouvrir une session pour ajouter un commentaire. Pas encore membre ? Rejoignez-nous dès aujourd’hui