#include #include #include #include int main(int argc, char** argv) { int rank, tnot; double val; val = 10.0; #pragma omp parallel shared(val) private(rank) default(shared) { rank = omp_get_thread_num(); tnot = omp_get_num_threads(); #pragma omp atomic val-=1; #pragma omp critical(cri0) { val = val*val; val = sqrt(val); } printf("Rank=%d Val=%lf\n",rank,val); } printf("Val=%lf\n",val); return 0; }