Description: Allow compilation with GCC 9
 Fix issues regarding OpenMP data sharing.
Author: Rafael Laboissiere <rafael@debian.org>
Bug-Debian: https://bugs.debian.org/925791
Forwarded: https://savannah.gnu.org/bugs/index.php?56786
Last-Update: 2019-08-24

--- a/src/fgeneral.c
+++ b/src/fgeneral.c
@@ -268,6 +268,7 @@
 #if defined(_OPENMP)&&(_OPENMP>=GEOC_OMP_F_3_1)
 #pragma omp parallel for default(none) \
  shared(lista) \
+ firstprivate(nDatos,incDatos) \
  private(i,pos) \
  reduction(min:salida)
 #endif
@@ -307,6 +308,7 @@
 #if defined(_OPENMP)&&(_OPENMP>=GEOC_OMP_F_3_1)
 #pragma omp parallel for default(none) \
  shared(lista) \
+ firstprivate(nDatos,incDatos) \
  private(i,pos) \
  reduction(max:salida)
 #endif
@@ -346,6 +348,7 @@
 #if defined(_OPENMP)&&(_OPENMP>=GEOC_OMP_F_3_1)
 #pragma omp parallel for default(none) \
  shared(lista) \
+ firstprivate(nDatos,incDatos) \
  private(i,pos) \
  reduction(min:salida)
 #endif
@@ -385,6 +388,7 @@
 #if defined(_OPENMP)&&(_OPENMP>=GEOC_OMP_F_3_1)
 #pragma omp parallel for default(none) \
  shared(lista) \
+ firstprivate(nDatos,incDatos) \
  private(i,pos) \
  reduction(max:salida)
 #endif
@@ -424,7 +428,8 @@
 #if defined(_OPENMP)&&(_OPENMP>=GEOC_OMP_F_3_1)
 #pragma omp parallel for default(none) \
  shared(lista) \
- private(i,pos) \
+ firstprivate(nDatos,incDatos) \
+ private(i,pos)                              \
  reduction(min:salida)
 #endif
     //recorremos el resto de elementos de la lista
@@ -463,6 +468,7 @@
 #if defined(_OPENMP)&&(_OPENMP>=GEOC_OMP_F_3_1)
 #pragma omp parallel for default(none) \
  shared(lista) \
+ firstprivate(nDatos,incDatos) \
  private(i,pos) \
  reduction(max:salida)
 #endif
--- a/src/polig.c
+++ b/src/polig.c
@@ -383,7 +383,8 @@
     //paralelización con OpenMP
 #if defined(_OPENMP)
 #pragma omp parallel sections default(none) \
- shared(posNanX,x,nNanX,posNanY,y,nNanY)
+ shared(posNanX,x,nNanX,posNanY,y,nNanY) \
+ firstprivate(incX,incY,nElem)
 #endif
 {
 #if defined(_OPENMP)
@@ -1088,7 +1089,8 @@
     //paralelización con OpenMP
 #if defined(_OPENMP)
 #pragma omp parallel sections default(none) \
- shared(x,posXMin,posXMax,y,posYMin,posYMax)
+ shared(x,posXMin,posXMax,y,posYMin,posYMax) \
+ firstprivate(nElem,incX,incY)
 #endif
 {
     //posiciones en el vector X
@@ -1137,6 +1139,7 @@
 #if defined(_OPENMP)
 #pragma omp parallel for default(none) schedule(dynamic) \
  shared(posIni,x,y,nVert,xMin,xMax,yMin,yMax) \
+ firstprivate(incX,incY,nPolig,restaPosIni) \
  private(i,pI)
 #endif
     //recorremos el número de polígonos
@@ -1256,6 +1259,7 @@
 #if defined(_OPENMP)
 #pragma omp parallel for default(none) schedule(dynamic) \
  shared(posIni,area,x,y,nVert) \
+ firstprivate(incX,incY,nPolig,restaPosIni)  \
  private(i,pI)
 #endif
     //recorremos el número de polígonos
@@ -1285,7 +1289,8 @@
     //paralelización con OpenMP
 #if defined(_OPENMP)
 #pragma omp parallel sections default(none) \
- shared(poli)
+ shared(poli) \
+ firstprivate(escalaX,escalaY,trasladaX,trasladaY)
 #endif
 {
 #if defined(_OPENMP)
@@ -1338,7 +1343,8 @@
     //paralelización con OpenMP
 #if defined(_OPENMP)
 #pragma omp parallel sections default(none) \
- shared(poli)
+ shared(poli) \
+ firstprivate(escalaX,escalaY,trasladaX,trasladaY)
 #endif
 {
 #if defined(_OPENMP)
--- a/src/polil.c
+++ b/src/polil.c
@@ -379,7 +379,8 @@
     //paralelización con OpenMP
 #if defined(_OPENMP)
 #pragma omp parallel sections default(none) \
- shared(posNanX,x,nNanX,posNanY,y,nNanY)
+ shared(posNanX,x,nNanX,posNanY,y,nNanY) \
+ firstprivate(nElem,incX,incY)
 #endif
 {
 #if defined(_OPENMP)
@@ -1010,7 +1011,8 @@
     //paralelización con OpenMP
 #if defined(_OPENMP)
 #pragma omp parallel sections default(none) \
- shared(poli)
+ shared(poli) \
+ firstprivate(escalaX,escalaY,trasladaX,trasladaY)
 #endif
 {
 #if defined(_OPENMP)
@@ -1055,7 +1057,8 @@
     //paralelización con OpenMP
 #if defined(_OPENMP)
 #pragma omp parallel sections default(none) \
- shared(poli)
+ shared(poli) \
+ firstprivate(escalaX,escalaY,trasladaX,trasladaY)
 #endif
 {
 #if defined(_OPENMP)
--- a/src/ptopol.c
+++ b/src/ptopol.c
@@ -627,6 +627,7 @@
 #if defined(_OPENMP)
 #pragma omp parallel for default(none) schedule(dynamic) \
  shared(continuar,posNan,coorX,coorY,pos,poli) \
+ firstprivate(x,y,incX,incY,nNan) \
  private(i,iniX,iniY,nElem,posAux)
 #endif
         //recorremos desde el primer NaN hasta el penúltimo
@@ -728,6 +729,7 @@
 #if defined(_OPENMP)
 #pragma omp parallel for default(none) schedule(dynamic) \
  shared(continuar,posNan,coorX,coorY,pos,poli) \
+ firstprivate(x,y,incX,incY,nNan) \
  private(i,iniX,iniY,nElem,posAux)
 #endif
         //recorremos desde el primer NaN hasta el penúltimo
@@ -829,6 +831,7 @@
 #if defined(_OPENMP)
 #pragma omp parallel for default(none) schedule(dynamic) \
  shared(continuar,posNan,coorX,coorY,pos,poli) \
+ firstprivate(x,y,incX,incY,nNan) \
  private(i,iniX,iniY,nElem,posAux)
 #endif
         //recorremos desde el primer NaN hasta el penúltimo
@@ -933,6 +936,7 @@
 #if defined(_OPENMP)
 #pragma omp parallel for default(none) schedule(dynamic) \
  shared(continuar,posNan,coorX,coorY,pos,poli) \
+ firstprivate(x,y,incX,incY,factor,redondeo,nNan) \
  private(i,iniX,iniY,nElem,posAux)
 #endif
         //recorremos desde el primer NaN hasta el penúltimo
