123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846 |
- ! Copyright (C) 2005-2022 Free Software Foundation, Inc.
- ! Contributed by Jakub Jelinek <jakub@redhat.com>.
- ! This file is part of the GNU Offloading and Multi Processing Library
- ! (libgomp).
- ! Libgomp is free software; you can redistribute it and/or modify it
- ! under the terms of the GNU General Public License as published by
- ! the Free Software Foundation; either version 3, or (at your option)
- ! any later version.
- ! Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
- ! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- ! FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- ! more details.
- ! Under Section 7 of GPL version 3, you are granted additional
- ! permissions described in the GCC Runtime Library Exception, version
- ! 3.1, as published by the Free Software Foundation.
- ! You should have received a copy of the GNU General Public License and
- ! a copy of the GCC Runtime Library Exception along with this program;
- ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
- ! <http://www.gnu.org/licenses/>.
- module omp_lib_kinds
- use iso_c_binding, only: c_int, c_intptr_t
- implicit none
- private :: c_int, c_intptr_t
- integer, parameter :: omp_lock_kind = @OMP_LOCK_KIND@
- integer, parameter :: omp_nest_lock_kind = @OMP_NEST_LOCK_KIND@
- integer, parameter :: omp_sched_kind = 4
- integer, parameter :: omp_proc_bind_kind = 4
- integer, parameter :: omp_sync_hint_kind = 4
- integer, parameter :: omp_lock_hint_kind = omp_sync_hint_kind
- integer, parameter :: omp_pause_resource_kind = 4
- integer, parameter :: omp_allocator_handle_kind = c_intptr_t
- integer, parameter :: omp_alloctrait_key_kind = c_int
- integer, parameter :: omp_alloctrait_val_kind = c_intptr_t
- integer, parameter :: omp_memspace_handle_kind = c_intptr_t
- integer, parameter :: omp_depend_kind = @OMP_DEPEND_KIND@
- integer, parameter :: omp_event_handle_kind = c_intptr_t
- integer (omp_sched_kind), parameter :: omp_sched_static = 1
- integer (omp_sched_kind), parameter :: omp_sched_dynamic = 2
- integer (omp_sched_kind), parameter :: omp_sched_guided = 3
- integer (omp_sched_kind), parameter :: omp_sched_auto = 4
- integer (omp_proc_bind_kind), &
- parameter :: omp_proc_bind_false = 0
- integer (omp_proc_bind_kind), &
- parameter :: omp_proc_bind_true = 1
- integer (omp_proc_bind_kind), &
- parameter :: omp_proc_bind_primary = 2
- integer (omp_proc_bind_kind), &
- parameter :: omp_proc_bind_master = 2
- integer (omp_proc_bind_kind), &
- parameter :: omp_proc_bind_close = 3
- integer (omp_proc_bind_kind), &
- parameter :: omp_proc_bind_spread = 4
- integer (omp_lock_hint_kind), &
- parameter :: omp_sync_hint_none = 0
- integer (omp_lock_hint_kind), &
- parameter :: omp_lock_hint_none = omp_sync_hint_none
- integer (omp_lock_hint_kind), &
- parameter :: omp_sync_hint_uncontended = 1
- integer (omp_lock_hint_kind), &
- parameter :: omp_lock_hint_uncontended &
- = omp_sync_hint_uncontended
- integer (omp_lock_hint_kind), &
- parameter :: omp_sync_hint_contended = 2
- integer (omp_lock_hint_kind), &
- parameter :: omp_lock_hint_contended &
- = omp_sync_hint_contended
- integer (omp_lock_hint_kind), &
- parameter :: omp_sync_hint_nonspeculative = 4
- integer (omp_lock_hint_kind), &
- parameter :: omp_lock_hint_nonspeculative &
- = omp_sync_hint_nonspeculative
- integer (omp_lock_hint_kind), &
- parameter :: omp_sync_hint_speculative = 8
- integer (omp_lock_hint_kind), &
- parameter :: omp_lock_hint_speculative &
- = omp_sync_hint_speculative
- integer (kind=omp_pause_resource_kind), &
- parameter :: omp_pause_soft = 1
- integer (kind=omp_pause_resource_kind), &
- parameter :: omp_pause_hard = 2
- integer (kind=omp_alloctrait_key_kind), &
- parameter :: omp_atk_sync_hint = 1
- integer (kind=omp_alloctrait_key_kind), &
- parameter :: omp_atk_alignment = 2
- integer (kind=omp_alloctrait_key_kind), &
- parameter :: omp_atk_access = 3
- integer (kind=omp_alloctrait_key_kind), &
- parameter :: omp_atk_pool_size = 4
- integer (kind=omp_alloctrait_key_kind), &
- parameter :: omp_atk_fallback = 5
- integer (kind=omp_alloctrait_key_kind), &
- parameter :: omp_atk_fb_data = 6
- integer (kind=omp_alloctrait_key_kind), &
- parameter :: omp_atk_pinned = 7
- integer (kind=omp_alloctrait_key_kind), &
- parameter :: omp_atk_partition = 8
- integer (kind=omp_alloctrait_val_kind), &
- parameter :: omp_atv_default = -1
- integer (kind=omp_alloctrait_val_kind), &
- parameter :: omp_atv_false = 0
- integer (kind=omp_alloctrait_val_kind), &
- parameter :: omp_atv_true = 1
- integer (kind=omp_alloctrait_val_kind), &
- parameter :: omp_atv_contended = 3
- integer (kind=omp_alloctrait_val_kind), &
- parameter :: omp_atv_uncontended = 4
- integer (kind=omp_alloctrait_val_kind), &
- parameter :: omp_atv_serialized = 5
- integer (kind=omp_alloctrait_val_kind), &
- parameter :: omp_atv_sequential = omp_atv_serialized
- integer (kind=omp_alloctrait_val_kind), &
- parameter :: omp_atv_private = 6
- integer (kind=omp_alloctrait_val_kind), &
- parameter :: omp_atv_all = 7
- integer (kind=omp_alloctrait_val_kind), &
- parameter :: omp_atv_thread = 8
- integer (kind=omp_alloctrait_val_kind), &
- parameter :: omp_atv_pteam = 9
- integer (kind=omp_alloctrait_val_kind), &
- parameter :: omp_atv_cgroup = 10
- integer (kind=omp_alloctrait_val_kind), &
- parameter :: omp_atv_default_mem_fb = 11
- integer (kind=omp_alloctrait_val_kind), &
- parameter :: omp_atv_null_fb = 12
- integer (kind=omp_alloctrait_val_kind), &
- parameter :: omp_atv_abort_fb = 13
- integer (kind=omp_alloctrait_val_kind), &
- parameter :: omp_atv_allocator_fb = 14
- integer (kind=omp_alloctrait_val_kind), &
- parameter :: omp_atv_environment = 15
- integer (kind=omp_alloctrait_val_kind), &
- parameter :: omp_atv_nearest = 16
- integer (kind=omp_alloctrait_val_kind), &
- parameter :: omp_atv_blocked = 17
- integer (kind=omp_alloctrait_val_kind), &
- parameter :: omp_atv_interleaved = 18
- integer (kind=omp_allocator_handle_kind), &
- parameter :: omp_null_allocator = 0
- integer (kind=omp_allocator_handle_kind), &
- parameter :: omp_default_mem_alloc = 1
- integer (kind=omp_allocator_handle_kind), &
- parameter :: omp_large_cap_mem_alloc = 2
- integer (kind=omp_allocator_handle_kind), &
- parameter :: omp_const_mem_alloc = 3
- integer (kind=omp_allocator_handle_kind), &
- parameter :: omp_high_bw_mem_alloc = 4
- integer (kind=omp_allocator_handle_kind), &
- parameter :: omp_low_lat_mem_alloc = 5
- integer (kind=omp_allocator_handle_kind), &
- parameter :: omp_cgroup_mem_alloc = 6
- integer (kind=omp_allocator_handle_kind), &
- parameter :: omp_pteam_mem_alloc = 7
- integer (kind=omp_allocator_handle_kind), &
- parameter :: omp_thread_mem_alloc = 8
- integer (omp_memspace_handle_kind), &
- parameter :: omp_default_mem_space = 0
- integer (omp_memspace_handle_kind), &
- parameter :: omp_large_cap_mem_space = 1
- integer (omp_memspace_handle_kind), &
- parameter :: omp_const_mem_space = 2
- integer (omp_memspace_handle_kind), &
- parameter :: omp_high_bw_mem_space = 3
- integer (omp_memspace_handle_kind), &
- parameter :: omp_low_lat_mem_space = 4
- type omp_alloctrait
- integer (kind=omp_alloctrait_key_kind) key
- integer (kind=omp_alloctrait_val_kind) value
- end type omp_alloctrait
- end module
- module omp_lib
- use omp_lib_kinds
- implicit none
- integer, parameter :: openmp_version = 201511
- interface
- subroutine omp_init_lock (svar)
- use omp_lib_kinds
- integer (omp_lock_kind), intent (out) :: svar
- end subroutine omp_init_lock
- end interface
- interface
- subroutine omp_init_lock_with_hint (svar, hint)
- use omp_lib_kinds
- integer (omp_lock_kind), intent (out) :: svar
- integer (omp_lock_hint_kind), intent (in) :: hint
- end subroutine omp_init_lock_with_hint
- end interface
- interface
- subroutine omp_init_nest_lock (nvar)
- use omp_lib_kinds
- integer (omp_nest_lock_kind), intent (out) :: nvar
- end subroutine omp_init_nest_lock
- end interface
- interface
- subroutine omp_init_nest_lock_with_hint (nvar, hint)
- use omp_lib_kinds
- integer (omp_nest_lock_kind), intent (out) :: nvar
- integer (omp_lock_hint_kind), intent (in) :: hint
- end subroutine omp_init_nest_lock_with_hint
- end interface
- interface
- subroutine omp_destroy_lock (svar)
- use omp_lib_kinds
- integer (omp_lock_kind), intent (inout) :: svar
- end subroutine omp_destroy_lock
- end interface
- interface
- subroutine omp_destroy_nest_lock (nvar)
- use omp_lib_kinds
- integer (omp_nest_lock_kind), intent (inout) :: nvar
- end subroutine omp_destroy_nest_lock
- end interface
- interface
- subroutine omp_set_lock (svar)
- use omp_lib_kinds
- integer (omp_lock_kind), intent (inout) :: svar
- end subroutine omp_set_lock
- end interface
- interface
- subroutine omp_set_nest_lock (nvar)
- use omp_lib_kinds
- integer (omp_nest_lock_kind), intent (inout) :: nvar
- end subroutine omp_set_nest_lock
- end interface
- interface
- subroutine omp_unset_lock (svar)
- use omp_lib_kinds
- integer (omp_lock_kind), intent (inout) :: svar
- end subroutine omp_unset_lock
- end interface
- interface
- subroutine omp_unset_nest_lock (nvar)
- use omp_lib_kinds
- integer (omp_nest_lock_kind), intent (inout) :: nvar
- end subroutine omp_unset_nest_lock
- end interface
- interface omp_set_dynamic
- subroutine omp_set_dynamic (dynamic_threads)
- logical (4), intent (in) :: dynamic_threads
- end subroutine omp_set_dynamic
- subroutine omp_set_dynamic_8 (dynamic_threads)
- logical (8), intent (in) :: dynamic_threads
- end subroutine omp_set_dynamic_8
- end interface
- interface omp_set_nested
- subroutine omp_set_nested (nested)
- logical (4), intent (in) :: nested
- end subroutine omp_set_nested
- subroutine omp_set_nested_8 (nested)
- logical (8), intent (in) :: nested
- end subroutine omp_set_nested_8
- end interface
- interface omp_set_num_threads
- subroutine omp_set_num_threads (num_threads)
- integer (4), intent (in) :: num_threads
- end subroutine omp_set_num_threads
- subroutine omp_set_num_threads_8 (num_threads)
- integer (8), intent (in) :: num_threads
- end subroutine omp_set_num_threads_8
- end interface
- interface
- function omp_get_dynamic ()
- logical (4) :: omp_get_dynamic
- end function omp_get_dynamic
- end interface
- interface
- function omp_get_nested ()
- logical (4) :: omp_get_nested
- end function omp_get_nested
- end interface
- interface
- function omp_in_parallel ()
- logical (4) :: omp_in_parallel
- end function omp_in_parallel
- end interface
- interface
- function omp_test_lock (svar)
- use omp_lib_kinds
- logical (4) :: omp_test_lock
- integer (omp_lock_kind), intent (inout) :: svar
- end function omp_test_lock
- end interface
- interface
- function omp_get_max_threads ()
- integer (4) :: omp_get_max_threads
- end function omp_get_max_threads
- end interface
- interface
- function omp_get_num_procs ()
- integer (4) :: omp_get_num_procs
- end function omp_get_num_procs
- end interface
- interface
- function omp_get_num_threads ()
- integer (4) :: omp_get_num_threads
- end function omp_get_num_threads
- end interface
- interface
- function omp_get_thread_num ()
- integer (4) :: omp_get_thread_num
- end function omp_get_thread_num
- end interface
- interface
- function omp_test_nest_lock (nvar)
- use omp_lib_kinds
- integer (4) :: omp_test_nest_lock
- integer (omp_nest_lock_kind), intent (inout) :: nvar
- end function omp_test_nest_lock
- end interface
- interface
- function omp_get_wtick ()
- double precision :: omp_get_wtick
- end function omp_get_wtick
- end interface
- interface
- function omp_get_wtime ()
- double precision :: omp_get_wtime
- end function omp_get_wtime
- end interface
- interface omp_set_schedule
- subroutine omp_set_schedule (kind, chunk_size)
- use omp_lib_kinds
- integer (omp_sched_kind), intent (in) :: kind
- integer (4), intent (in) :: chunk_size
- end subroutine omp_set_schedule
- subroutine omp_set_schedule_8 (kind, chunk_size)
- use omp_lib_kinds
- integer (omp_sched_kind), intent (in) :: kind
- integer (8), intent (in) :: chunk_size
- end subroutine omp_set_schedule_8
- end interface
- interface omp_get_schedule
- subroutine omp_get_schedule (kind, chunk_size)
- use omp_lib_kinds
- integer (omp_sched_kind), intent (out) :: kind
- integer (4), intent (out) :: chunk_size
- end subroutine omp_get_schedule
- subroutine omp_get_schedule_8 (kind, chunk_size)
- use omp_lib_kinds
- integer (omp_sched_kind), intent (out) :: kind
- integer (8), intent (out) :: chunk_size
- end subroutine omp_get_schedule_8
- end interface
- interface
- function omp_get_thread_limit ()
- integer (4) :: omp_get_thread_limit
- end function omp_get_thread_limit
- end interface
- interface omp_set_max_active_levels
- subroutine omp_set_max_active_levels (max_levels)
- integer (4), intent (in) :: max_levels
- end subroutine omp_set_max_active_levels
- subroutine omp_set_max_active_levels_8 (max_levels)
- integer (8), intent (in) :: max_levels
- end subroutine omp_set_max_active_levels_8
- end interface
- interface
- function omp_get_max_active_levels ()
- integer (4) :: omp_get_max_active_levels
- end function omp_get_max_active_levels
- end interface
- interface
- function omp_get_supported_active_levels ()
- integer (4) :: omp_get_supported_active_levels
- end function omp_get_supported_active_levels
- end interface
- interface
- function omp_get_level ()
- integer (4) :: omp_get_level
- end function omp_get_level
- end interface
- interface omp_get_ancestor_thread_num
- function omp_get_ancestor_thread_num (level)
- integer (4), intent (in) :: level
- integer (4) :: omp_get_ancestor_thread_num
- end function omp_get_ancestor_thread_num
- function omp_get_ancestor_thread_num_8 (level)
- integer (8), intent (in) :: level
- integer (4) :: omp_get_ancestor_thread_num_8
- end function omp_get_ancestor_thread_num_8
- end interface
- interface omp_get_team_size
- function omp_get_team_size (level)
- integer (4), intent (in) :: level
- integer (4) :: omp_get_team_size
- end function omp_get_team_size
- function omp_get_team_size_8 (level)
- integer (8), intent (in) :: level
- integer (4) :: omp_get_team_size_8
- end function omp_get_team_size_8
- end interface
- interface
- function omp_get_active_level ()
- integer (4) :: omp_get_active_level
- end function omp_get_active_level
- end interface
- interface
- function omp_in_final ()
- logical (4) :: omp_in_final
- end function omp_in_final
- end interface
- interface
- function omp_get_cancellation ()
- logical (4) :: omp_get_cancellation
- end function omp_get_cancellation
- end interface
- interface
- function omp_get_proc_bind ()
- use omp_lib_kinds
- integer (omp_proc_bind_kind) :: omp_get_proc_bind
- end function omp_get_proc_bind
- end interface
- interface
- function omp_get_num_places ()
- integer (4) :: omp_get_num_places
- end function omp_get_num_places
- end interface
- interface omp_get_place_num_procs
- function omp_get_place_num_procs (place_num)
- integer (4), intent(in) :: place_num
- integer (4) :: omp_get_place_num_procs
- end function omp_get_place_num_procs
- function omp_get_place_num_procs_8 (place_num)
- integer (8), intent(in) :: place_num
- integer (4) :: omp_get_place_num_procs_8
- end function omp_get_place_num_procs_8
- end interface
- interface omp_get_place_proc_ids
- subroutine omp_get_place_proc_ids (place_num, ids)
- integer (4), intent(in) :: place_num
- integer (4), intent(out) :: ids(*)
- end subroutine omp_get_place_proc_ids
- subroutine omp_get_place_proc_ids_8 (place_num, ids)
- integer (8), intent(in) :: place_num
- integer (8), intent(out) :: ids(*)
- end subroutine omp_get_place_proc_ids_8
- end interface
- interface
- function omp_get_place_num ()
- integer (4) :: omp_get_place_num
- end function omp_get_place_num
- end interface
- interface
- function omp_get_partition_num_places ()
- integer (4) :: omp_get_partition_num_places
- end function omp_get_partition_num_places
- end interface
- interface omp_get_partition_place_nums
- subroutine omp_get_partition_place_nums (place_nums)
- integer (4), intent(out) :: place_nums(*)
- end subroutine omp_get_partition_place_nums
- subroutine omp_get_partition_place_nums_8 (place_nums)
- integer (8), intent(out) :: place_nums(*)
- end subroutine omp_get_partition_place_nums_8
- end interface
- interface omp_set_default_device
- subroutine omp_set_default_device (device_num)
- integer (4), intent (in) :: device_num
- end subroutine omp_set_default_device
- subroutine omp_set_default_device_8 (device_num)
- integer (8), intent (in) :: device_num
- end subroutine omp_set_default_device_8
- end interface
- interface
- function omp_get_default_device ()
- integer (4) :: omp_get_default_device
- end function omp_get_default_device
- end interface
- interface
- function omp_get_num_devices ()
- integer (4) :: omp_get_num_devices
- end function omp_get_num_devices
- end interface
- interface
- function omp_get_num_teams ()
- integer (4) :: omp_get_num_teams
- end function omp_get_num_teams
- end interface
- interface
- function omp_get_team_num ()
- integer (4) :: omp_get_team_num
- end function omp_get_team_num
- end interface
- interface
- function omp_is_initial_device ()
- logical (4) :: omp_is_initial_device
- end function omp_is_initial_device
- end interface
- interface
- function omp_get_initial_device ()
- integer (4) :: omp_get_initial_device
- end function omp_get_initial_device
- end interface
- interface
- function omp_get_device_num ()
- integer (4) :: omp_get_device_num
- end function omp_get_device_num
- end interface
- interface
- function omp_get_max_task_priority ()
- integer (4) :: omp_get_max_task_priority
- end function omp_get_max_task_priority
- end interface
- interface omp_set_num_teams
- subroutine omp_set_num_teams (num_teams)
- integer (4), intent (in) :: num_teams
- end subroutine omp_set_num_teams
- subroutine omp_set_num_teams_8 (num_teams)
- integer (8), intent (in) :: num_teams
- end subroutine omp_set_num_teams_8
- end interface
- interface
- function omp_get_max_teams ()
- integer (4) :: omp_get_max_teams
- end function omp_get_max_teams
- end interface
- interface omp_set_teams_thread_limit
- subroutine omp_set_teams_thread_limit (thread_limit)
- integer (4), intent (in) :: thread_limit
- end subroutine omp_set_teams_thread_limit
- subroutine omp_set_teams_thread_limit_8 (thread_limit)
- integer (8), intent (in) :: thread_limit
- end subroutine omp_set_teams_thread_limit_8
- end interface
- interface
- function omp_get_teams_thread_limit ()
- integer (4) :: omp_get_teams_thread_limit
- end function omp_get_teams_thread_limit
- end interface
- interface
- subroutine omp_fulfill_event (event)
- use omp_lib_kinds
- integer (kind=omp_event_handle_kind), &
- value, intent(in) :: event
- end subroutine omp_fulfill_event
- end interface
- interface
- subroutine omp_set_affinity_format (format)
- character(len=*), intent(in) :: format
- end subroutine omp_set_affinity_format
- end interface
- interface
- function omp_get_affinity_format (buffer)
- integer (4) :: omp_get_affinity_format
- character(len=*), intent(out) :: buffer
- end function omp_get_affinity_format
- end interface
- interface
- subroutine omp_display_affinity (format)
- character(len=*), intent(in) :: format
- end subroutine omp_display_affinity
- end interface
- interface
- function omp_capture_affinity (buffer, format)
- integer (4) :: omp_capture_affinity
- character(len=*), intent(out) :: buffer
- character(len=*), intent(in) :: format
- end function omp_capture_affinity
- end interface
- interface
- function omp_pause_resource (kind, device_num)
- use omp_lib_kinds
- integer (4) :: omp_pause_resource
- integer (kind=omp_pause_resource_kind), &
- intent(in) :: kind
- integer (4) :: device_num
- end function
- end interface
- interface
- function omp_pause_resource_all (kind)
- use omp_lib_kinds
- integer (4) :: omp_pause_resource_all
- integer (kind=omp_pause_resource_kind), &
- intent(in) :: kind
- end function
- end interface
- interface omp_init_allocator
- function omp_init_allocator (memspace, ntraits, traits)
- use omp_lib_kinds
- integer (kind=omp_allocator_handle_kind) omp_init_allocator
- integer (kind=omp_memspace_handle_kind), &
- intent(in) :: memspace
- integer (4), intent(in) :: ntraits
- type (omp_alloctrait), intent(in) :: traits(*)
- end function
- function omp_init_allocator_8 (memspace, ntraits, traits)
- use omp_lib_kinds
- integer (kind=omp_allocator_handle_kind) omp_init_allocator_8
- integer (kind=omp_memspace_handle_kind), &
- intent(in) :: memspace
- integer (8), intent(in) :: ntraits
- type (omp_alloctrait), intent(in) :: traits(*)
- end function
- end interface
- interface
- subroutine omp_destroy_allocator (allocator)
- use omp_lib_kinds
- integer (kind=omp_allocator_handle_kind), &
- intent(in) :: allocator
- end subroutine
- end interface
- interface
- subroutine omp_set_default_allocator (allocator)
- use omp_lib_kinds
- integer (kind=omp_allocator_handle_kind), &
- intent(in) :: allocator
- end subroutine
- end interface
- interface
- function omp_get_default_allocator ()
- use omp_lib_kinds
- integer (kind=omp_allocator_handle_kind) &
- omp_get_default_allocator
- end function
- end interface
- interface omp_display_env
- subroutine omp_display_env (verbose)
- logical (4),intent (in) :: verbose
- end subroutine omp_display_env
- subroutine omp_display_env_8 (verbose)
- logical (8),intent (in) :: verbose
- end subroutine omp_display_env_8
- end interface
- interface
- function omp_alloc (size, allocator) bind(c)
- use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
- import :: omp_allocator_handle_kind
- type(c_ptr) :: omp_alloc
- integer(c_size_t), value :: size
- integer(omp_allocator_handle_kind), value :: allocator
- end function omp_alloc
- end interface
- interface
- function omp_aligned_alloc (alignment, size, allocator) bind(c)
- use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
- import :: omp_allocator_handle_kind
- type(c_ptr) :: omp_aligned_alloc
- integer(c_size_t), value :: alignment, size
- integer(omp_allocator_handle_kind), value :: allocator
- end function omp_aligned_alloc
- end interface
- interface
- subroutine omp_free(ptr, allocator) bind(c)
- use, intrinsic :: iso_c_binding, only : c_ptr
- import :: omp_allocator_handle_kind
- type(c_ptr), value :: ptr
- integer(omp_allocator_handle_kind), value :: allocator
- end subroutine omp_free
- end interface
- interface
- function omp_calloc (nmemb, size, allocator) bind(c)
- use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
- import :: omp_allocator_handle_kind
- type(c_ptr) :: omp_calloc
- integer(c_size_t), value :: nmemb, size
- integer(omp_allocator_handle_kind), value :: allocator
- end function omp_calloc
- end interface
- interface
- function omp_aligned_calloc (alignment, nmemb, size, allocator) bind(c)
- use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
- import :: omp_allocator_handle_kind
- type(c_ptr) :: omp_aligned_calloc
- integer(c_size_t), value :: alignment, nmemb, size
- integer(omp_allocator_handle_kind), value :: allocator
- end function omp_aligned_calloc
- end interface
- interface
- function omp_realloc (ptr, size, allocator, free_allocator) bind(c)
- use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
- import :: omp_allocator_handle_kind
- type(c_ptr) :: omp_realloc
- type(c_ptr), value :: ptr
- integer(c_size_t), value :: size
- integer(omp_allocator_handle_kind), value :: allocator, free_allocator
- end function omp_realloc
- end interface
- interface
- function omp_target_alloc (size, device_num) bind(c)
- use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t, c_int
- type(c_ptr) :: omp_target_alloc
- integer(c_size_t), value :: size
- integer(c_int), value :: device_num
- end function omp_target_alloc
- end interface
- interface
- subroutine omp_target_free (device_ptr, device_num) bind(c)
- use, intrinsic :: iso_c_binding, only : c_ptr, c_int
- type(c_ptr), value :: device_ptr
- integer(c_int), value :: device_num
- end subroutine omp_target_free
- end interface
- interface
- function omp_target_is_present (ptr, device_num) bind(c)
- use, intrinsic :: iso_c_binding, only : c_ptr, c_int
- integer(c_int) :: omp_target_is_present
- type(c_ptr), value :: ptr
- integer(c_int), value :: device_num
- end function omp_target_is_present
- end interface
- interface
- function omp_target_memcpy (dst, src, length, dst_offset, &
- src_offset, dst_device_num, &
- src_device_num) bind(c)
- use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
- integer(c_int) :: omp_target_memcpy
- type(c_ptr), value :: dst, src
- integer(c_size_t), value :: length, dst_offset, src_offset
- integer(c_int), value :: dst_device_num, src_device_num
- end function omp_target_memcpy
- end interface
- interface
- function omp_target_memcpy_rect (dst,src,element_size, num_dims, &
- volume, dst_offsets, src_offsets, &
- dst_dimensions, src_dimensions, &
- dst_device_num, src_device_num) &
- bind(c)
- use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
- integer(c_int) :: omp_target_memcpy_rect
- type(c_ptr), value :: dst, src
- integer(c_size_t), value :: element_size
- integer(c_int), value :: num_dims, dst_device_num, src_device_num
- integer(c_size_t), intent(in) :: volume(*), dst_offsets(*), &
- src_offsets(*), dst_dimensions(*), &
- src_dimensions(*)
- end function omp_target_memcpy_rect
- end interface
- interface
- function omp_target_associate_ptr (host_ptr, device_ptr, size, &
- device_offset, device_num) bind(c)
- use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t, c_int
- integer(c_int) :: omp_target_associate_ptr
- type(c_ptr), value :: host_ptr, device_ptr
- integer(c_size_t), value :: size, device_offset
- integer(c_int), value :: device_num
- end function omp_target_associate_ptr
- end interface
- interface
- function omp_target_disassociate_ptr (ptr, device_num) bind(c)
- use, intrinsic :: iso_c_binding, only : c_ptr, c_int
- integer(c_int) :: omp_target_disassociate_ptr
- type(c_ptr), value :: ptr
- integer(c_int), value :: device_num
- end function omp_target_disassociate_ptr
- end interface
- #if _OPENMP >= 201811
- !GCC$ ATTRIBUTES DEPRECATED :: omp_get_nested, omp_set_nested
- #endif
- #if _OPENMP >= 202011
- !GCC$ ATTRIBUTES DEPRECATED :: omp_proc_bind_master, omp_atv_sequential
- #endif
- end module omp_lib
|