http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59488

            Bug ID: 59488
           Summary: l[OpenMP] named constant in parallel construct lead to
                    "not specified in enclosing parallel" error.
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: kargl at gcc dot gnu.org

I'm not sure if this is a valid error or not.  I saw the issue raised in
comp.lang.fortran.

https://groups.google.com/forum/#!topic/comp.lang.fortran/VKhoAm8m9KE

with all versions of gfortran, one gets

 gfc47 -o c -fopenmp foo.f90
foo.f90: In function 'foo':
foo.f90:17:0: error: 'nlcdtypes' not specified in enclosing parallel
foo.f90:14:0: error: enclosing parallel

for

program foo
    implicit none
    integer, parameter :: ncols = 100, nrows = 200, nnlcd = 2
    integer, parameter :: nlcdtypes(nnlcd) = (/ 11, 12 /)
    integer :: ibuf(ncols,nrows), icnt(ncols,nrows), c, r, k
    integer, external :: find1

    icnt = 0
    ibuf = 17

!$omp       parallel do                 &
!$omp           default( none ),        &
!$omp&           shared( icnt, ibuf ),  &
!$omp&          private( r, c, k )
    do r = 1, nrows
    do c = 1, ncols
        k = find1(ibuf(c,r), nnlcd, nlcdtypes)
    end do
    end do
end program foo


This may be related to pr 36556.  If I remove the default(none)
clause, the code compiles.

Reply via email to