1*404b540aSrobert #include <omp.h> 2*404b540aSrobert 3*404b540aSrobert /* Orphaned work sharing. */ 4*404b540aSrobert 5*404b540aSrobert extern void abort (void); 6*404b540aSrobert 7*404b540aSrobert #define N 10 8*404b540aSrobert parloop(int * a)9*404b540aSrobertvoid parloop (int *a) 10*404b540aSrobert { 11*404b540aSrobert int i; 12*404b540aSrobert 13*404b540aSrobert #pragma omp for 14*404b540aSrobert for (i = 0; i < N; i++) 15*404b540aSrobert a[i] = i + 3; 16*404b540aSrobert } 17*404b540aSrobert main()18*404b540aSrobertmain() 19*404b540aSrobert { 20*404b540aSrobert int i, a[N]; 21*404b540aSrobert 22*404b540aSrobert #pragma omp parallel shared(a) 23*404b540aSrobert { 24*404b540aSrobert parloop (a); 25*404b540aSrobert } 26*404b540aSrobert 27*404b540aSrobert for (i = 0; i < N; i++) 28*404b540aSrobert if (a[i] != i + 3) 29*404b540aSrobert abort (); 30*404b540aSrobert 31*404b540aSrobert return 0; 32*404b540aSrobert } 33