! include/25/omp_lib.h.var
! $Revision: 42951 $
! $Date: 2014-01-21 14:41:41 -0600 (Tue, 21 Jan 2014) $

!
!//===----------------------------------------------------------------------===//
!//
!//                     The LLVM Compiler Infrastructure
!//
!// This file is dual licensed under the MIT and the University of Illinois Open
!// Source Licenses. See LICENSE.txt for details.
!//
!//===----------------------------------------------------------------------===//
!

!***
!*** Some of the directives for the following routine extend past column 72,
!*** so process this file in 132-column mode.
!***

!dec$ fixedformlinesize:132

      include 'omp_lib_kinds.h'

      integer,      parameter :: kmp_version_major = $KMP_VERSION_MAJOR
      integer,      parameter :: kmp_version_minor = $KMP_VERSION_MINOR
      integer,      parameter :: kmp_version_build = $KMP_VERSION_BUILD
      character(*), parameter :: kmp_build_date    = '$KMP_BUILD_DATE'
      integer,      parameter :: openmp_version    = 200505

      interface

!       ***
!       *** omp_* entry points
!       ***

        subroutine omp_set_num_threads(nthreads)
          include 'omp_lib_kinds.h'
          integer (kind=omp_integer_kind) nthreads
        end subroutine omp_set_num_threads

        subroutine omp_set_dynamic(enable)
          include 'omp_lib_kinds.h'
          logical (kind=omp_logical_kind) enable
        end subroutine omp_set_dynamic

        subroutine omp_set_nested(enable)
          include 'omp_lib_kinds.h'
          logical (kind=omp_logical_kind) enable
        end subroutine omp_set_nested

        function omp_get_num_threads()
          include 'omp_lib_kinds.h'
          integer (kind=omp_integer_kind) omp_get_num_threads
        end function omp_get_num_threads

        function omp_get_max_threads()
          include 'omp_lib_kinds.h'
          integer (kind=omp_integer_kind) omp_get_max_threads
        end function omp_get_max_threads

        function omp_get_thread_num()
          include 'omp_lib_kinds.h'
          integer (kind=omp_integer_kind) omp_get_thread_num
        end function omp_get_thread_num

        function omp_get_num_procs()
          include 'omp_lib_kinds.h'
          integer (kind=omp_integer_kind) omp_get_num_procs
        end function omp_get_num_procs

        function omp_in_parallel()
          include 'omp_lib_kinds.h'
          logical (kind=omp_logical_kind) omp_in_parallel
        end function omp_in_parallel

        function omp_get_dynamic()
          include 'omp_lib_kinds.h'
          logical (kind=omp_logical_kind) omp_get_dynamic
        end function omp_get_dynamic

        function omp_get_nested()
          include 'omp_lib_kinds.h'
          logical (kind=omp_logical_kind) omp_get_nested
        end function omp_get_nested

        function omp_get_wtime()
          include 'omp_lib_kinds.h'
          double precision omp_get_wtime
        end function omp_get_wtime

        function omp_get_wtick ()
          include 'omp_lib_kinds.h'
          double precision omp_get_wtick
        end function omp_get_wtick

        subroutine omp_init_lock(lockvar)
          include 'omp_lib_kinds.h'
          integer (kind=omp_lock_kind) lockvar
        end subroutine omp_init_lock

        subroutine omp_destroy_lock(lockvar)
          include 'omp_lib_kinds.h'
          integer (kind=omp_lock_kind) lockvar
        end subroutine omp_destroy_lock

        subroutine omp_set_lock(lockvar)
          include 'omp_lib_kinds.h'
          integer (kind=omp_lock_kind) lockvar
        end subroutine omp_set_lock

        subroutine omp_unset_lock(lockvar)
          include 'omp_lib_kinds.h'
          integer (kind=omp_lock_kind) lockvar
        end subroutine omp_unset_lock

        function omp_test_lock(lockvar)
          include 'omp_lib_kinds.h'
          logical (kind=omp_logical_kind) omp_test_lock
          integer (kind=omp_lock_kind) lockvar
        end function omp_test_lock

        subroutine omp_init_nest_lock(lockvar)
          include 'omp_lib_kinds.h'
          integer (kind=omp_nest_lock_kind) lockvar
        end subroutine omp_init_nest_lock

        subroutine omp_destroy_nest_lock(lockvar)
          include 'omp_lib_kinds.h'
          integer (kind=omp_nest_lock_kind) lockvar
        end subroutine omp_destroy_nest_lock

        subroutine omp_set_nest_lock(lockvar)
          include 'omp_lib_kinds.h'
          integer (kind=omp_nest_lock_kind) lockvar
        end subroutine omp_set_nest_lock

        subroutine omp_unset_nest_lock(lockvar)
          include 'omp_lib_kinds.h'
          integer (kind=omp_nest_lock_kind) lockvar
        end subroutine omp_unset_nest_lock

        function omp_test_nest_lock(lockvar)
          include 'omp_lib_kinds.h'
          integer (kind=omp_integer_kind) omp_test_nest_lock
          integer (kind=omp_nest_lock_kind) lockvar
        end function omp_test_nest_lock

!       ***
!       *** kmp_* entry points
!       ***

        subroutine kmp_set_stacksize(size)
          include 'omp_lib_kinds.h'
          integer (kind=omp_integer_kind) size
        end subroutine kmp_set_stacksize

        subroutine kmp_set_stacksize_s(size)
          include 'omp_lib_kinds.h'
          integer (kind=kmp_size_t_kind) size
        end subroutine kmp_set_stacksize_s

        subroutine kmp_set_blocktime(msec)
          include 'omp_lib_kinds.h'
          integer (kind=omp_integer_kind) msec
        end subroutine kmp_set_blocktime

        subroutine kmp_set_library_serial()
          include 'omp_lib_kinds.h'
        end subroutine kmp_set_library_serial

        subroutine kmp_set_library_turnaround()
          include 'omp_lib_kinds.h'
        end subroutine kmp_set_library_turnaround

        subroutine kmp_set_library_throughput()
          include 'omp_lib_kinds.h'
        end subroutine kmp_set_library_throughput

        subroutine kmp_set_library(libnum)
          include 'omp_lib_kinds.h'
          integer (kind=omp_integer_kind) libnum
        end subroutine kmp_set_library

        subroutine kmp_set_defaults(string)
          character*(*) string
        end subroutine kmp_set_defaults

        function kmp_get_stacksize()
          include 'omp_lib_kinds.h'
          integer (kind=omp_integer_kind) kmp_get_stacksize
        end function kmp_get_stacksize

        function kmp_get_stacksize_s()
          include 'omp_lib_kinds.h'
          integer (kind=kmp_size_t_kind) kmp_get_stacksize_s
        end function kmp_get_stacksize_s

        function kmp_get_blocktime()
          include 'omp_lib_kinds.h'
          integer (kind=omp_integer_kind) kmp_get_blocktime
        end function kmp_get_blocktime

        function kmp_get_library()
          include 'omp_lib_kinds.h'
          integer (kind=omp_integer_kind) kmp_get_library
        end function kmp_get_library

        function kmp_malloc(size)
          include 'omp_lib_kinds.h'
          integer (kind=kmp_pointer_kind) kmp_malloc
          integer (kind=kmp_size_t_kind) size
        end function kmp_malloc

        function kmp_calloc(nelem, elsize)
          include 'omp_lib_kinds.h'
          integer (kind=kmp_pointer_kind) kmp_calloc
          integer (kind=kmp_size_t_kind) nelem
          integer (kind=kmp_size_t_kind) elsize
        end function kmp_calloc

        function kmp_realloc(ptr, size)
          include 'omp_lib_kinds.h'
          integer (kind=kmp_pointer_kind) kmp_realloc
          integer (kind=kmp_pointer_kind) ptr
          integer (kind=kmp_size_t_kind) size
        end function kmp_realloc

        subroutine kmp_free(ptr)
          include 'omp_lib_kinds.h'
          integer (kind=kmp_pointer_kind) ptr
        end subroutine kmp_free

        subroutine kmp_set_warnings_on()
          include 'omp_lib_kinds.h'
        end subroutine kmp_set_warnings_on

        subroutine kmp_set_warnings_off()
          include 'omp_lib_kinds.h'
        end subroutine kmp_set_warnings_off

      end interface

!dec$ if defined(_WIN32)
!dec$   if defined(_WIN64) .or. defined(_M_AMD64)

!***
!*** The Fortran entry points must be in uppercase, even if the /Qlowercase
!*** option is specified.  The alias attribute ensures that the specified
!*** string is used as the entry point.
!***
!*** On the Windows* OS IA-32 architecture, the Fortran entry points have an
!*** underscore prepended.  On the Windows* OS Intel(R) 64
!*** architecture, no underscore is prepended.
!***

!dec$ attributes alias:'OMP_SET_NUM_THREADS'::omp_set_num_threads
!dec$ attributes alias:'OMP_SET_DYNAMIC'::omp_set_dynamic
!dec$ attributes alias:'OMP_SET_NESTED'::omp_set_nested
!dec$ attributes alias:'OMP_GET_NUM_THREADS'::omp_get_num_threads
!dec$ attributes alias:'OMP_GET_MAX_THREADS'::omp_get_max_threads
!dec$ attributes alias:'OMP_GET_THREAD_NUM'::omp_get_thread_num
!dec$ attributes alias:'OMP_GET_NUM_PROCS'::omp_get_num_procs
!dec$ attributes alias:'OMP_IN_PARALLEL'::omp_in_parallel
!dec$ attributes alias:'OMP_GET_DYNAMIC'::omp_get_dynamic
!dec$ attributes alias:'OMP_GET_NESTED'::omp_get_nested
!dec$ attributes alias:'OMP_GET_WTIME'::omp_get_wtime
!dec$ attributes alias:'OMP_GET_WTICK'::omp_get_wtick

!dec$ attributes alias:'omp_init_lock'::omp_init_lock
!dec$ attributes alias:'omp_destroy_lock'::omp_destroy_lock
!dec$ attributes alias:'omp_set_lock'::omp_set_lock
!dec$ attributes alias:'omp_unset_lock'::omp_unset_lock
!dec$ attributes alias:'omp_test_lock'::omp_test_lock
!dec$ attributes alias:'omp_init_nest_lock'::omp_init_nest_lock
!dec$ attributes alias:'omp_destroy_nest_lock'::omp_destroy_nest_lock
!dec$ attributes alias:'omp_set_nest_lock'::omp_set_nest_lock
!dec$ attributes alias:'omp_unset_nest_lock'::omp_unset_nest_lock
!dec$ attributes alias:'omp_test_nest_lock'::omp_test_nest_lock

!dec$ attributes alias:'KMP_SET_STACKSIZE'::kmp_set_stacksize
!dec$ attributes alias:'KMP_SET_STACKSIZE_S'::kmp_set_stacksize_s
!dec$ attributes alias:'KMP_SET_BLOCKTIME'::kmp_set_blocktime
!dec$ attributes alias:'KMP_SET_LIBRARY_SERIAL'::kmp_set_library_serial
!dec$ attributes alias:'KMP_SET_LIBRARY_TURNAROUND'::kmp_set_library_turnaround
!dec$ attributes alias:'KMP_SET_LIBRARY_THROUGHPUT'::kmp_set_library_throughput
!dec$ attributes alias:'KMP_SET_LIBRARY'::kmp_set_library
!dec$ attributes alias:'KMP_SET_DEFAULTS'::kmp_set_defaults
!dec$ attributes alias:'KMP_GET_STACKSIZE'::kmp_get_stacksize
!dec$ attributes alias:'KMP_GET_STACKSIZE_S'::kmp_get_stacksize_s
!dec$ attributes alias:'KMP_GET_BLOCKTIME'::kmp_get_blocktime
!dec$ attributes alias:'KMP_GET_LIBRARY'::kmp_get_library
!dec$ attributes alias:'KMP_MALLOC'::kmp_malloc
!dec$ attributes alias:'KMP_CALLOC'::kmp_calloc
!dec$ attributes alias:'KMP_REALLOC'::kmp_realloc
!dec$ attributes alias:'KMP_FREE'::kmp_free

!dec$ attributes alias:'KMP_SET_WARNINGS_ON'::kmp_set_warnings_on
!dec$ attributes alias:'KMP_SET_WARNINGS_OFF'::kmp_set_warnings_off

!dec$   else

!***
!*** On Windows* OS IA-32 architecture, the Fortran entry points have an
!*** underscore prepended.
!***

!dec$ attributes alias:'_OMP_SET_NUM_THREADS'::omp_set_num_threads
!dec$ attributes alias:'_OMP_SET_DYNAMIC'::omp_set_dynamic
!dec$ attributes alias:'_OMP_SET_NESTED'::omp_set_nested
!dec$ attributes alias:'_OMP_GET_NUM_THREADS'::omp_get_num_threads
!dec$ attributes alias:'_OMP_GET_MAX_THREADS'::omp_get_max_threads
!dec$ attributes alias:'_OMP_GET_THREAD_NUM'::omp_get_thread_num
!dec$ attributes alias:'_OMP_GET_NUM_PROCS'::omp_get_num_procs
!dec$ attributes alias:'_OMP_IN_PARALLEL'::omp_in_parallel
!dec$ attributes alias:'_OMP_GET_DYNAMIC'::omp_get_dynamic
!dec$ attributes alias:'_OMP_GET_NESTED'::omp_get_nested
!dec$ attributes alias:'_OMP_GET_WTIME'::omp_get_wtime
!dec$ attributes alias:'_OMP_GET_WTICK'::omp_get_wtick

!dec$ attributes alias:'_omp_init_lock'::omp_init_lock
!dec$ attributes alias:'_omp_destroy_lock'::omp_destroy_lock
!dec$ attributes alias:'_omp_set_lock'::omp_set_lock
!dec$ attributes alias:'_omp_unset_lock'::omp_unset_lock
!dec$ attributes alias:'_omp_test_lock'::omp_test_lock
!dec$ attributes alias:'_omp_init_nest_lock'::omp_init_nest_lock
!dec$ attributes alias:'_omp_destroy_nest_lock'::omp_destroy_nest_lock
!dec$ attributes alias:'_omp_set_nest_lock'::omp_set_nest_lock
!dec$ attributes alias:'_omp_unset_nest_lock'::omp_unset_nest_lock
!dec$ attributes alias:'_omp_test_nest_lock'::omp_test_nest_lock

!dec$ attributes alias:'_KMP_SET_STACKSIZE'::kmp_set_stacksize
!dec$ attributes alias:'_KMP_SET_STACKSIZE_S'::kmp_set_stacksize_s
!dec$ attributes alias:'_KMP_SET_BLOCKTIME'::kmp_set_blocktime
!dec$ attributes alias:'_KMP_SET_LIBRARY_SERIAL'::kmp_set_library_serial
!dec$ attributes alias:'_KMP_SET_LIBRARY_TURNAROUND'::kmp_set_library_turnaround
!dec$ attributes alias:'_KMP_SET_LIBRARY_THROUGHPUT'::kmp_set_library_throughput
!dec$ attributes alias:'_KMP_SET_LIBRARY'::kmp_set_library
!dec$ attributes alias:'_KMP_SET_DEFAULTS'::kmp_set_defaults
!dec$ attributes alias:'_KMP_GET_STACKSIZE'::kmp_get_stacksize
!dec$ attributes alias:'_KMP_GET_STACKSIZE_S'::kmp_get_stacksize_s
!dec$ attributes alias:'_KMP_GET_BLOCKTIME'::kmp_get_blocktime
!dec$ attributes alias:'_KMP_GET_LIBRARY'::kmp_get_library
!dec$ attributes alias:'_KMP_MALLOC'::kmp_malloc
!dec$ attributes alias:'_KMP_CALLOC'::kmp_calloc
!dec$ attributes alias:'_KMP_REALLOC'::kmp_realloc
!dec$ attributes alias:'_KMP_FREE'::kmp_free

!dec$ attributes alias:'_KMP_SET_WARNINGS_ON'::kmp_set_warnings_on
!dec$ attributes alias:'_KMP_SET_WARNINGS_OFF'::kmp_set_warnings_off

!dec$   endif
!dec$ endif

!dec$ if defined(__linux)

!***
!*** The Linux* OS entry points are in lowercase, with an underscore appended.
!***

!dec$ attributes alias:'omp_set_num_threads_'::omp_set_num_threads
!dec$ attributes alias:'omp_set_dynamic_'::omp_set_dynamic
!dec$ attributes alias:'omp_set_nested_'::omp_set_nested
!dec$ attributes alias:'omp_get_num_threads_'::omp_get_num_threads
!dec$ attributes alias:'omp_get_max_threads_'::omp_get_max_threads
!dec$ attributes alias:'omp_get_thread_num_'::omp_get_thread_num
!dec$ attributes alias:'omp_get_num_procs_'::omp_get_num_procs
!dec$ attributes alias:'omp_in_parallel_'::omp_in_parallel
!dec$ attributes alias:'omp_get_dynamic_'::omp_get_dynamic
!dec$ attributes alias:'omp_get_nested_'::omp_get_nested
!dec$ attributes alias:'omp_get_wtime_'::omp_get_wtime
!dec$ attributes alias:'omp_get_wtick_'::omp_get_wtick

!dec$ attributes alias:'omp_init_lock_'::omp_init_lock
!dec$ attributes alias:'omp_destroy_lock_'::omp_destroy_lock
!dec$ attributes alias:'omp_set_lock_'::omp_set_lock
!dec$ attributes alias:'omp_unset_lock_'::omp_unset_lock
!dec$ attributes alias:'omp_test_lock_'::omp_test_lock
!dec$ attributes alias:'omp_init_nest_lock_'::omp_init_nest_lock
!dec$ attributes alias:'omp_destroy_nest_lock_'::omp_destroy_nest_lock
!dec$ attributes alias:'omp_set_nest_lock_'::omp_set_nest_lock
!dec$ attributes alias:'omp_unset_nest_lock_'::omp_unset_nest_lock
!dec$ attributes alias:'omp_test_nest_lock_'::omp_test_nest_lock

!dec$ attributes alias:'kmp_set_stacksize_'::kmp_set_stacksize
!dec$ attributes alias:'kmp_set_stacksize_s_'::kmp_set_stacksize_s
!dec$ attributes alias:'kmp_set_blocktime_'::kmp_set_blocktime
!dec$ attributes alias:'kmp_set_library_serial_'::kmp_set_library_serial
!dec$ attributes alias:'kmp_set_library_turnaround_'::kmp_set_library_turnaround
!dec$ attributes alias:'kmp_set_library_throughput_'::kmp_set_library_throughput
!dec$ attributes alias:'kmp_set_library_'::kmp_set_library
!dec$ attributes alias:'kmp_set_defaults_'::kmp_set_defaults
!dec$ attributes alias:'kmp_get_stacksize_'::kmp_get_stacksize
!dec$ attributes alias:'kmp_get_stacksize_s_'::kmp_get_stacksize_s
!dec$ attributes alias:'kmp_get_blocktime_'::kmp_get_blocktime
!dec$ attributes alias:'kmp_get_library_'::kmp_get_library
!dec$ attributes alias:'kmp_malloc_'::kmp_malloc
!dec$ attributes alias:'kmp_calloc_'::kmp_calloc
!dec$ attributes alias:'kmp_realloc_'::kmp_realloc
!dec$ attributes alias:'kmp_free_'::kmp_free

!dec$ attributes alias:'kmp_set_warnings_on_'::kmp_set_warnings_on
!dec$ attributes alias:'kmp_set_warnings_off_'::kmp_set_warnings_off

!dec$ endif

!dec$ if defined(__APPLE__)

!***
!*** The Mac entry points are in lowercase, with an both an underscore
!*** appended and an underscore prepended.
!***

!dec$ attributes alias:'_omp_set_num_threads_'::omp_set_num_threads
!dec$ attributes alias:'_omp_set_dynamic_'::omp_set_dynamic
!dec$ attributes alias:'_omp_set_nested_'::omp_set_nested
!dec$ attributes alias:'_omp_get_num_threads_'::omp_get_num_threads
!dec$ attributes alias:'_omp_get_max_threads_'::omp_get_max_threads
!dec$ attributes alias:'_omp_get_thread_num_'::omp_get_thread_num
!dec$ attributes alias:'_omp_get_num_procs_'::omp_get_num_procs
!dec$ attributes alias:'_omp_in_parallel_'::omp_in_parallel
!dec$ attributes alias:'_omp_get_dynamic_'::omp_get_dynamic
!dec$ attributes alias:'_omp_get_nested_'::omp_get_nested
!dec$ attributes alias:'_omp_get_wtime_'::omp_get_wtime
!dec$ attributes alias:'_omp_get_wtick_'::omp_get_wtick

!dec$ attributes alias:'_omp_init_lock_'::omp_init_lock
!dec$ attributes alias:'_omp_destroy_lock_'::omp_destroy_lock
!dec$ attributes alias:'_omp_set_lock_'::omp_set_lock
!dec$ attributes alias:'_omp_unset_lock_'::omp_unset_lock
!dec$ attributes alias:'_omp_test_lock_'::omp_test_lock
!dec$ attributes alias:'_omp_init_nest_lock_'::omp_init_nest_lock
!dec$ attributes alias:'_omp_destroy_nest_lock_'::omp_destroy_nest_lock
!dec$ attributes alias:'_omp_set_nest_lock_'::omp_set_nest_lock
!dec$ attributes alias:'_omp_unset_nest_lock_'::omp_unset_nest_lock
!dec$ attributes alias:'_omp_test_nest_lock_'::omp_test_nest_lock

!dec$ attributes alias:'_kmp_set_stacksize_'::kmp_set_stacksize
!dec$ attributes alias:'_kmp_set_stacksize_s_'::kmp_set_stacksize_s
!dec$ attributes alias:'_kmp_set_blocktime_'::kmp_set_blocktime
!dec$ attributes alias:'_kmp_set_library_serial_'::kmp_set_library_serial
!dec$ attributes alias:'_kmp_set_library_turnaround_'::kmp_set_library_turnaround
!dec$ attributes alias:'_kmp_set_library_throughput_'::kmp_set_library_throughput
!dec$ attributes alias:'_kmp_set_library_'::kmp_set_library
!dec$ attributes alias:'_kmp_set_defaults_'::kmp_set_defaults
!dec$ attributes alias:'_kmp_get_stacksize_'::kmp_get_stacksize
!dec$ attributes alias:'_kmp_get_stacksize_s_'::kmp_get_stacksize_s
!dec$ attributes alias:'_kmp_get_blocktime_'::kmp_get_blocktime
!dec$ attributes alias:'_kmp_get_library_'::kmp_get_library
!dec$ attributes alias:'_kmp_malloc_'::kmp_malloc
!dec$ attributes alias:'_kmp_calloc_'::kmp_calloc
!dec$ attributes alias:'_kmp_realloc_'::kmp_realloc
!dec$ attributes alias:'_kmp_free_'::kmp_free

!dec$ attributes alias:'_kmp_set_warnings_on_'::kmp_set_warnings_on
!dec$ attributes alias:'_kmp_set_warnings_off_'::kmp_set_warnings_off

!dec$ endif


