1! { dg-set-target-env-var OMP_NUM_TEAMS "6" } 2! { dg-set-target-env-var OMP_TEAMS_THREAD_LIMIT "12" } 3 4use omp_lib 5implicit none (type, external) 6 if (env_is_set ("OMP_NUM_TEAMS", "6")) then 7 if (omp_get_max_teams () /= 6) & 8 error stop 1 9 else 10 call omp_set_num_teams (6) 11 end if 12 if (env_is_set ("OMP_TEAMS_THREAD_LIMIT", "12")) then 13 if (omp_get_teams_thread_limit () /= 12) & 14 error stop 2 15 else 16 call omp_set_teams_thread_limit (12) 17 end if 18 !$omp teams 19 !$omp parallel if(.false.) 20 if (omp_get_max_teams () /= 6 & 21 .or. omp_get_teams_thread_limit () /= 12 & 22 .or. omp_get_num_teams () < 1 & 23 .or. omp_get_num_teams () > 6 & 24 .or. omp_get_team_num () < 0 & 25 .or. omp_get_team_num () >= omp_get_num_teams () & 26 .or. omp_get_thread_limit () < 1 & 27 .or. omp_get_thread_limit () > 12) & 28 error stop 3 29 !$omp end parallel 30 !$omp end teams 31contains 32 logical function env_is_set (name, val) 33 character(len=*) :: name, val 34 character(len=40) :: val2 35 integer :: stat 36 call get_environment_variable (name, val2, status=stat) 37 if (stat == 0) then 38 if (val == val2) then 39 env_is_set = .true. 40 return 41 end if 42 else if (stat /= 1) then 43 error stop 10 44 endif 45 env_is_set = .false. 46 end 47end 48