| ! { dg-set-target-env-var OMP_NUM_TEAMS "6" } |
| ! { dg-set-target-env-var OMP_TEAMS_THREAD_LIMIT "12" } |
| |
| use omp_lib |
| implicit none (type, external) |
| if (env_is_set ("OMP_NUM_TEAMS", "6")) then |
| if (omp_get_max_teams () /= 6) & |
| error stop 1 |
| else |
| call omp_set_num_teams (6) |
| end if |
| if (env_is_set ("OMP_TEAMS_THREAD_LIMIT", "12")) then |
| if (omp_get_teams_thread_limit () /= 12) & |
| error stop 2 |
| else |
| call omp_set_teams_thread_limit (12) |
| end if |
| !$omp teams |
| !$omp parallel if(.false.) |
| if (omp_get_max_teams () /= 6 & |
| .or. omp_get_teams_thread_limit () /= 12 & |
| .or. omp_get_num_teams () < 1 & |
| .or. omp_get_num_teams () > 6 & |
| .or. omp_get_team_num () < 0 & |
| .or. omp_get_team_num () >= omp_get_num_teams () & |
| .or. omp_get_thread_limit () < 1 & |
| .or. omp_get_thread_limit () > 12) & |
| error stop 3 |
| !$omp end parallel |
| !$omp end teams |
| contains |
| logical function env_is_set (name, val) |
| character(len=*) :: name, val |
| character(len=40) :: val2 |
| integer :: stat |
| call get_environment_variable (name, val2, status=stat) |
| if (stat == 0) then |
| if (val == val2) then |
| env_is_set = .true. |
| return |
| end if |
| else if (stat /= 1) then |
| error stop 10 |
| endif |
| env_is_set = .false. |
| end |
| end |