I have studied the openmp reduction function kmp_reduce and the conclusion is :
if (lck!=NULL) ==> we can do CRITICAL version
if (reduce_data!=NULL && reduce_func!=NULL) ==> we can do TREE version
if ((loc->flags & KMP_IDENT_ATOMIC_REDUCE) == KMP_IDENT_ATOMIC_REDUCE) ==> we can do ATOMIC version
So i have created 3 flags which tests the conditions above (CRITICAL, TREE, ATOMIC)
I have done some tests of openmp reductions to look at the results of these flags, but it seems to be always at 1.