OpenMP Modules OMP_LIB and OMP_LIB_KINDS (The GNU Fortran Compiler)

### 9.4 OpenMP Modules `OMP_LIB` and `OMP_LIB_KINDS` ¶

Standard:

  OpenMP Application Program Interface v4.5, OpenMP Application Program Interface v5.0, OpenMP Application Program Interface v5.1, OpenMP Application Program Interface v5.2, and OpenMP Application Program Interface v6.0 (partially supported).

The OpenMP Fortran runtime library routines are provided both in a form of two Fortran modules, named `OMP_LIB` and `OMP_LIB_KINDS`, and in a form of a Fortran `include` file named `omp_lib.h`. The procedures provided by `OMP_LIB` can be found in the Introduction in GNU Offloading and Multi Processing Runtime Library manual, the named constants defined in the modules are listed below.

For details refer to the actual OpenMP Application Program Interface v4.5, OpenMP Application Program Interface v5.0, OpenMP Application Program Interface v5.1 and OpenMP Application Program Interface v5.2. OpenMP Application Program Interface v6.0.

`OMP_LIB_KINDS` provides the following scalar default-integer named constants:

`omp_allocator_handle_kind`
`omp_alloctrait_key_kind`
`omp_alloctrait_val_kind`
`omp_depend_kind`
`omp_lock_kind`
`omp_lock_hint_kind`
`omp_nest_lock_kind`
`omp_pause_resource_kind`
`omp_memspace_handle_kind`
`omp_proc_bind_kind`
`omp_sched_kind`
`omp_sync_hint_kind`

`OMP_LIB` provides the scalar default-integer named constant `openmp_version` with a value of the form yyyymm, where `yyyy` is the year and mm the month of the OpenMP version; for OpenMP v5.2 the value is `202111`.

The following derived type:

`omp_alloctrait`

The following scalar default-integer named constants:

`omp_initial_device`
`omp_invalid_device`
`omp_default_device`

The following scalar integer named constants of the kind `omp_sched_kind`:

`omp_sched_static`
`omp_sched_dynamic`
`omp_sched_guided`
`omp_sched_auto`

And the following scalar integer named constants of the kind `omp_proc_bind_kind`:

`omp_proc_bind_false`
`omp_proc_bind_true`
`omp_proc_bind_primary`
`omp_proc_bind_master` (deprecated)
`omp_proc_bind_close`
`omp_proc_bind_spread`

The following scalar integer named constants are of the kind `omp_lock_hint_kind`:

`omp_lock_hint_none` (deprecated)
`omp_lock_hint_uncontended` (deprecated)
`omp_lock_hint_contended` (deprecated)
`omp_lock_hint_nonspeculative` (deprecated)
`omp_lock_hint_speculative` (deprecated)
`omp_sync_hint_none`
`omp_sync_hint_uncontended`
`omp_sync_hint_contended`
`omp_sync_hint_nonspeculative`
`omp_sync_hint_speculative`

And the following two scalar integer named constants are of the kind `omp_pause_resource_kind`:

`omp_pause_soft`
`omp_pause_hard`

The following scalar integer named constants are of the kind `omp_alloctrait_key_kind`:

`omp_atk_sync_hint`
`omp_atk_alignment`
`omp_atk_access`
`omp_atk_pool_size`
`omp_atk_fallback`
`omp_atk_fb_data`
`omp_atk_pinned`
`omp_atk_partition`

The following scalar integer named constants are of the kind `omp_alloctrait_val_kind`:

  `omp_alloctrait_key_kind`:

`omp_atv_default`
`omp_atv_false`
`omp_atv_true`
`omp_atv_contended`
`omp_atv_uncontended`
`omp_atv_serialized`
`omp_atv_sequential` (deprecated)
`omp_atv_private`
`omp_atv_all`
`omp_atv_thread`
`omp_atv_pteam`
`omp_atv_cgroup`
`omp_atv_default_mem_fb`
`omp_atv_null_fb`
`omp_atv_abort_fb`
`omp_atv_allocator_fb`
`omp_atv_environment`
`omp_atv_nearest`
`omp_atv_blocked`

The following scalar integer named constants are of the kind `omp_allocator_handle_kind`:

`omp_null_allocator`
`omp_default_mem_alloc`
`omp_large_cap_mem_alloc`
`omp_const_mem_alloc`
`omp_high_bw_mem_alloc`
`omp_low_lat_mem_alloc`
`omp_cgroup_mem_alloc`
`omp_pteam_mem_alloc`
`omp_thread_mem_alloc`

The following scalar integer named constants are of the kind `omp_memspace_handle_kind`:

`omp_default_mem_space`
`omp_large_cap_mem_space`
`omp_const_mem_space`
`omp_high_bw_mem_space`
`omp_low_lat_mem_space`