diff options
Diffstat (limited to 'openmp/testsuite/fortran/par_do_if.f')
-rw-r--r-- | openmp/testsuite/fortran/par_do_if.f | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/openmp/testsuite/fortran/par_do_if.f b/openmp/testsuite/fortran/par_do_if.f new file mode 100644 index 00000000000..0b7fc9af705 --- /dev/null +++ b/openmp/testsuite/fortran/par_do_if.f @@ -0,0 +1,32 @@ +<ompts:test> +<ompts:testdescription>Test which checks the omp parallel for if directive. Needs at least two threads.</ompts:testdescription> +<ompts:ompversion>2.0</ompts:ompversion> +<ompts:directive>omp parallel do if</ompts:directive> +<ompts:dependences></ompts:dependences> +<ompts:testcode> + INTEGER FUNCTION <ompts:testcode:functionname>par_do_if</ompts:testcode:functionname>() + IMPLICIT NONE + INTEGER omp_get_num_threads + INTEGER sum,known_sum, i, num_threads + INTEGER control + INCLUDE "omp_testsuite.f" + sum = 0 + + control = 0 +!$omp parallel do <ompts:check>if (control == 1)</ompts:check> + DO i=1, LOOPCOUNT + sum = sum + i + num_threads = omp_get_num_threads () + END DO +!$omp end parallel do + WRITE (1,*) "Number of threads determined by:"\ + "omg_get_num_threasd:", num_threads + known_sum = (LOOPCOUNT*(LOOPCOUNT+1))/2 + IF ( known_sum .EQ. sum .AND. num_threads .EQ. 1) THEN + <testfunctionname></testfunctionname> = 1 + ELSE + <testfunctionname></testfunctionname> = 0 + END IF + END +</ompts:testcode> +</ompts:test> |