I know this is not strictly a F90 question but I'm hoping it's close enough that someone can easily help me (cause I'm stuck!) I'm trying to write my first Openmp program on a Sun Solaris 2 processor Ultra 60 but I can't get it to work. I wrote a simple hello.f90 code shown below and compile it with either of: f95 -c -xopenmp=noopt -Xlist hello.f90 f95 -c -xopenmp=parallel -O3 -XlistMP -Xlist hello.f90 then link. All this goes smoothly (no errors or warnings). I'm using the lastest available sun compiler (7.1, March 03) Before running I set the number of threads to 2 using setenv OMP_NUM_THREADS 2 When I run it, I get the following ---------------------------------------- (darwin 8> ./hello.exe OMP AWARE!! Num procs = 1 No. threads = 1 Max No. threads = 1 In parallel region? : F Hello World Thread no. 0 Thread no. 0 Thread no. 0 Thread no. 0 ----------------------------------------- The conditional write statement "OMP AWARE" is triggered but nothing else. In particular, the number of processors is 1 and the maximum number of threads is 1?! Any help would be greatly appreciated - I'm stumped on this one. ---------------------------------------- ---------------------------------------- program hello ! NOTE: set OMP_NUM_THREADS before running this program ! e.g., setenv OMP_NUM_THREADS 2 ! This module is needed to reference library routines USE omp_lib implicit none ! integer :: omp_get_num_procs ! integer :: omp_get_num_threads ! integer :: omp_get_thread_num ! logical :: OMP_IN_PARALLEL integer :: nproc, num_threads,i, max_threads ! write this only if omp-aware compiler !$ write(*,*) 'OMP AWARE!!' !$ write(*,*) nproc = omp_get_num_procs() write(*,*) 'Num procs = ', nproc ! set the number of threads for the next parallel region call omp_set_num_threads(2) num_threads = OMP_get_num_threads() write(*,*) 'No. threads = ', num_threads max_threads = OMP_get_max_threads() write(*,*) 'Max No. threads = ', max_threads !$OMP PARALLEL ! check whether code is in a parallel region - should be FALSE !$ write(*,*) 'In parallel region? : ', OMP_IN_PARALLEL() write(*,*) 'Hello World' !$OMP DO do i = 1,4 write(*,*) 'Thread no. ', omp_get_thread_num() end do !$OMP end do !$OMP END PARALLEL end program hello