Test which checks that omp_in_parallel returns false when called from a serial region and true when called within a parallel region.
2.0
omp_in_parallel
INTEGER FUNCTION omp_in_parallel()
! checks that false is returned when called from serial region
! and true is returned when called within parallel region
LOGICAL omp_in_parallel
! LOGICAL omp_in_parallel
LOGICAL serial, parallel
COMMON /orphvars/ serial, parallel
serial=.TRUE.
parallel=.FALSE.
serial=omp_in_parallel()
!$omp parallel
!$omp single
parallel=omp_in_parallel();
!$omp end single
!$omp end parallel
IF ( (.NOT. serial) .AND. (parallel) ) THEN
=1
ELSE
=0
END IF
END FUNCTION