------- Comment #5 from burnus at gcc dot gnu dot org 2010-05-12 08:13 ------- (In reply to comment #4) > Using the Intel Fortran Compiler 11.1 (20090630), one gets: > test.f90(10): error #7655: A variable is required in this OpenMP context.
Ditto for procedure pointers. > Sun Studio 12 and 12.1 (8.4 2009/06/03) show: Does not support procedure pointers. (In reply to comment #3) > I'm not convinced that external (without pointer attribute) objects are > allowed > in the shared etc. clause lists. The OpenMP 3.0 standard says that a list > item > is a variable name or common block name. And the definition of variable is: > "A named data storage block, whose value can be defined and redefined during > the execution of a program." (OpenMPv3, "1.2.4 Data Terminology") > On the other side, > integer, pointer, external :: fp > I'd say is a variable, but internally in gfortran is FL_PROCEDURE too. I think in terms of the Fortran standard it is not a variable: "A variable is either the data object denoted by designator or the target of expr." (Fortran2008, "6.2 Variable") - and 5.3.14 strictly distinguishes betwixt data and procedure pointers. However, that still does not tell whether OpenMPv3 allows procedure pointers; as OpenMP is based on Fortran 90/95, one cannot expect a real answer in the specification. Still, the definition for variable in OpenMPv3 seems to allow it. > is something we want to do. Bu But ? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44036