! @@name: set_dynamic_nthrs.1f ! @@type: F-fixed ! @@compilable: yes ! @@linkable: no ! @@expect: success SUBROUTINE DO_BY_16(X, IAM, IPOINTS) REAL X(*) INTEGER IAM, IPOINTS END SUBROUTINE DO_BY_16 SUBROUTINE DYNTHREADS(X, NPOINTS) INCLUDE "omp_lib.h" ! or USE OMP_LIB INTEGER NPOINTS REAL X(NPOINTS) INTEGER IAM, IPOINTS CALL OMP_SET_DYNAMIC(.FALSE.) CALL OMP_SET_NUM_THREADS(16) !$OMP PARALLEL SHARED(X,NPOINTS) PRIVATE(IAM, IPOINTS) IF (OMP_GET_NUM_THREADS() .NE. 16) THEN STOP ENDIF IAM = OMP_GET_THREAD_NUM() IPOINTS = NPOINTS/16 CALL DO_BY_16(X,IAM,IPOINTS) !$OMP END PARALLEL END SUBROUTINE DYNTHREADS