program variables
!$ use OMP_LIB
implicit none
integer :: a=22,b=67,c=53,d=12,rank,tnot
!$OMP PARALLEL SHARED(a) FIRSTPRIVATE(b) PRIVATE(d) DEFAULT(SHARED)
print *, " My values are ", a,b,c,d
rank = OMP_GET_THREAD_NUM () ! get the rank of current thread
tnot = OMP_GET_NUM_THREADS() ! get the total number of threads currently running this PR
b=tnot
d=rank
print *, " My values are now ", a,b,c,d
!$OMP END PARALLEL
print *, "After parallel region, my values are (look at difference with private and shared) :",a,b,c,d
end program variables
#include
#include
int main(int argc, char** argv)
{
int a = 22;
int b = 67;
int c = 53;
int d = 12;
int rank;
int tnot;
#pragma omp parallel shared(a) firstprivate(b) private(d) default(shared)
{
printf(" My values are %d %d %d %d\n",a,b,c,d);
rank = omp_get_thread_num();
tnot = omp_get_num_threads();
b = tnot;
d = rank;
printf(" My values are now %d %d %d %d\n",a,b,c,d);
}
printf("After parallel region, my values are (look at difference with private and shared) : %d %d %d %d\n",a,b,c,d);
return 0;
}