From ca701ff8851a12d18a617f988f0d5fd7059a4805 Mon Sep 17 00:00:00 2001 From: monoatamd Date: Fri, 4 Nov 2022 12:31:37 +0100 Subject: [PATCH 01/33] resolved minor errors in forked repo --- runtime/gpufortrt/include/gpufortrt_api.h | 22 +- runtime/gpufortrt/src/gpufortrt_api.cpp | 43 +- runtime/gpufortrt/src/gpufortrt_api.f90 | 22608 ++++++++++++++++ .../src/internal/queue_record_list_t.cpp | 10 +- .../gpufortrt/src/internal/queue_record_t.cpp | 2 +- 5 files changed, 22666 insertions(+), 19 deletions(-) create mode 100644 runtime/gpufortrt/src/gpufortrt_api.f90 diff --git a/runtime/gpufortrt/include/gpufortrt_api.h b/runtime/gpufortrt/include/gpufortrt_api.h index 81bd6d32..0dbfaab1 100644 --- a/runtime/gpufortrt/include/gpufortrt_api.h +++ b/runtime/gpufortrt/include/gpufortrt_api.h @@ -5,17 +5,21 @@ #ifdef __cplusplus extern "C" { #endif + typedef char const* gpufortrt_device_t; int gpufortrt_get_num_devices(); - void gpufortrt_set_device_num(int dev_num); - int gpufortrt_get_device_num(); - + void gpufortrt_set_device_num(int dev_num, gpufortrt_device_t dev_type = "AMD"); + int gpufortrt_get_device_num(gpufortrt_device_t dev_type = "AMD"); + // Explicit Fortran interfaces that assume device number starts from 1 + void gpufortrt_set_device_num_f(int dev_num, gpufortrt_device_t dev_type = "AMD"); + int gpufortrt_get_device_num_f(gpufortrt_device_t dev_type = "AMD"); + #ifdef notNecessary size_t gpufortrt_get_property(int dev_num, gpufortrt_device_property_t property); const char* gpufortrt_get_property_string(int dev_num, gpufortrt_device_property_t property); - + #endif void gpufortrt_init(); void gpufortrt_shutdown(); @@ -105,6 +109,16 @@ extern "C" { int async_arg, bool never_deallocate); +// Same as copyin? + void* gpufortrt_copy( + void* hostptr, + std::size_t num_bytes, + bool never_deallocate); + void gpufortrt_copy_async( + void* hostptr, + std::size_t num_bytes, + int async_arg, + bool never_deallocate); // other runtime calls void gpufortrt_update_self( diff --git a/runtime/gpufortrt/src/gpufortrt_api.cpp b/runtime/gpufortrt/src/gpufortrt_api.cpp index c7dc4fef..86aa36ca 100644 --- a/runtime/gpufortrt/src/gpufortrt_api.cpp +++ b/runtime/gpufortrt/src/gpufortrt_api.cpp @@ -27,7 +27,7 @@ int gpufortrt_get_device_num(gpufortrt_device_t dev_type) { HIP_CHECK(hipGetDevice(&dev_num)) return dev_num; } - +#ifdef notNecessary size_t gpufortrt_get_property(int dev_num, gpufortrt_device_property_t property) { switch ( property ) { @@ -60,13 +60,6 @@ char* gpufortrt_get_property_string(int dev_num, throw std::invalid_argument("gpufortrt_get_property_string: not implemented"); // TODO implement } -// Explicit Fortran interfaces that assume device number starts from 1 -void gpufortrt_set_device_num_f(int dev_num, gpufortrt_device_t dev_type) { - gpufortrt_set_device_num(dev_num-1,dev_type); -} -int gpufortrt_get_device_num_f(gpufortrt_device_t dev_type) { - return gpufortrt_get_device_num(dev_type)+1; -} size_t gpufortrt_get_property_f(int dev_num, gpufortrt_device_property_t property) { return gpufortrt_get_property(dev_num-1,property); @@ -76,6 +69,14 @@ char* gpufortrt_get_property_string_f(int dev_num, gpufortrt_device_property_t property) { return gpufortrt_get_property_string(dev_num-1,property); } +#endif +// Explicit Fortran interfaces that assume device number starts from 1 +void gpufortrt_set_device_num_f(int dev_num, gpufortrt_device_t dev_type) { + gpufortrt_set_device_num(dev_num-1,dev_type); +} +int gpufortrt_get_device_num_f(gpufortrt_device_t dev_type) { + return gpufortrt_get_device_num(dev_type)+1; +} void gpufortrt_mapping_init( gpufortrt_mapping_t* mapping, @@ -516,6 +517,29 @@ void gpufortrt_copyin_async(void* hostptr,std::size_t num_bytes,int async_arg,bo blocking, async_val); } +// Same as copyin? +void* gpufortrt_copy(void* hostptr,std::size_t num_bytes,bool never_deallocate) { + return ::create_increment_action( + gpufortrt_counter_dynamic, + hostptr, + num_bytes, + gpufortrt_map_kind_copyin, + never_deallocate, + true,/*blocking*/ + gpufortrt_async_noval); +} +void gpufortrt_copy_async(void* hostptr,std::size_t num_bytes,int async_arg,bool never_deallocate) { + bool blocking; int async_val; + std::tie(blocking,async_val) = gpufortrt::internal::check_async_arg(async_arg); + create_increment_action( + gpufortrt_counter_dynamic, + hostptr, + num_bytes, + gpufortrt_map_kind_copyin, + never_deallocate, + blocking, + async_val); +} namespace { template @@ -647,13 +671,14 @@ int gpufortrt_async_test_device(int wait_arg, int dev_num) { } int gpufortrt_async_test_all() { - for (size_t i = 0; i < queue_record_list.size(); i++) { + for (size_t i = 0; i < gpufortrt::internal::queue_record_list.records.size(); i++) { auto& queue = gpufortrt::internal::queue_record_list[i].queue; HIP_CHECK(hipStreamQuery(queue))// TODO backend specific, externalize } } int gpufortrt_async_test_all_device(int dev_num) { + const int current_device_num = gpufortrt_get_device_num(); gpufortrt_set_device_num(dev_num); int result = gpufortrt_async_test(dev_num); gpufortrt_set_device_num(current_device_num); diff --git a/runtime/gpufortrt/src/gpufortrt_api.f90 b/runtime/gpufortrt/src/gpufortrt_api.f90 new file mode 100644 index 00000000..a48e48c5 --- /dev/null +++ b/runtime/gpufortrt/src/gpufortrt_api.f90 @@ -0,0 +1,22608 @@ +! SPDX-License-Identifier: MIT +! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. +module gpufortrt_api + use gpufortrt_api_core + interface gpufortrt_map_present + module procedure :: gpufortrt_map_present_b + module procedure :: gpufortrt_map_present0_l1 + module procedure :: gpufortrt_map_present1_l1 + module procedure :: gpufortrt_map_present2_l1 + module procedure :: gpufortrt_map_present3_l1 + module procedure :: gpufortrt_map_present4_l1 + module procedure :: gpufortrt_map_present5_l1 + module procedure :: gpufortrt_map_present6_l1 + module procedure :: gpufortrt_map_present7_l1 + module procedure :: gpufortrt_map_present0_l4 + module procedure :: gpufortrt_map_present1_l4 + module procedure :: gpufortrt_map_present2_l4 + module procedure :: gpufortrt_map_present3_l4 + module procedure :: gpufortrt_map_present4_l4 + module procedure :: gpufortrt_map_present5_l4 + module procedure :: gpufortrt_map_present6_l4 + module procedure :: gpufortrt_map_present7_l4 + module procedure :: gpufortrt_map_present0_ch1 + module procedure :: gpufortrt_map_present1_ch1 + module procedure :: gpufortrt_map_present2_ch1 + module procedure :: gpufortrt_map_present3_ch1 + module procedure :: gpufortrt_map_present4_ch1 + module procedure :: gpufortrt_map_present5_ch1 + module procedure :: gpufortrt_map_present6_ch1 + module procedure :: gpufortrt_map_present7_ch1 + module procedure :: gpufortrt_map_present0_i1 + module procedure :: gpufortrt_map_present1_i1 + module procedure :: gpufortrt_map_present2_i1 + module procedure :: gpufortrt_map_present3_i1 + module procedure :: gpufortrt_map_present4_i1 + module procedure :: gpufortrt_map_present5_i1 + module procedure :: gpufortrt_map_present6_i1 + module procedure :: gpufortrt_map_present7_i1 + module procedure :: gpufortrt_map_present0_i2 + module procedure :: gpufortrt_map_present1_i2 + module procedure :: gpufortrt_map_present2_i2 + module procedure :: gpufortrt_map_present3_i2 + module procedure :: gpufortrt_map_present4_i2 + module procedure :: gpufortrt_map_present5_i2 + module procedure :: gpufortrt_map_present6_i2 + module procedure :: gpufortrt_map_present7_i2 + module procedure :: gpufortrt_map_present0_i4 + module procedure :: gpufortrt_map_present1_i4 + module procedure :: gpufortrt_map_present2_i4 + module procedure :: gpufortrt_map_present3_i4 + module procedure :: gpufortrt_map_present4_i4 + module procedure :: gpufortrt_map_present5_i4 + module procedure :: gpufortrt_map_present6_i4 + module procedure :: gpufortrt_map_present7_i4 + module procedure :: gpufortrt_map_present0_i8 + module procedure :: gpufortrt_map_present1_i8 + module procedure :: gpufortrt_map_present2_i8 + module procedure :: gpufortrt_map_present3_i8 + module procedure :: gpufortrt_map_present4_i8 + module procedure :: gpufortrt_map_present5_i8 + module procedure :: gpufortrt_map_present6_i8 + module procedure :: gpufortrt_map_present7_i8 + module procedure :: gpufortrt_map_present0_r4 + module procedure :: gpufortrt_map_present1_r4 + module procedure :: gpufortrt_map_present2_r4 + module procedure :: gpufortrt_map_present3_r4 + module procedure :: gpufortrt_map_present4_r4 + module procedure :: gpufortrt_map_present5_r4 + module procedure :: gpufortrt_map_present6_r4 + module procedure :: gpufortrt_map_present7_r4 + module procedure :: gpufortrt_map_present0_r8 + module procedure :: gpufortrt_map_present1_r8 + module procedure :: gpufortrt_map_present2_r8 + module procedure :: gpufortrt_map_present3_r8 + module procedure :: gpufortrt_map_present4_r8 + module procedure :: gpufortrt_map_present5_r8 + module procedure :: gpufortrt_map_present6_r8 + module procedure :: gpufortrt_map_present7_r8 + module procedure :: gpufortrt_map_present0_c4 + module procedure :: gpufortrt_map_present1_c4 + module procedure :: gpufortrt_map_present2_c4 + module procedure :: gpufortrt_map_present3_c4 + module procedure :: gpufortrt_map_present4_c4 + module procedure :: gpufortrt_map_present5_c4 + module procedure :: gpufortrt_map_present6_c4 + module procedure :: gpufortrt_map_present7_c4 + module procedure :: gpufortrt_map_present0_c8 + module procedure :: gpufortrt_map_present1_c8 + module procedure :: gpufortrt_map_present2_c8 + module procedure :: gpufortrt_map_present3_c8 + module procedure :: gpufortrt_map_present4_c8 + module procedure :: gpufortrt_map_present5_c8 + module procedure :: gpufortrt_map_present6_c8 + module procedure :: gpufortrt_map_present7_c8 + end interface + + interface gpufortrt_map_no_create + module procedure :: gpufortrt_map_no_create_b + module procedure :: gpufortrt_map_no_create0_l1 + module procedure :: gpufortrt_map_no_create1_l1 + module procedure :: gpufortrt_map_no_create2_l1 + module procedure :: gpufortrt_map_no_create3_l1 + module procedure :: gpufortrt_map_no_create4_l1 + module procedure :: gpufortrt_map_no_create5_l1 + module procedure :: gpufortrt_map_no_create6_l1 + module procedure :: gpufortrt_map_no_create7_l1 + module procedure :: gpufortrt_map_no_create0_l4 + module procedure :: gpufortrt_map_no_create1_l4 + module procedure :: gpufortrt_map_no_create2_l4 + module procedure :: gpufortrt_map_no_create3_l4 + module procedure :: gpufortrt_map_no_create4_l4 + module procedure :: gpufortrt_map_no_create5_l4 + module procedure :: gpufortrt_map_no_create6_l4 + module procedure :: gpufortrt_map_no_create7_l4 + module procedure :: gpufortrt_map_no_create0_ch1 + module procedure :: gpufortrt_map_no_create1_ch1 + module procedure :: gpufortrt_map_no_create2_ch1 + module procedure :: gpufortrt_map_no_create3_ch1 + module procedure :: gpufortrt_map_no_create4_ch1 + module procedure :: gpufortrt_map_no_create5_ch1 + module procedure :: gpufortrt_map_no_create6_ch1 + module procedure :: gpufortrt_map_no_create7_ch1 + module procedure :: gpufortrt_map_no_create0_i1 + module procedure :: gpufortrt_map_no_create1_i1 + module procedure :: gpufortrt_map_no_create2_i1 + module procedure :: gpufortrt_map_no_create3_i1 + module procedure :: gpufortrt_map_no_create4_i1 + module procedure :: gpufortrt_map_no_create5_i1 + module procedure :: gpufortrt_map_no_create6_i1 + module procedure :: gpufortrt_map_no_create7_i1 + module procedure :: gpufortrt_map_no_create0_i2 + module procedure :: gpufortrt_map_no_create1_i2 + module procedure :: gpufortrt_map_no_create2_i2 + module procedure :: gpufortrt_map_no_create3_i2 + module procedure :: gpufortrt_map_no_create4_i2 + module procedure :: gpufortrt_map_no_create5_i2 + module procedure :: gpufortrt_map_no_create6_i2 + module procedure :: gpufortrt_map_no_create7_i2 + module procedure :: gpufortrt_map_no_create0_i4 + module procedure :: gpufortrt_map_no_create1_i4 + module procedure :: gpufortrt_map_no_create2_i4 + module procedure :: gpufortrt_map_no_create3_i4 + module procedure :: gpufortrt_map_no_create4_i4 + module procedure :: gpufortrt_map_no_create5_i4 + module procedure :: gpufortrt_map_no_create6_i4 + module procedure :: gpufortrt_map_no_create7_i4 + module procedure :: gpufortrt_map_no_create0_i8 + module procedure :: gpufortrt_map_no_create1_i8 + module procedure :: gpufortrt_map_no_create2_i8 + module procedure :: gpufortrt_map_no_create3_i8 + module procedure :: gpufortrt_map_no_create4_i8 + module procedure :: gpufortrt_map_no_create5_i8 + module procedure :: gpufortrt_map_no_create6_i8 + module procedure :: gpufortrt_map_no_create7_i8 + module procedure :: gpufortrt_map_no_create0_r4 + module procedure :: gpufortrt_map_no_create1_r4 + module procedure :: gpufortrt_map_no_create2_r4 + module procedure :: gpufortrt_map_no_create3_r4 + module procedure :: gpufortrt_map_no_create4_r4 + module procedure :: gpufortrt_map_no_create5_r4 + module procedure :: gpufortrt_map_no_create6_r4 + module procedure :: gpufortrt_map_no_create7_r4 + module procedure :: gpufortrt_map_no_create0_r8 + module procedure :: gpufortrt_map_no_create1_r8 + module procedure :: gpufortrt_map_no_create2_r8 + module procedure :: gpufortrt_map_no_create3_r8 + module procedure :: gpufortrt_map_no_create4_r8 + module procedure :: gpufortrt_map_no_create5_r8 + module procedure :: gpufortrt_map_no_create6_r8 + module procedure :: gpufortrt_map_no_create7_r8 + module procedure :: gpufortrt_map_no_create0_c4 + module procedure :: gpufortrt_map_no_create1_c4 + module procedure :: gpufortrt_map_no_create2_c4 + module procedure :: gpufortrt_map_no_create3_c4 + module procedure :: gpufortrt_map_no_create4_c4 + module procedure :: gpufortrt_map_no_create5_c4 + module procedure :: gpufortrt_map_no_create6_c4 + module procedure :: gpufortrt_map_no_create7_c4 + module procedure :: gpufortrt_map_no_create0_c8 + module procedure :: gpufortrt_map_no_create1_c8 + module procedure :: gpufortrt_map_no_create2_c8 + module procedure :: gpufortrt_map_no_create3_c8 + module procedure :: gpufortrt_map_no_create4_c8 + module procedure :: gpufortrt_map_no_create5_c8 + module procedure :: gpufortrt_map_no_create6_c8 + module procedure :: gpufortrt_map_no_create7_c8 + end interface + + interface gpufortrt_map_create + module procedure :: gpufortrt_map_create_b + module procedure :: gpufortrt_map_create0_l1 + module procedure :: gpufortrt_map_create1_l1 + module procedure :: gpufortrt_map_create2_l1 + module procedure :: gpufortrt_map_create3_l1 + module procedure :: gpufortrt_map_create4_l1 + module procedure :: gpufortrt_map_create5_l1 + module procedure :: gpufortrt_map_create6_l1 + module procedure :: gpufortrt_map_create7_l1 + module procedure :: gpufortrt_map_create0_l4 + module procedure :: gpufortrt_map_create1_l4 + module procedure :: gpufortrt_map_create2_l4 + module procedure :: gpufortrt_map_create3_l4 + module procedure :: gpufortrt_map_create4_l4 + module procedure :: gpufortrt_map_create5_l4 + module procedure :: gpufortrt_map_create6_l4 + module procedure :: gpufortrt_map_create7_l4 + module procedure :: gpufortrt_map_create0_ch1 + module procedure :: gpufortrt_map_create1_ch1 + module procedure :: gpufortrt_map_create2_ch1 + module procedure :: gpufortrt_map_create3_ch1 + module procedure :: gpufortrt_map_create4_ch1 + module procedure :: gpufortrt_map_create5_ch1 + module procedure :: gpufortrt_map_create6_ch1 + module procedure :: gpufortrt_map_create7_ch1 + module procedure :: gpufortrt_map_create0_i1 + module procedure :: gpufortrt_map_create1_i1 + module procedure :: gpufortrt_map_create2_i1 + module procedure :: gpufortrt_map_create3_i1 + module procedure :: gpufortrt_map_create4_i1 + module procedure :: gpufortrt_map_create5_i1 + module procedure :: gpufortrt_map_create6_i1 + module procedure :: gpufortrt_map_create7_i1 + module procedure :: gpufortrt_map_create0_i2 + module procedure :: gpufortrt_map_create1_i2 + module procedure :: gpufortrt_map_create2_i2 + module procedure :: gpufortrt_map_create3_i2 + module procedure :: gpufortrt_map_create4_i2 + module procedure :: gpufortrt_map_create5_i2 + module procedure :: gpufortrt_map_create6_i2 + module procedure :: gpufortrt_map_create7_i2 + module procedure :: gpufortrt_map_create0_i4 + module procedure :: gpufortrt_map_create1_i4 + module procedure :: gpufortrt_map_create2_i4 + module procedure :: gpufortrt_map_create3_i4 + module procedure :: gpufortrt_map_create4_i4 + module procedure :: gpufortrt_map_create5_i4 + module procedure :: gpufortrt_map_create6_i4 + module procedure :: gpufortrt_map_create7_i4 + module procedure :: gpufortrt_map_create0_i8 + module procedure :: gpufortrt_map_create1_i8 + module procedure :: gpufortrt_map_create2_i8 + module procedure :: gpufortrt_map_create3_i8 + module procedure :: gpufortrt_map_create4_i8 + module procedure :: gpufortrt_map_create5_i8 + module procedure :: gpufortrt_map_create6_i8 + module procedure :: gpufortrt_map_create7_i8 + module procedure :: gpufortrt_map_create0_r4 + module procedure :: gpufortrt_map_create1_r4 + module procedure :: gpufortrt_map_create2_r4 + module procedure :: gpufortrt_map_create3_r4 + module procedure :: gpufortrt_map_create4_r4 + module procedure :: gpufortrt_map_create5_r4 + module procedure :: gpufortrt_map_create6_r4 + module procedure :: gpufortrt_map_create7_r4 + module procedure :: gpufortrt_map_create0_r8 + module procedure :: gpufortrt_map_create1_r8 + module procedure :: gpufortrt_map_create2_r8 + module procedure :: gpufortrt_map_create3_r8 + module procedure :: gpufortrt_map_create4_r8 + module procedure :: gpufortrt_map_create5_r8 + module procedure :: gpufortrt_map_create6_r8 + module procedure :: gpufortrt_map_create7_r8 + module procedure :: gpufortrt_map_create0_c4 + module procedure :: gpufortrt_map_create1_c4 + module procedure :: gpufortrt_map_create2_c4 + module procedure :: gpufortrt_map_create3_c4 + module procedure :: gpufortrt_map_create4_c4 + module procedure :: gpufortrt_map_create5_c4 + module procedure :: gpufortrt_map_create6_c4 + module procedure :: gpufortrt_map_create7_c4 + module procedure :: gpufortrt_map_create0_c8 + module procedure :: gpufortrt_map_create1_c8 + module procedure :: gpufortrt_map_create2_c8 + module procedure :: gpufortrt_map_create3_c8 + module procedure :: gpufortrt_map_create4_c8 + module procedure :: gpufortrt_map_create5_c8 + module procedure :: gpufortrt_map_create6_c8 + module procedure :: gpufortrt_map_create7_c8 + end interface + + interface gpufortrt_map_copyin + module procedure :: gpufortrt_map_copyin_b + module procedure :: gpufortrt_map_copyin0_l1 + module procedure :: gpufortrt_map_copyin1_l1 + module procedure :: gpufortrt_map_copyin2_l1 + module procedure :: gpufortrt_map_copyin3_l1 + module procedure :: gpufortrt_map_copyin4_l1 + module procedure :: gpufortrt_map_copyin5_l1 + module procedure :: gpufortrt_map_copyin6_l1 + module procedure :: gpufortrt_map_copyin7_l1 + module procedure :: gpufortrt_map_copyin0_l4 + module procedure :: gpufortrt_map_copyin1_l4 + module procedure :: gpufortrt_map_copyin2_l4 + module procedure :: gpufortrt_map_copyin3_l4 + module procedure :: gpufortrt_map_copyin4_l4 + module procedure :: gpufortrt_map_copyin5_l4 + module procedure :: gpufortrt_map_copyin6_l4 + module procedure :: gpufortrt_map_copyin7_l4 + module procedure :: gpufortrt_map_copyin0_ch1 + module procedure :: gpufortrt_map_copyin1_ch1 + module procedure :: gpufortrt_map_copyin2_ch1 + module procedure :: gpufortrt_map_copyin3_ch1 + module procedure :: gpufortrt_map_copyin4_ch1 + module procedure :: gpufortrt_map_copyin5_ch1 + module procedure :: gpufortrt_map_copyin6_ch1 + module procedure :: gpufortrt_map_copyin7_ch1 + module procedure :: gpufortrt_map_copyin0_i1 + module procedure :: gpufortrt_map_copyin1_i1 + module procedure :: gpufortrt_map_copyin2_i1 + module procedure :: gpufortrt_map_copyin3_i1 + module procedure :: gpufortrt_map_copyin4_i1 + module procedure :: gpufortrt_map_copyin5_i1 + module procedure :: gpufortrt_map_copyin6_i1 + module procedure :: gpufortrt_map_copyin7_i1 + module procedure :: gpufortrt_map_copyin0_i2 + module procedure :: gpufortrt_map_copyin1_i2 + module procedure :: gpufortrt_map_copyin2_i2 + module procedure :: gpufortrt_map_copyin3_i2 + module procedure :: gpufortrt_map_copyin4_i2 + module procedure :: gpufortrt_map_copyin5_i2 + module procedure :: gpufortrt_map_copyin6_i2 + module procedure :: gpufortrt_map_copyin7_i2 + module procedure :: gpufortrt_map_copyin0_i4 + module procedure :: gpufortrt_map_copyin1_i4 + module procedure :: gpufortrt_map_copyin2_i4 + module procedure :: gpufortrt_map_copyin3_i4 + module procedure :: gpufortrt_map_copyin4_i4 + module procedure :: gpufortrt_map_copyin5_i4 + module procedure :: gpufortrt_map_copyin6_i4 + module procedure :: gpufortrt_map_copyin7_i4 + module procedure :: gpufortrt_map_copyin0_i8 + module procedure :: gpufortrt_map_copyin1_i8 + module procedure :: gpufortrt_map_copyin2_i8 + module procedure :: gpufortrt_map_copyin3_i8 + module procedure :: gpufortrt_map_copyin4_i8 + module procedure :: gpufortrt_map_copyin5_i8 + module procedure :: gpufortrt_map_copyin6_i8 + module procedure :: gpufortrt_map_copyin7_i8 + module procedure :: gpufortrt_map_copyin0_r4 + module procedure :: gpufortrt_map_copyin1_r4 + module procedure :: gpufortrt_map_copyin2_r4 + module procedure :: gpufortrt_map_copyin3_r4 + module procedure :: gpufortrt_map_copyin4_r4 + module procedure :: gpufortrt_map_copyin5_r4 + module procedure :: gpufortrt_map_copyin6_r4 + module procedure :: gpufortrt_map_copyin7_r4 + module procedure :: gpufortrt_map_copyin0_r8 + module procedure :: gpufortrt_map_copyin1_r8 + module procedure :: gpufortrt_map_copyin2_r8 + module procedure :: gpufortrt_map_copyin3_r8 + module procedure :: gpufortrt_map_copyin4_r8 + module procedure :: gpufortrt_map_copyin5_r8 + module procedure :: gpufortrt_map_copyin6_r8 + module procedure :: gpufortrt_map_copyin7_r8 + module procedure :: gpufortrt_map_copyin0_c4 + module procedure :: gpufortrt_map_copyin1_c4 + module procedure :: gpufortrt_map_copyin2_c4 + module procedure :: gpufortrt_map_copyin3_c4 + module procedure :: gpufortrt_map_copyin4_c4 + module procedure :: gpufortrt_map_copyin5_c4 + module procedure :: gpufortrt_map_copyin6_c4 + module procedure :: gpufortrt_map_copyin7_c4 + module procedure :: gpufortrt_map_copyin0_c8 + module procedure :: gpufortrt_map_copyin1_c8 + module procedure :: gpufortrt_map_copyin2_c8 + module procedure :: gpufortrt_map_copyin3_c8 + module procedure :: gpufortrt_map_copyin4_c8 + module procedure :: gpufortrt_map_copyin5_c8 + module procedure :: gpufortrt_map_copyin6_c8 + module procedure :: gpufortrt_map_copyin7_c8 + end interface + + interface gpufortrt_map_copy + module procedure :: gpufortrt_map_copy_b + module procedure :: gpufortrt_map_copy0_l1 + module procedure :: gpufortrt_map_copy1_l1 + module procedure :: gpufortrt_map_copy2_l1 + module procedure :: gpufortrt_map_copy3_l1 + module procedure :: gpufortrt_map_copy4_l1 + module procedure :: gpufortrt_map_copy5_l1 + module procedure :: gpufortrt_map_copy6_l1 + module procedure :: gpufortrt_map_copy7_l1 + module procedure :: gpufortrt_map_copy0_l4 + module procedure :: gpufortrt_map_copy1_l4 + module procedure :: gpufortrt_map_copy2_l4 + module procedure :: gpufortrt_map_copy3_l4 + module procedure :: gpufortrt_map_copy4_l4 + module procedure :: gpufortrt_map_copy5_l4 + module procedure :: gpufortrt_map_copy6_l4 + module procedure :: gpufortrt_map_copy7_l4 + module procedure :: gpufortrt_map_copy0_ch1 + module procedure :: gpufortrt_map_copy1_ch1 + module procedure :: gpufortrt_map_copy2_ch1 + module procedure :: gpufortrt_map_copy3_ch1 + module procedure :: gpufortrt_map_copy4_ch1 + module procedure :: gpufortrt_map_copy5_ch1 + module procedure :: gpufortrt_map_copy6_ch1 + module procedure :: gpufortrt_map_copy7_ch1 + module procedure :: gpufortrt_map_copy0_i1 + module procedure :: gpufortrt_map_copy1_i1 + module procedure :: gpufortrt_map_copy2_i1 + module procedure :: gpufortrt_map_copy3_i1 + module procedure :: gpufortrt_map_copy4_i1 + module procedure :: gpufortrt_map_copy5_i1 + module procedure :: gpufortrt_map_copy6_i1 + module procedure :: gpufortrt_map_copy7_i1 + module procedure :: gpufortrt_map_copy0_i2 + module procedure :: gpufortrt_map_copy1_i2 + module procedure :: gpufortrt_map_copy2_i2 + module procedure :: gpufortrt_map_copy3_i2 + module procedure :: gpufortrt_map_copy4_i2 + module procedure :: gpufortrt_map_copy5_i2 + module procedure :: gpufortrt_map_copy6_i2 + module procedure :: gpufortrt_map_copy7_i2 + module procedure :: gpufortrt_map_copy0_i4 + module procedure :: gpufortrt_map_copy1_i4 + module procedure :: gpufortrt_map_copy2_i4 + module procedure :: gpufortrt_map_copy3_i4 + module procedure :: gpufortrt_map_copy4_i4 + module procedure :: gpufortrt_map_copy5_i4 + module procedure :: gpufortrt_map_copy6_i4 + module procedure :: gpufortrt_map_copy7_i4 + module procedure :: gpufortrt_map_copy0_i8 + module procedure :: gpufortrt_map_copy1_i8 + module procedure :: gpufortrt_map_copy2_i8 + module procedure :: gpufortrt_map_copy3_i8 + module procedure :: gpufortrt_map_copy4_i8 + module procedure :: gpufortrt_map_copy5_i8 + module procedure :: gpufortrt_map_copy6_i8 + module procedure :: gpufortrt_map_copy7_i8 + module procedure :: gpufortrt_map_copy0_r4 + module procedure :: gpufortrt_map_copy1_r4 + module procedure :: gpufortrt_map_copy2_r4 + module procedure :: gpufortrt_map_copy3_r4 + module procedure :: gpufortrt_map_copy4_r4 + module procedure :: gpufortrt_map_copy5_r4 + module procedure :: gpufortrt_map_copy6_r4 + module procedure :: gpufortrt_map_copy7_r4 + module procedure :: gpufortrt_map_copy0_r8 + module procedure :: gpufortrt_map_copy1_r8 + module procedure :: gpufortrt_map_copy2_r8 + module procedure :: gpufortrt_map_copy3_r8 + module procedure :: gpufortrt_map_copy4_r8 + module procedure :: gpufortrt_map_copy5_r8 + module procedure :: gpufortrt_map_copy6_r8 + module procedure :: gpufortrt_map_copy7_r8 + module procedure :: gpufortrt_map_copy0_c4 + module procedure :: gpufortrt_map_copy1_c4 + module procedure :: gpufortrt_map_copy2_c4 + module procedure :: gpufortrt_map_copy3_c4 + module procedure :: gpufortrt_map_copy4_c4 + module procedure :: gpufortrt_map_copy5_c4 + module procedure :: gpufortrt_map_copy6_c4 + module procedure :: gpufortrt_map_copy7_c4 + module procedure :: gpufortrt_map_copy0_c8 + module procedure :: gpufortrt_map_copy1_c8 + module procedure :: gpufortrt_map_copy2_c8 + module procedure :: gpufortrt_map_copy3_c8 + module procedure :: gpufortrt_map_copy4_c8 + module procedure :: gpufortrt_map_copy5_c8 + module procedure :: gpufortrt_map_copy6_c8 + module procedure :: gpufortrt_map_copy7_c8 + end interface + + interface gpufortrt_map_copyout + module procedure :: gpufortrt_map_copyout_b + module procedure :: gpufortrt_map_copyout0_l1 + module procedure :: gpufortrt_map_copyout1_l1 + module procedure :: gpufortrt_map_copyout2_l1 + module procedure :: gpufortrt_map_copyout3_l1 + module procedure :: gpufortrt_map_copyout4_l1 + module procedure :: gpufortrt_map_copyout5_l1 + module procedure :: gpufortrt_map_copyout6_l1 + module procedure :: gpufortrt_map_copyout7_l1 + module procedure :: gpufortrt_map_copyout0_l4 + module procedure :: gpufortrt_map_copyout1_l4 + module procedure :: gpufortrt_map_copyout2_l4 + module procedure :: gpufortrt_map_copyout3_l4 + module procedure :: gpufortrt_map_copyout4_l4 + module procedure :: gpufortrt_map_copyout5_l4 + module procedure :: gpufortrt_map_copyout6_l4 + module procedure :: gpufortrt_map_copyout7_l4 + module procedure :: gpufortrt_map_copyout0_ch1 + module procedure :: gpufortrt_map_copyout1_ch1 + module procedure :: gpufortrt_map_copyout2_ch1 + module procedure :: gpufortrt_map_copyout3_ch1 + module procedure :: gpufortrt_map_copyout4_ch1 + module procedure :: gpufortrt_map_copyout5_ch1 + module procedure :: gpufortrt_map_copyout6_ch1 + module procedure :: gpufortrt_map_copyout7_ch1 + module procedure :: gpufortrt_map_copyout0_i1 + module procedure :: gpufortrt_map_copyout1_i1 + module procedure :: gpufortrt_map_copyout2_i1 + module procedure :: gpufortrt_map_copyout3_i1 + module procedure :: gpufortrt_map_copyout4_i1 + module procedure :: gpufortrt_map_copyout5_i1 + module procedure :: gpufortrt_map_copyout6_i1 + module procedure :: gpufortrt_map_copyout7_i1 + module procedure :: gpufortrt_map_copyout0_i2 + module procedure :: gpufortrt_map_copyout1_i2 + module procedure :: gpufortrt_map_copyout2_i2 + module procedure :: gpufortrt_map_copyout3_i2 + module procedure :: gpufortrt_map_copyout4_i2 + module procedure :: gpufortrt_map_copyout5_i2 + module procedure :: gpufortrt_map_copyout6_i2 + module procedure :: gpufortrt_map_copyout7_i2 + module procedure :: gpufortrt_map_copyout0_i4 + module procedure :: gpufortrt_map_copyout1_i4 + module procedure :: gpufortrt_map_copyout2_i4 + module procedure :: gpufortrt_map_copyout3_i4 + module procedure :: gpufortrt_map_copyout4_i4 + module procedure :: gpufortrt_map_copyout5_i4 + module procedure :: gpufortrt_map_copyout6_i4 + module procedure :: gpufortrt_map_copyout7_i4 + module procedure :: gpufortrt_map_copyout0_i8 + module procedure :: gpufortrt_map_copyout1_i8 + module procedure :: gpufortrt_map_copyout2_i8 + module procedure :: gpufortrt_map_copyout3_i8 + module procedure :: gpufortrt_map_copyout4_i8 + module procedure :: gpufortrt_map_copyout5_i8 + module procedure :: gpufortrt_map_copyout6_i8 + module procedure :: gpufortrt_map_copyout7_i8 + module procedure :: gpufortrt_map_copyout0_r4 + module procedure :: gpufortrt_map_copyout1_r4 + module procedure :: gpufortrt_map_copyout2_r4 + module procedure :: gpufortrt_map_copyout3_r4 + module procedure :: gpufortrt_map_copyout4_r4 + module procedure :: gpufortrt_map_copyout5_r4 + module procedure :: gpufortrt_map_copyout6_r4 + module procedure :: gpufortrt_map_copyout7_r4 + module procedure :: gpufortrt_map_copyout0_r8 + module procedure :: gpufortrt_map_copyout1_r8 + module procedure :: gpufortrt_map_copyout2_r8 + module procedure :: gpufortrt_map_copyout3_r8 + module procedure :: gpufortrt_map_copyout4_r8 + module procedure :: gpufortrt_map_copyout5_r8 + module procedure :: gpufortrt_map_copyout6_r8 + module procedure :: gpufortrt_map_copyout7_r8 + module procedure :: gpufortrt_map_copyout0_c4 + module procedure :: gpufortrt_map_copyout1_c4 + module procedure :: gpufortrt_map_copyout2_c4 + module procedure :: gpufortrt_map_copyout3_c4 + module procedure :: gpufortrt_map_copyout4_c4 + module procedure :: gpufortrt_map_copyout5_c4 + module procedure :: gpufortrt_map_copyout6_c4 + module procedure :: gpufortrt_map_copyout7_c4 + module procedure :: gpufortrt_map_copyout0_c8 + module procedure :: gpufortrt_map_copyout1_c8 + module procedure :: gpufortrt_map_copyout2_c8 + module procedure :: gpufortrt_map_copyout3_c8 + module procedure :: gpufortrt_map_copyout4_c8 + module procedure :: gpufortrt_map_copyout5_c8 + module procedure :: gpufortrt_map_copyout6_c8 + module procedure :: gpufortrt_map_copyout7_c8 + end interface + + interface gpufortrt_map_delete + module procedure :: gpufortrt_map_delete_b + module procedure :: gpufortrt_map_delete0_l1 + module procedure :: gpufortrt_map_delete1_l1 + module procedure :: gpufortrt_map_delete2_l1 + module procedure :: gpufortrt_map_delete3_l1 + module procedure :: gpufortrt_map_delete4_l1 + module procedure :: gpufortrt_map_delete5_l1 + module procedure :: gpufortrt_map_delete6_l1 + module procedure :: gpufortrt_map_delete7_l1 + module procedure :: gpufortrt_map_delete0_l4 + module procedure :: gpufortrt_map_delete1_l4 + module procedure :: gpufortrt_map_delete2_l4 + module procedure :: gpufortrt_map_delete3_l4 + module procedure :: gpufortrt_map_delete4_l4 + module procedure :: gpufortrt_map_delete5_l4 + module procedure :: gpufortrt_map_delete6_l4 + module procedure :: gpufortrt_map_delete7_l4 + module procedure :: gpufortrt_map_delete0_ch1 + module procedure :: gpufortrt_map_delete1_ch1 + module procedure :: gpufortrt_map_delete2_ch1 + module procedure :: gpufortrt_map_delete3_ch1 + module procedure :: gpufortrt_map_delete4_ch1 + module procedure :: gpufortrt_map_delete5_ch1 + module procedure :: gpufortrt_map_delete6_ch1 + module procedure :: gpufortrt_map_delete7_ch1 + module procedure :: gpufortrt_map_delete0_i1 + module procedure :: gpufortrt_map_delete1_i1 + module procedure :: gpufortrt_map_delete2_i1 + module procedure :: gpufortrt_map_delete3_i1 + module procedure :: gpufortrt_map_delete4_i1 + module procedure :: gpufortrt_map_delete5_i1 + module procedure :: gpufortrt_map_delete6_i1 + module procedure :: gpufortrt_map_delete7_i1 + module procedure :: gpufortrt_map_delete0_i2 + module procedure :: gpufortrt_map_delete1_i2 + module procedure :: gpufortrt_map_delete2_i2 + module procedure :: gpufortrt_map_delete3_i2 + module procedure :: gpufortrt_map_delete4_i2 + module procedure :: gpufortrt_map_delete5_i2 + module procedure :: gpufortrt_map_delete6_i2 + module procedure :: gpufortrt_map_delete7_i2 + module procedure :: gpufortrt_map_delete0_i4 + module procedure :: gpufortrt_map_delete1_i4 + module procedure :: gpufortrt_map_delete2_i4 + module procedure :: gpufortrt_map_delete3_i4 + module procedure :: gpufortrt_map_delete4_i4 + module procedure :: gpufortrt_map_delete5_i4 + module procedure :: gpufortrt_map_delete6_i4 + module procedure :: gpufortrt_map_delete7_i4 + module procedure :: gpufortrt_map_delete0_i8 + module procedure :: gpufortrt_map_delete1_i8 + module procedure :: gpufortrt_map_delete2_i8 + module procedure :: gpufortrt_map_delete3_i8 + module procedure :: gpufortrt_map_delete4_i8 + module procedure :: gpufortrt_map_delete5_i8 + module procedure :: gpufortrt_map_delete6_i8 + module procedure :: gpufortrt_map_delete7_i8 + module procedure :: gpufortrt_map_delete0_r4 + module procedure :: gpufortrt_map_delete1_r4 + module procedure :: gpufortrt_map_delete2_r4 + module procedure :: gpufortrt_map_delete3_r4 + module procedure :: gpufortrt_map_delete4_r4 + module procedure :: gpufortrt_map_delete5_r4 + module procedure :: gpufortrt_map_delete6_r4 + module procedure :: gpufortrt_map_delete7_r4 + module procedure :: gpufortrt_map_delete0_r8 + module procedure :: gpufortrt_map_delete1_r8 + module procedure :: gpufortrt_map_delete2_r8 + module procedure :: gpufortrt_map_delete3_r8 + module procedure :: gpufortrt_map_delete4_r8 + module procedure :: gpufortrt_map_delete5_r8 + module procedure :: gpufortrt_map_delete6_r8 + module procedure :: gpufortrt_map_delete7_r8 + module procedure :: gpufortrt_map_delete0_c4 + module procedure :: gpufortrt_map_delete1_c4 + module procedure :: gpufortrt_map_delete2_c4 + module procedure :: gpufortrt_map_delete3_c4 + module procedure :: gpufortrt_map_delete4_c4 + module procedure :: gpufortrt_map_delete5_c4 + module procedure :: gpufortrt_map_delete6_c4 + module procedure :: gpufortrt_map_delete7_c4 + module procedure :: gpufortrt_map_delete0_c8 + module procedure :: gpufortrt_map_delete1_c8 + module procedure :: gpufortrt_map_delete2_c8 + module procedure :: gpufortrt_map_delete3_c8 + module procedure :: gpufortrt_map_delete4_c8 + module procedure :: gpufortrt_map_delete5_c8 + module procedure :: gpufortrt_map_delete6_c8 + module procedure :: gpufortrt_map_delete7_c8 + end interface + + + + interface gpufortrt_present + module procedure :: gpufortrt_present0_l1 + module procedure :: gpufortrt_present1_l1 + module procedure :: gpufortrt_present2_l1 + module procedure :: gpufortrt_present3_l1 + module procedure :: gpufortrt_present4_l1 + module procedure :: gpufortrt_present5_l1 + module procedure :: gpufortrt_present6_l1 + module procedure :: gpufortrt_present7_l1 + module procedure :: gpufortrt_present0_l4 + module procedure :: gpufortrt_present1_l4 + module procedure :: gpufortrt_present2_l4 + module procedure :: gpufortrt_present3_l4 + module procedure :: gpufortrt_present4_l4 + module procedure :: gpufortrt_present5_l4 + module procedure :: gpufortrt_present6_l4 + module procedure :: gpufortrt_present7_l4 + module procedure :: gpufortrt_present0_ch1 + module procedure :: gpufortrt_present1_ch1 + module procedure :: gpufortrt_present2_ch1 + module procedure :: gpufortrt_present3_ch1 + module procedure :: gpufortrt_present4_ch1 + module procedure :: gpufortrt_present5_ch1 + module procedure :: gpufortrt_present6_ch1 + module procedure :: gpufortrt_present7_ch1 + module procedure :: gpufortrt_present0_i1 + module procedure :: gpufortrt_present1_i1 + module procedure :: gpufortrt_present2_i1 + module procedure :: gpufortrt_present3_i1 + module procedure :: gpufortrt_present4_i1 + module procedure :: gpufortrt_present5_i1 + module procedure :: gpufortrt_present6_i1 + module procedure :: gpufortrt_present7_i1 + module procedure :: gpufortrt_present0_i2 + module procedure :: gpufortrt_present1_i2 + module procedure :: gpufortrt_present2_i2 + module procedure :: gpufortrt_present3_i2 + module procedure :: gpufortrt_present4_i2 + module procedure :: gpufortrt_present5_i2 + module procedure :: gpufortrt_present6_i2 + module procedure :: gpufortrt_present7_i2 + module procedure :: gpufortrt_present0_i4 + module procedure :: gpufortrt_present1_i4 + module procedure :: gpufortrt_present2_i4 + module procedure :: gpufortrt_present3_i4 + module procedure :: gpufortrt_present4_i4 + module procedure :: gpufortrt_present5_i4 + module procedure :: gpufortrt_present6_i4 + module procedure :: gpufortrt_present7_i4 + module procedure :: gpufortrt_present0_i8 + module procedure :: gpufortrt_present1_i8 + module procedure :: gpufortrt_present2_i8 + module procedure :: gpufortrt_present3_i8 + module procedure :: gpufortrt_present4_i8 + module procedure :: gpufortrt_present5_i8 + module procedure :: gpufortrt_present6_i8 + module procedure :: gpufortrt_present7_i8 + module procedure :: gpufortrt_present0_r4 + module procedure :: gpufortrt_present1_r4 + module procedure :: gpufortrt_present2_r4 + module procedure :: gpufortrt_present3_r4 + module procedure :: gpufortrt_present4_r4 + module procedure :: gpufortrt_present5_r4 + module procedure :: gpufortrt_present6_r4 + module procedure :: gpufortrt_present7_r4 + module procedure :: gpufortrt_present0_r8 + module procedure :: gpufortrt_present1_r8 + module procedure :: gpufortrt_present2_r8 + module procedure :: gpufortrt_present3_r8 + module procedure :: gpufortrt_present4_r8 + module procedure :: gpufortrt_present5_r8 + module procedure :: gpufortrt_present6_r8 + module procedure :: gpufortrt_present7_r8 + module procedure :: gpufortrt_present0_c4 + module procedure :: gpufortrt_present1_c4 + module procedure :: gpufortrt_present2_c4 + module procedure :: gpufortrt_present3_c4 + module procedure :: gpufortrt_present4_c4 + module procedure :: gpufortrt_present5_c4 + module procedure :: gpufortrt_present6_c4 + module procedure :: gpufortrt_present7_c4 + module procedure :: gpufortrt_present0_c8 + module procedure :: gpufortrt_present1_c8 + module procedure :: gpufortrt_present2_c8 + module procedure :: gpufortrt_present3_c8 + module procedure :: gpufortrt_present4_c8 + module procedure :: gpufortrt_present5_c8 + module procedure :: gpufortrt_present6_c8 + module procedure :: gpufortrt_present7_c8 + end interface + + + interface gpufortrt_create + module procedure :: gpufortrt_create_b + module procedure :: gpufortrt_create0_l1 + module procedure :: gpufortrt_create1_l1 + module procedure :: gpufortrt_create2_l1 + module procedure :: gpufortrt_create3_l1 + module procedure :: gpufortrt_create4_l1 + module procedure :: gpufortrt_create5_l1 + module procedure :: gpufortrt_create6_l1 + module procedure :: gpufortrt_create7_l1 + module procedure :: gpufortrt_create0_l4 + module procedure :: gpufortrt_create1_l4 + module procedure :: gpufortrt_create2_l4 + module procedure :: gpufortrt_create3_l4 + module procedure :: gpufortrt_create4_l4 + module procedure :: gpufortrt_create5_l4 + module procedure :: gpufortrt_create6_l4 + module procedure :: gpufortrt_create7_l4 + module procedure :: gpufortrt_create0_ch1 + module procedure :: gpufortrt_create1_ch1 + module procedure :: gpufortrt_create2_ch1 + module procedure :: gpufortrt_create3_ch1 + module procedure :: gpufortrt_create4_ch1 + module procedure :: gpufortrt_create5_ch1 + module procedure :: gpufortrt_create6_ch1 + module procedure :: gpufortrt_create7_ch1 + module procedure :: gpufortrt_create0_i1 + module procedure :: gpufortrt_create1_i1 + module procedure :: gpufortrt_create2_i1 + module procedure :: gpufortrt_create3_i1 + module procedure :: gpufortrt_create4_i1 + module procedure :: gpufortrt_create5_i1 + module procedure :: gpufortrt_create6_i1 + module procedure :: gpufortrt_create7_i1 + module procedure :: gpufortrt_create0_i2 + module procedure :: gpufortrt_create1_i2 + module procedure :: gpufortrt_create2_i2 + module procedure :: gpufortrt_create3_i2 + module procedure :: gpufortrt_create4_i2 + module procedure :: gpufortrt_create5_i2 + module procedure :: gpufortrt_create6_i2 + module procedure :: gpufortrt_create7_i2 + module procedure :: gpufortrt_create0_i4 + module procedure :: gpufortrt_create1_i4 + module procedure :: gpufortrt_create2_i4 + module procedure :: gpufortrt_create3_i4 + module procedure :: gpufortrt_create4_i4 + module procedure :: gpufortrt_create5_i4 + module procedure :: gpufortrt_create6_i4 + module procedure :: gpufortrt_create7_i4 + module procedure :: gpufortrt_create0_i8 + module procedure :: gpufortrt_create1_i8 + module procedure :: gpufortrt_create2_i8 + module procedure :: gpufortrt_create3_i8 + module procedure :: gpufortrt_create4_i8 + module procedure :: gpufortrt_create5_i8 + module procedure :: gpufortrt_create6_i8 + module procedure :: gpufortrt_create7_i8 + module procedure :: gpufortrt_create0_r4 + module procedure :: gpufortrt_create1_r4 + module procedure :: gpufortrt_create2_r4 + module procedure :: gpufortrt_create3_r4 + module procedure :: gpufortrt_create4_r4 + module procedure :: gpufortrt_create5_r4 + module procedure :: gpufortrt_create6_r4 + module procedure :: gpufortrt_create7_r4 + module procedure :: gpufortrt_create0_r8 + module procedure :: gpufortrt_create1_r8 + module procedure :: gpufortrt_create2_r8 + module procedure :: gpufortrt_create3_r8 + module procedure :: gpufortrt_create4_r8 + module procedure :: gpufortrt_create5_r8 + module procedure :: gpufortrt_create6_r8 + module procedure :: gpufortrt_create7_r8 + module procedure :: gpufortrt_create0_c4 + module procedure :: gpufortrt_create1_c4 + module procedure :: gpufortrt_create2_c4 + module procedure :: gpufortrt_create3_c4 + module procedure :: gpufortrt_create4_c4 + module procedure :: gpufortrt_create5_c4 + module procedure :: gpufortrt_create6_c4 + module procedure :: gpufortrt_create7_c4 + module procedure :: gpufortrt_create0_c8 + module procedure :: gpufortrt_create1_c8 + module procedure :: gpufortrt_create2_c8 + module procedure :: gpufortrt_create3_c8 + module procedure :: gpufortrt_create4_c8 + module procedure :: gpufortrt_create5_c8 + module procedure :: gpufortrt_create6_c8 + module procedure :: gpufortrt_create7_c8 + end interface + + + interface gpufortrt_copyin + module procedure :: gpufortrt_copyin_b + module procedure :: gpufortrt_copyin0_l1 + module procedure :: gpufortrt_copyin1_l1 + module procedure :: gpufortrt_copyin2_l1 + module procedure :: gpufortrt_copyin3_l1 + module procedure :: gpufortrt_copyin4_l1 + module procedure :: gpufortrt_copyin5_l1 + module procedure :: gpufortrt_copyin6_l1 + module procedure :: gpufortrt_copyin7_l1 + module procedure :: gpufortrt_copyin0_l4 + module procedure :: gpufortrt_copyin1_l4 + module procedure :: gpufortrt_copyin2_l4 + module procedure :: gpufortrt_copyin3_l4 + module procedure :: gpufortrt_copyin4_l4 + module procedure :: gpufortrt_copyin5_l4 + module procedure :: gpufortrt_copyin6_l4 + module procedure :: gpufortrt_copyin7_l4 + module procedure :: gpufortrt_copyin0_ch1 + module procedure :: gpufortrt_copyin1_ch1 + module procedure :: gpufortrt_copyin2_ch1 + module procedure :: gpufortrt_copyin3_ch1 + module procedure :: gpufortrt_copyin4_ch1 + module procedure :: gpufortrt_copyin5_ch1 + module procedure :: gpufortrt_copyin6_ch1 + module procedure :: gpufortrt_copyin7_ch1 + module procedure :: gpufortrt_copyin0_i1 + module procedure :: gpufortrt_copyin1_i1 + module procedure :: gpufortrt_copyin2_i1 + module procedure :: gpufortrt_copyin3_i1 + module procedure :: gpufortrt_copyin4_i1 + module procedure :: gpufortrt_copyin5_i1 + module procedure :: gpufortrt_copyin6_i1 + module procedure :: gpufortrt_copyin7_i1 + module procedure :: gpufortrt_copyin0_i2 + module procedure :: gpufortrt_copyin1_i2 + module procedure :: gpufortrt_copyin2_i2 + module procedure :: gpufortrt_copyin3_i2 + module procedure :: gpufortrt_copyin4_i2 + module procedure :: gpufortrt_copyin5_i2 + module procedure :: gpufortrt_copyin6_i2 + module procedure :: gpufortrt_copyin7_i2 + module procedure :: gpufortrt_copyin0_i4 + module procedure :: gpufortrt_copyin1_i4 + module procedure :: gpufortrt_copyin2_i4 + module procedure :: gpufortrt_copyin3_i4 + module procedure :: gpufortrt_copyin4_i4 + module procedure :: gpufortrt_copyin5_i4 + module procedure :: gpufortrt_copyin6_i4 + module procedure :: gpufortrt_copyin7_i4 + module procedure :: gpufortrt_copyin0_i8 + module procedure :: gpufortrt_copyin1_i8 + module procedure :: gpufortrt_copyin2_i8 + module procedure :: gpufortrt_copyin3_i8 + module procedure :: gpufortrt_copyin4_i8 + module procedure :: gpufortrt_copyin5_i8 + module procedure :: gpufortrt_copyin6_i8 + module procedure :: gpufortrt_copyin7_i8 + module procedure :: gpufortrt_copyin0_r4 + module procedure :: gpufortrt_copyin1_r4 + module procedure :: gpufortrt_copyin2_r4 + module procedure :: gpufortrt_copyin3_r4 + module procedure :: gpufortrt_copyin4_r4 + module procedure :: gpufortrt_copyin5_r4 + module procedure :: gpufortrt_copyin6_r4 + module procedure :: gpufortrt_copyin7_r4 + module procedure :: gpufortrt_copyin0_r8 + module procedure :: gpufortrt_copyin1_r8 + module procedure :: gpufortrt_copyin2_r8 + module procedure :: gpufortrt_copyin3_r8 + module procedure :: gpufortrt_copyin4_r8 + module procedure :: gpufortrt_copyin5_r8 + module procedure :: gpufortrt_copyin6_r8 + module procedure :: gpufortrt_copyin7_r8 + module procedure :: gpufortrt_copyin0_c4 + module procedure :: gpufortrt_copyin1_c4 + module procedure :: gpufortrt_copyin2_c4 + module procedure :: gpufortrt_copyin3_c4 + module procedure :: gpufortrt_copyin4_c4 + module procedure :: gpufortrt_copyin5_c4 + module procedure :: gpufortrt_copyin6_c4 + module procedure :: gpufortrt_copyin7_c4 + module procedure :: gpufortrt_copyin0_c8 + module procedure :: gpufortrt_copyin1_c8 + module procedure :: gpufortrt_copyin2_c8 + module procedure :: gpufortrt_copyin3_c8 + module procedure :: gpufortrt_copyin4_c8 + module procedure :: gpufortrt_copyin5_c8 + module procedure :: gpufortrt_copyin6_c8 + module procedure :: gpufortrt_copyin7_c8 + end interface + + + interface gpufortrt_copy + module procedure :: gpufortrt_copy_b + module procedure :: gpufortrt_copy0_l1 + module procedure :: gpufortrt_copy1_l1 + module procedure :: gpufortrt_copy2_l1 + module procedure :: gpufortrt_copy3_l1 + module procedure :: gpufortrt_copy4_l1 + module procedure :: gpufortrt_copy5_l1 + module procedure :: gpufortrt_copy6_l1 + module procedure :: gpufortrt_copy7_l1 + module procedure :: gpufortrt_copy0_l4 + module procedure :: gpufortrt_copy1_l4 + module procedure :: gpufortrt_copy2_l4 + module procedure :: gpufortrt_copy3_l4 + module procedure :: gpufortrt_copy4_l4 + module procedure :: gpufortrt_copy5_l4 + module procedure :: gpufortrt_copy6_l4 + module procedure :: gpufortrt_copy7_l4 + module procedure :: gpufortrt_copy0_ch1 + module procedure :: gpufortrt_copy1_ch1 + module procedure :: gpufortrt_copy2_ch1 + module procedure :: gpufortrt_copy3_ch1 + module procedure :: gpufortrt_copy4_ch1 + module procedure :: gpufortrt_copy5_ch1 + module procedure :: gpufortrt_copy6_ch1 + module procedure :: gpufortrt_copy7_ch1 + module procedure :: gpufortrt_copy0_i1 + module procedure :: gpufortrt_copy1_i1 + module procedure :: gpufortrt_copy2_i1 + module procedure :: gpufortrt_copy3_i1 + module procedure :: gpufortrt_copy4_i1 + module procedure :: gpufortrt_copy5_i1 + module procedure :: gpufortrt_copy6_i1 + module procedure :: gpufortrt_copy7_i1 + module procedure :: gpufortrt_copy0_i2 + module procedure :: gpufortrt_copy1_i2 + module procedure :: gpufortrt_copy2_i2 + module procedure :: gpufortrt_copy3_i2 + module procedure :: gpufortrt_copy4_i2 + module procedure :: gpufortrt_copy5_i2 + module procedure :: gpufortrt_copy6_i2 + module procedure :: gpufortrt_copy7_i2 + module procedure :: gpufortrt_copy0_i4 + module procedure :: gpufortrt_copy1_i4 + module procedure :: gpufortrt_copy2_i4 + module procedure :: gpufortrt_copy3_i4 + module procedure :: gpufortrt_copy4_i4 + module procedure :: gpufortrt_copy5_i4 + module procedure :: gpufortrt_copy6_i4 + module procedure :: gpufortrt_copy7_i4 + module procedure :: gpufortrt_copy0_i8 + module procedure :: gpufortrt_copy1_i8 + module procedure :: gpufortrt_copy2_i8 + module procedure :: gpufortrt_copy3_i8 + module procedure :: gpufortrt_copy4_i8 + module procedure :: gpufortrt_copy5_i8 + module procedure :: gpufortrt_copy6_i8 + module procedure :: gpufortrt_copy7_i8 + module procedure :: gpufortrt_copy0_r4 + module procedure :: gpufortrt_copy1_r4 + module procedure :: gpufortrt_copy2_r4 + module procedure :: gpufortrt_copy3_r4 + module procedure :: gpufortrt_copy4_r4 + module procedure :: gpufortrt_copy5_r4 + module procedure :: gpufortrt_copy6_r4 + module procedure :: gpufortrt_copy7_r4 + module procedure :: gpufortrt_copy0_r8 + module procedure :: gpufortrt_copy1_r8 + module procedure :: gpufortrt_copy2_r8 + module procedure :: gpufortrt_copy3_r8 + module procedure :: gpufortrt_copy4_r8 + module procedure :: gpufortrt_copy5_r8 + module procedure :: gpufortrt_copy6_r8 + module procedure :: gpufortrt_copy7_r8 + module procedure :: gpufortrt_copy0_c4 + module procedure :: gpufortrt_copy1_c4 + module procedure :: gpufortrt_copy2_c4 + module procedure :: gpufortrt_copy3_c4 + module procedure :: gpufortrt_copy4_c4 + module procedure :: gpufortrt_copy5_c4 + module procedure :: gpufortrt_copy6_c4 + module procedure :: gpufortrt_copy7_c4 + module procedure :: gpufortrt_copy0_c8 + module procedure :: gpufortrt_copy1_c8 + module procedure :: gpufortrt_copy2_c8 + module procedure :: gpufortrt_copy3_c8 + module procedure :: gpufortrt_copy4_c8 + module procedure :: gpufortrt_copy5_c8 + module procedure :: gpufortrt_copy6_c8 + module procedure :: gpufortrt_copy7_c8 + end interface + + + + interface gpufortrt_delete + module procedure :: gpufortrt_delete_b + module procedure :: gpufortrt_delete0_l1 + module procedure :: gpufortrt_delete1_l1 + module procedure :: gpufortrt_delete2_l1 + module procedure :: gpufortrt_delete3_l1 + module procedure :: gpufortrt_delete4_l1 + module procedure :: gpufortrt_delete5_l1 + module procedure :: gpufortrt_delete6_l1 + module procedure :: gpufortrt_delete7_l1 + module procedure :: gpufortrt_delete0_l4 + module procedure :: gpufortrt_delete1_l4 + module procedure :: gpufortrt_delete2_l4 + module procedure :: gpufortrt_delete3_l4 + module procedure :: gpufortrt_delete4_l4 + module procedure :: gpufortrt_delete5_l4 + module procedure :: gpufortrt_delete6_l4 + module procedure :: gpufortrt_delete7_l4 + module procedure :: gpufortrt_delete0_ch1 + module procedure :: gpufortrt_delete1_ch1 + module procedure :: gpufortrt_delete2_ch1 + module procedure :: gpufortrt_delete3_ch1 + module procedure :: gpufortrt_delete4_ch1 + module procedure :: gpufortrt_delete5_ch1 + module procedure :: gpufortrt_delete6_ch1 + module procedure :: gpufortrt_delete7_ch1 + module procedure :: gpufortrt_delete0_i1 + module procedure :: gpufortrt_delete1_i1 + module procedure :: gpufortrt_delete2_i1 + module procedure :: gpufortrt_delete3_i1 + module procedure :: gpufortrt_delete4_i1 + module procedure :: gpufortrt_delete5_i1 + module procedure :: gpufortrt_delete6_i1 + module procedure :: gpufortrt_delete7_i1 + module procedure :: gpufortrt_delete0_i2 + module procedure :: gpufortrt_delete1_i2 + module procedure :: gpufortrt_delete2_i2 + module procedure :: gpufortrt_delete3_i2 + module procedure :: gpufortrt_delete4_i2 + module procedure :: gpufortrt_delete5_i2 + module procedure :: gpufortrt_delete6_i2 + module procedure :: gpufortrt_delete7_i2 + module procedure :: gpufortrt_delete0_i4 + module procedure :: gpufortrt_delete1_i4 + module procedure :: gpufortrt_delete2_i4 + module procedure :: gpufortrt_delete3_i4 + module procedure :: gpufortrt_delete4_i4 + module procedure :: gpufortrt_delete5_i4 + module procedure :: gpufortrt_delete6_i4 + module procedure :: gpufortrt_delete7_i4 + module procedure :: gpufortrt_delete0_i8 + module procedure :: gpufortrt_delete1_i8 + module procedure :: gpufortrt_delete2_i8 + module procedure :: gpufortrt_delete3_i8 + module procedure :: gpufortrt_delete4_i8 + module procedure :: gpufortrt_delete5_i8 + module procedure :: gpufortrt_delete6_i8 + module procedure :: gpufortrt_delete7_i8 + module procedure :: gpufortrt_delete0_r4 + module procedure :: gpufortrt_delete1_r4 + module procedure :: gpufortrt_delete2_r4 + module procedure :: gpufortrt_delete3_r4 + module procedure :: gpufortrt_delete4_r4 + module procedure :: gpufortrt_delete5_r4 + module procedure :: gpufortrt_delete6_r4 + module procedure :: gpufortrt_delete7_r4 + module procedure :: gpufortrt_delete0_r8 + module procedure :: gpufortrt_delete1_r8 + module procedure :: gpufortrt_delete2_r8 + module procedure :: gpufortrt_delete3_r8 + module procedure :: gpufortrt_delete4_r8 + module procedure :: gpufortrt_delete5_r8 + module procedure :: gpufortrt_delete6_r8 + module procedure :: gpufortrt_delete7_r8 + module procedure :: gpufortrt_delete0_c4 + module procedure :: gpufortrt_delete1_c4 + module procedure :: gpufortrt_delete2_c4 + module procedure :: gpufortrt_delete3_c4 + module procedure :: gpufortrt_delete4_c4 + module procedure :: gpufortrt_delete5_c4 + module procedure :: gpufortrt_delete6_c4 + module procedure :: gpufortrt_delete7_c4 + module procedure :: gpufortrt_delete0_c8 + module procedure :: gpufortrt_delete1_c8 + module procedure :: gpufortrt_delete2_c8 + module procedure :: gpufortrt_delete3_c8 + module procedure :: gpufortrt_delete4_c8 + module procedure :: gpufortrt_delete5_c8 + module procedure :: gpufortrt_delete6_c8 + module procedure :: gpufortrt_delete7_c8 + end interface + + interface gpufortrt_copyout + module procedure :: gpufortrt_copyout_b + module procedure :: gpufortrt_copyout0_l1 + module procedure :: gpufortrt_copyout1_l1 + module procedure :: gpufortrt_copyout2_l1 + module procedure :: gpufortrt_copyout3_l1 + module procedure :: gpufortrt_copyout4_l1 + module procedure :: gpufortrt_copyout5_l1 + module procedure :: gpufortrt_copyout6_l1 + module procedure :: gpufortrt_copyout7_l1 + module procedure :: gpufortrt_copyout0_l4 + module procedure :: gpufortrt_copyout1_l4 + module procedure :: gpufortrt_copyout2_l4 + module procedure :: gpufortrt_copyout3_l4 + module procedure :: gpufortrt_copyout4_l4 + module procedure :: gpufortrt_copyout5_l4 + module procedure :: gpufortrt_copyout6_l4 + module procedure :: gpufortrt_copyout7_l4 + module procedure :: gpufortrt_copyout0_ch1 + module procedure :: gpufortrt_copyout1_ch1 + module procedure :: gpufortrt_copyout2_ch1 + module procedure :: gpufortrt_copyout3_ch1 + module procedure :: gpufortrt_copyout4_ch1 + module procedure :: gpufortrt_copyout5_ch1 + module procedure :: gpufortrt_copyout6_ch1 + module procedure :: gpufortrt_copyout7_ch1 + module procedure :: gpufortrt_copyout0_i1 + module procedure :: gpufortrt_copyout1_i1 + module procedure :: gpufortrt_copyout2_i1 + module procedure :: gpufortrt_copyout3_i1 + module procedure :: gpufortrt_copyout4_i1 + module procedure :: gpufortrt_copyout5_i1 + module procedure :: gpufortrt_copyout6_i1 + module procedure :: gpufortrt_copyout7_i1 + module procedure :: gpufortrt_copyout0_i2 + module procedure :: gpufortrt_copyout1_i2 + module procedure :: gpufortrt_copyout2_i2 + module procedure :: gpufortrt_copyout3_i2 + module procedure :: gpufortrt_copyout4_i2 + module procedure :: gpufortrt_copyout5_i2 + module procedure :: gpufortrt_copyout6_i2 + module procedure :: gpufortrt_copyout7_i2 + module procedure :: gpufortrt_copyout0_i4 + module procedure :: gpufortrt_copyout1_i4 + module procedure :: gpufortrt_copyout2_i4 + module procedure :: gpufortrt_copyout3_i4 + module procedure :: gpufortrt_copyout4_i4 + module procedure :: gpufortrt_copyout5_i4 + module procedure :: gpufortrt_copyout6_i4 + module procedure :: gpufortrt_copyout7_i4 + module procedure :: gpufortrt_copyout0_i8 + module procedure :: gpufortrt_copyout1_i8 + module procedure :: gpufortrt_copyout2_i8 + module procedure :: gpufortrt_copyout3_i8 + module procedure :: gpufortrt_copyout4_i8 + module procedure :: gpufortrt_copyout5_i8 + module procedure :: gpufortrt_copyout6_i8 + module procedure :: gpufortrt_copyout7_i8 + module procedure :: gpufortrt_copyout0_r4 + module procedure :: gpufortrt_copyout1_r4 + module procedure :: gpufortrt_copyout2_r4 + module procedure :: gpufortrt_copyout3_r4 + module procedure :: gpufortrt_copyout4_r4 + module procedure :: gpufortrt_copyout5_r4 + module procedure :: gpufortrt_copyout6_r4 + module procedure :: gpufortrt_copyout7_r4 + module procedure :: gpufortrt_copyout0_r8 + module procedure :: gpufortrt_copyout1_r8 + module procedure :: gpufortrt_copyout2_r8 + module procedure :: gpufortrt_copyout3_r8 + module procedure :: gpufortrt_copyout4_r8 + module procedure :: gpufortrt_copyout5_r8 + module procedure :: gpufortrt_copyout6_r8 + module procedure :: gpufortrt_copyout7_r8 + module procedure :: gpufortrt_copyout0_c4 + module procedure :: gpufortrt_copyout1_c4 + module procedure :: gpufortrt_copyout2_c4 + module procedure :: gpufortrt_copyout3_c4 + module procedure :: gpufortrt_copyout4_c4 + module procedure :: gpufortrt_copyout5_c4 + module procedure :: gpufortrt_copyout6_c4 + module procedure :: gpufortrt_copyout7_c4 + module procedure :: gpufortrt_copyout0_c8 + module procedure :: gpufortrt_copyout1_c8 + module procedure :: gpufortrt_copyout2_c8 + module procedure :: gpufortrt_copyout3_c8 + module procedure :: gpufortrt_copyout4_c8 + module procedure :: gpufortrt_copyout5_c8 + module procedure :: gpufortrt_copyout6_c8 + module procedure :: gpufortrt_copyout7_c8 + end interface + + + interface gpufortrt_update_self + module procedure :: gpufortrt_update_self_b + module procedure :: gpufortrt_update_self0_l1 + module procedure :: gpufortrt_update_self1_l1 + module procedure :: gpufortrt_update_self2_l1 + module procedure :: gpufortrt_update_self3_l1 + module procedure :: gpufortrt_update_self4_l1 + module procedure :: gpufortrt_update_self5_l1 + module procedure :: gpufortrt_update_self6_l1 + module procedure :: gpufortrt_update_self7_l1 + module procedure :: gpufortrt_update_self0_l4 + module procedure :: gpufortrt_update_self1_l4 + module procedure :: gpufortrt_update_self2_l4 + module procedure :: gpufortrt_update_self3_l4 + module procedure :: gpufortrt_update_self4_l4 + module procedure :: gpufortrt_update_self5_l4 + module procedure :: gpufortrt_update_self6_l4 + module procedure :: gpufortrt_update_self7_l4 + module procedure :: gpufortrt_update_self0_ch1 + module procedure :: gpufortrt_update_self1_ch1 + module procedure :: gpufortrt_update_self2_ch1 + module procedure :: gpufortrt_update_self3_ch1 + module procedure :: gpufortrt_update_self4_ch1 + module procedure :: gpufortrt_update_self5_ch1 + module procedure :: gpufortrt_update_self6_ch1 + module procedure :: gpufortrt_update_self7_ch1 + module procedure :: gpufortrt_update_self0_i1 + module procedure :: gpufortrt_update_self1_i1 + module procedure :: gpufortrt_update_self2_i1 + module procedure :: gpufortrt_update_self3_i1 + module procedure :: gpufortrt_update_self4_i1 + module procedure :: gpufortrt_update_self5_i1 + module procedure :: gpufortrt_update_self6_i1 + module procedure :: gpufortrt_update_self7_i1 + module procedure :: gpufortrt_update_self0_i2 + module procedure :: gpufortrt_update_self1_i2 + module procedure :: gpufortrt_update_self2_i2 + module procedure :: gpufortrt_update_self3_i2 + module procedure :: gpufortrt_update_self4_i2 + module procedure :: gpufortrt_update_self5_i2 + module procedure :: gpufortrt_update_self6_i2 + module procedure :: gpufortrt_update_self7_i2 + module procedure :: gpufortrt_update_self0_i4 + module procedure :: gpufortrt_update_self1_i4 + module procedure :: gpufortrt_update_self2_i4 + module procedure :: gpufortrt_update_self3_i4 + module procedure :: gpufortrt_update_self4_i4 + module procedure :: gpufortrt_update_self5_i4 + module procedure :: gpufortrt_update_self6_i4 + module procedure :: gpufortrt_update_self7_i4 + module procedure :: gpufortrt_update_self0_i8 + module procedure :: gpufortrt_update_self1_i8 + module procedure :: gpufortrt_update_self2_i8 + module procedure :: gpufortrt_update_self3_i8 + module procedure :: gpufortrt_update_self4_i8 + module procedure :: gpufortrt_update_self5_i8 + module procedure :: gpufortrt_update_self6_i8 + module procedure :: gpufortrt_update_self7_i8 + module procedure :: gpufortrt_update_self0_r4 + module procedure :: gpufortrt_update_self1_r4 + module procedure :: gpufortrt_update_self2_r4 + module procedure :: gpufortrt_update_self3_r4 + module procedure :: gpufortrt_update_self4_r4 + module procedure :: gpufortrt_update_self5_r4 + module procedure :: gpufortrt_update_self6_r4 + module procedure :: gpufortrt_update_self7_r4 + module procedure :: gpufortrt_update_self0_r8 + module procedure :: gpufortrt_update_self1_r8 + module procedure :: gpufortrt_update_self2_r8 + module procedure :: gpufortrt_update_self3_r8 + module procedure :: gpufortrt_update_self4_r8 + module procedure :: gpufortrt_update_self5_r8 + module procedure :: gpufortrt_update_self6_r8 + module procedure :: gpufortrt_update_self7_r8 + module procedure :: gpufortrt_update_self0_c4 + module procedure :: gpufortrt_update_self1_c4 + module procedure :: gpufortrt_update_self2_c4 + module procedure :: gpufortrt_update_self3_c4 + module procedure :: gpufortrt_update_self4_c4 + module procedure :: gpufortrt_update_self5_c4 + module procedure :: gpufortrt_update_self6_c4 + module procedure :: gpufortrt_update_self7_c4 + module procedure :: gpufortrt_update_self0_c8 + module procedure :: gpufortrt_update_self1_c8 + module procedure :: gpufortrt_update_self2_c8 + module procedure :: gpufortrt_update_self3_c8 + module procedure :: gpufortrt_update_self4_c8 + module procedure :: gpufortrt_update_self5_c8 + module procedure :: gpufortrt_update_self6_c8 + module procedure :: gpufortrt_update_self7_c8 + end interface + + interface gpufortrt_update_device + module procedure :: gpufortrt_update_device_b + module procedure :: gpufortrt_update_device0_l1 + module procedure :: gpufortrt_update_device1_l1 + module procedure :: gpufortrt_update_device2_l1 + module procedure :: gpufortrt_update_device3_l1 + module procedure :: gpufortrt_update_device4_l1 + module procedure :: gpufortrt_update_device5_l1 + module procedure :: gpufortrt_update_device6_l1 + module procedure :: gpufortrt_update_device7_l1 + module procedure :: gpufortrt_update_device0_l4 + module procedure :: gpufortrt_update_device1_l4 + module procedure :: gpufortrt_update_device2_l4 + module procedure :: gpufortrt_update_device3_l4 + module procedure :: gpufortrt_update_device4_l4 + module procedure :: gpufortrt_update_device5_l4 + module procedure :: gpufortrt_update_device6_l4 + module procedure :: gpufortrt_update_device7_l4 + module procedure :: gpufortrt_update_device0_ch1 + module procedure :: gpufortrt_update_device1_ch1 + module procedure :: gpufortrt_update_device2_ch1 + module procedure :: gpufortrt_update_device3_ch1 + module procedure :: gpufortrt_update_device4_ch1 + module procedure :: gpufortrt_update_device5_ch1 + module procedure :: gpufortrt_update_device6_ch1 + module procedure :: gpufortrt_update_device7_ch1 + module procedure :: gpufortrt_update_device0_i1 + module procedure :: gpufortrt_update_device1_i1 + module procedure :: gpufortrt_update_device2_i1 + module procedure :: gpufortrt_update_device3_i1 + module procedure :: gpufortrt_update_device4_i1 + module procedure :: gpufortrt_update_device5_i1 + module procedure :: gpufortrt_update_device6_i1 + module procedure :: gpufortrt_update_device7_i1 + module procedure :: gpufortrt_update_device0_i2 + module procedure :: gpufortrt_update_device1_i2 + module procedure :: gpufortrt_update_device2_i2 + module procedure :: gpufortrt_update_device3_i2 + module procedure :: gpufortrt_update_device4_i2 + module procedure :: gpufortrt_update_device5_i2 + module procedure :: gpufortrt_update_device6_i2 + module procedure :: gpufortrt_update_device7_i2 + module procedure :: gpufortrt_update_device0_i4 + module procedure :: gpufortrt_update_device1_i4 + module procedure :: gpufortrt_update_device2_i4 + module procedure :: gpufortrt_update_device3_i4 + module procedure :: gpufortrt_update_device4_i4 + module procedure :: gpufortrt_update_device5_i4 + module procedure :: gpufortrt_update_device6_i4 + module procedure :: gpufortrt_update_device7_i4 + module procedure :: gpufortrt_update_device0_i8 + module procedure :: gpufortrt_update_device1_i8 + module procedure :: gpufortrt_update_device2_i8 + module procedure :: gpufortrt_update_device3_i8 + module procedure :: gpufortrt_update_device4_i8 + module procedure :: gpufortrt_update_device5_i8 + module procedure :: gpufortrt_update_device6_i8 + module procedure :: gpufortrt_update_device7_i8 + module procedure :: gpufortrt_update_device0_r4 + module procedure :: gpufortrt_update_device1_r4 + module procedure :: gpufortrt_update_device2_r4 + module procedure :: gpufortrt_update_device3_r4 + module procedure :: gpufortrt_update_device4_r4 + module procedure :: gpufortrt_update_device5_r4 + module procedure :: gpufortrt_update_device6_r4 + module procedure :: gpufortrt_update_device7_r4 + module procedure :: gpufortrt_update_device0_r8 + module procedure :: gpufortrt_update_device1_r8 + module procedure :: gpufortrt_update_device2_r8 + module procedure :: gpufortrt_update_device3_r8 + module procedure :: gpufortrt_update_device4_r8 + module procedure :: gpufortrt_update_device5_r8 + module procedure :: gpufortrt_update_device6_r8 + module procedure :: gpufortrt_update_device7_r8 + module procedure :: gpufortrt_update_device0_c4 + module procedure :: gpufortrt_update_device1_c4 + module procedure :: gpufortrt_update_device2_c4 + module procedure :: gpufortrt_update_device3_c4 + module procedure :: gpufortrt_update_device4_c4 + module procedure :: gpufortrt_update_device5_c4 + module procedure :: gpufortrt_update_device6_c4 + module procedure :: gpufortrt_update_device7_c4 + module procedure :: gpufortrt_update_device0_c8 + module procedure :: gpufortrt_update_device1_c8 + module procedure :: gpufortrt_update_device2_c8 + module procedure :: gpufortrt_update_device3_c8 + module procedure :: gpufortrt_update_device4_c8 + module procedure :: gpufortrt_update_device5_c8 + module procedure :: gpufortrt_update_device6_c8 + module procedure :: gpufortrt_update_device7_c8 + end interface + + + interface gpufortrt_use_device + module procedure :: gpufortrt_use_device0_l1 + module procedure :: gpufortrt_use_device0_l4 + module procedure :: gpufortrt_use_device0_ch1 + module procedure :: gpufortrt_use_device0_i1 + module procedure :: gpufortrt_use_device0_i2 + module procedure :: gpufortrt_use_device0_i4 + module procedure :: gpufortrt_use_device0_i8 + module procedure :: gpufortrt_use_device0_r4 + module procedure :: gpufortrt_use_device0_r8 + module procedure :: gpufortrt_use_device0_c4 + module procedure :: gpufortrt_use_device0_c8 + module procedure :: gpufortrt_use_device1_l1 + module procedure :: gpufortrt_use_device1_l4 + module procedure :: gpufortrt_use_device1_ch1 + module procedure :: gpufortrt_use_device1_i1 + module procedure :: gpufortrt_use_device1_i2 + module procedure :: gpufortrt_use_device1_i4 + module procedure :: gpufortrt_use_device1_i8 + module procedure :: gpufortrt_use_device1_r4 + module procedure :: gpufortrt_use_device1_r8 + module procedure :: gpufortrt_use_device1_c4 + module procedure :: gpufortrt_use_device1_c8 + module procedure :: gpufortrt_use_device2_l1 + module procedure :: gpufortrt_use_device2_l4 + module procedure :: gpufortrt_use_device2_ch1 + module procedure :: gpufortrt_use_device2_i1 + module procedure :: gpufortrt_use_device2_i2 + module procedure :: gpufortrt_use_device2_i4 + module procedure :: gpufortrt_use_device2_i8 + module procedure :: gpufortrt_use_device2_r4 + module procedure :: gpufortrt_use_device2_r8 + module procedure :: gpufortrt_use_device2_c4 + module procedure :: gpufortrt_use_device2_c8 + module procedure :: gpufortrt_use_device3_l1 + module procedure :: gpufortrt_use_device3_l4 + module procedure :: gpufortrt_use_device3_ch1 + module procedure :: gpufortrt_use_device3_i1 + module procedure :: gpufortrt_use_device3_i2 + module procedure :: gpufortrt_use_device3_i4 + module procedure :: gpufortrt_use_device3_i8 + module procedure :: gpufortrt_use_device3_r4 + module procedure :: gpufortrt_use_device3_r8 + module procedure :: gpufortrt_use_device3_c4 + module procedure :: gpufortrt_use_device3_c8 + module procedure :: gpufortrt_use_device4_l1 + module procedure :: gpufortrt_use_device4_l4 + module procedure :: gpufortrt_use_device4_ch1 + module procedure :: gpufortrt_use_device4_i1 + module procedure :: gpufortrt_use_device4_i2 + module procedure :: gpufortrt_use_device4_i4 + module procedure :: gpufortrt_use_device4_i8 + module procedure :: gpufortrt_use_device4_r4 + module procedure :: gpufortrt_use_device4_r8 + module procedure :: gpufortrt_use_device4_c4 + module procedure :: gpufortrt_use_device4_c8 + module procedure :: gpufortrt_use_device5_l1 + module procedure :: gpufortrt_use_device5_l4 + module procedure :: gpufortrt_use_device5_ch1 + module procedure :: gpufortrt_use_device5_i1 + module procedure :: gpufortrt_use_device5_i2 + module procedure :: gpufortrt_use_device5_i4 + module procedure :: gpufortrt_use_device5_i8 + module procedure :: gpufortrt_use_device5_r4 + module procedure :: gpufortrt_use_device5_r8 + module procedure :: gpufortrt_use_device5_c4 + module procedure :: gpufortrt_use_device5_c8 + module procedure :: gpufortrt_use_device6_l1 + module procedure :: gpufortrt_use_device6_l4 + module procedure :: gpufortrt_use_device6_ch1 + module procedure :: gpufortrt_use_device6_i1 + module procedure :: gpufortrt_use_device6_i2 + module procedure :: gpufortrt_use_device6_i4 + module procedure :: gpufortrt_use_device6_i8 + module procedure :: gpufortrt_use_device6_r4 + module procedure :: gpufortrt_use_device6_r8 + module procedure :: gpufortrt_use_device6_c4 + module procedure :: gpufortrt_use_device6_c8 + module procedure :: gpufortrt_use_device7_l1 + module procedure :: gpufortrt_use_device7_l4 + module procedure :: gpufortrt_use_device7_ch1 + module procedure :: gpufortrt_use_device7_i1 + module procedure :: gpufortrt_use_device7_i2 + module procedure :: gpufortrt_use_device7_i4 + module procedure :: gpufortrt_use_device7_i8 + module procedure :: gpufortrt_use_device7_r4 + module procedure :: gpufortrt_use_device7_r8 + module procedure :: gpufortrt_use_device7_c4 + module procedure :: gpufortrt_use_device7_c8 + end interface + + + interface gpufortrt_deviceptr + module procedure :: gpufortrt_deviceptr0_l1 + module procedure :: gpufortrt_deviceptr1_l1 + module procedure :: gpufortrt_deviceptr2_l1 + module procedure :: gpufortrt_deviceptr3_l1 + module procedure :: gpufortrt_deviceptr4_l1 + module procedure :: gpufortrt_deviceptr5_l1 + module procedure :: gpufortrt_deviceptr6_l1 + module procedure :: gpufortrt_deviceptr7_l1 + module procedure :: gpufortrt_deviceptr0_l4 + module procedure :: gpufortrt_deviceptr1_l4 + module procedure :: gpufortrt_deviceptr2_l4 + module procedure :: gpufortrt_deviceptr3_l4 + module procedure :: gpufortrt_deviceptr4_l4 + module procedure :: gpufortrt_deviceptr5_l4 + module procedure :: gpufortrt_deviceptr6_l4 + module procedure :: gpufortrt_deviceptr7_l4 + module procedure :: gpufortrt_deviceptr0_ch1 + module procedure :: gpufortrt_deviceptr1_ch1 + module procedure :: gpufortrt_deviceptr2_ch1 + module procedure :: gpufortrt_deviceptr3_ch1 + module procedure :: gpufortrt_deviceptr4_ch1 + module procedure :: gpufortrt_deviceptr5_ch1 + module procedure :: gpufortrt_deviceptr6_ch1 + module procedure :: gpufortrt_deviceptr7_ch1 + module procedure :: gpufortrt_deviceptr0_i1 + module procedure :: gpufortrt_deviceptr1_i1 + module procedure :: gpufortrt_deviceptr2_i1 + module procedure :: gpufortrt_deviceptr3_i1 + module procedure :: gpufortrt_deviceptr4_i1 + module procedure :: gpufortrt_deviceptr5_i1 + module procedure :: gpufortrt_deviceptr6_i1 + module procedure :: gpufortrt_deviceptr7_i1 + module procedure :: gpufortrt_deviceptr0_i2 + module procedure :: gpufortrt_deviceptr1_i2 + module procedure :: gpufortrt_deviceptr2_i2 + module procedure :: gpufortrt_deviceptr3_i2 + module procedure :: gpufortrt_deviceptr4_i2 + module procedure :: gpufortrt_deviceptr5_i2 + module procedure :: gpufortrt_deviceptr6_i2 + module procedure :: gpufortrt_deviceptr7_i2 + module procedure :: gpufortrt_deviceptr0_i4 + module procedure :: gpufortrt_deviceptr1_i4 + module procedure :: gpufortrt_deviceptr2_i4 + module procedure :: gpufortrt_deviceptr3_i4 + module procedure :: gpufortrt_deviceptr4_i4 + module procedure :: gpufortrt_deviceptr5_i4 + module procedure :: gpufortrt_deviceptr6_i4 + module procedure :: gpufortrt_deviceptr7_i4 + module procedure :: gpufortrt_deviceptr0_i8 + module procedure :: gpufortrt_deviceptr1_i8 + module procedure :: gpufortrt_deviceptr2_i8 + module procedure :: gpufortrt_deviceptr3_i8 + module procedure :: gpufortrt_deviceptr4_i8 + module procedure :: gpufortrt_deviceptr5_i8 + module procedure :: gpufortrt_deviceptr6_i8 + module procedure :: gpufortrt_deviceptr7_i8 + module procedure :: gpufortrt_deviceptr0_r4 + module procedure :: gpufortrt_deviceptr1_r4 + module procedure :: gpufortrt_deviceptr2_r4 + module procedure :: gpufortrt_deviceptr3_r4 + module procedure :: gpufortrt_deviceptr4_r4 + module procedure :: gpufortrt_deviceptr5_r4 + module procedure :: gpufortrt_deviceptr6_r4 + module procedure :: gpufortrt_deviceptr7_r4 + module procedure :: gpufortrt_deviceptr0_r8 + module procedure :: gpufortrt_deviceptr1_r8 + module procedure :: gpufortrt_deviceptr2_r8 + module procedure :: gpufortrt_deviceptr3_r8 + module procedure :: gpufortrt_deviceptr4_r8 + module procedure :: gpufortrt_deviceptr5_r8 + module procedure :: gpufortrt_deviceptr6_r8 + module procedure :: gpufortrt_deviceptr7_r8 + module procedure :: gpufortrt_deviceptr0_c4 + module procedure :: gpufortrt_deviceptr1_c4 + module procedure :: gpufortrt_deviceptr2_c4 + module procedure :: gpufortrt_deviceptr3_c4 + module procedure :: gpufortrt_deviceptr4_c4 + module procedure :: gpufortrt_deviceptr5_c4 + module procedure :: gpufortrt_deviceptr6_c4 + module procedure :: gpufortrt_deviceptr7_c4 + module procedure :: gpufortrt_deviceptr0_c8 + module procedure :: gpufortrt_deviceptr1_c8 + module procedure :: gpufortrt_deviceptr2_c8 + module procedure :: gpufortrt_deviceptr3_c8 + module procedure :: gpufortrt_deviceptr4_c8 + module procedure :: gpufortrt_deviceptr5_c8 + module procedure :: gpufortrt_deviceptr6_c8 + module procedure :: gpufortrt_deviceptr7_c8 + end interface + + +contains + + function gpufortrt_map_present_b(hostptr,num_bytes,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),intent(in) :: hostptr + integer(c_size_t),intent(in),optional :: num_bytes + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + call gpufortrt_mapping_init(retval,hostptr,num_bytes,& + gpufortrt_map_kind_present,never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present0_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present1_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present2_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present3_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present4_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present5_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present6_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present7_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present0_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present1_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present2_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present3_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present4_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present5_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present6_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present7_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present0_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present1_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present2_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present3_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present4_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present5_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present6_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present7_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present0_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present1_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present2_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present3_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present4_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present5_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present6_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present7_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present0_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present1_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present2_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present3_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present4_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present5_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present6_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present7_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present0_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present1_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present2_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present3_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present4_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present5_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present6_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present7_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present0_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present1_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present2_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present3_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present4_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present5_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present6_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present7_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present0_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present1_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present2_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present3_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present4_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present5_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present6_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present7_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present0_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present1_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present2_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present3_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present4_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present5_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present6_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present7_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present0_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present1_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present2_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present3_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present4_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present5_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present6_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present7_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present0_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*8,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present1_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present2_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present3_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present4_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present5_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present6_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_present7_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + function gpufortrt_map_no_create_b(hostptr,num_bytes,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),intent(in) :: hostptr + integer(c_size_t),intent(in),optional :: num_bytes + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + call gpufortrt_mapping_init(retval,hostptr,num_bytes,& + gpufortrt_map_kind_no_create,never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create0_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create1_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create2_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create3_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create4_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create5_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create6_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create7_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create0_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create1_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create2_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create3_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create4_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create5_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create6_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create7_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create0_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create1_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create2_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create3_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create4_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create5_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create6_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create7_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create0_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create1_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create2_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create3_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create4_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create5_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create6_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create7_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create0_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create1_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create2_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create3_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create4_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create5_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create6_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create7_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create0_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create1_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create2_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create3_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create4_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create5_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create6_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create7_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create0_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create1_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create2_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create3_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create4_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create5_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create6_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create7_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create0_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create1_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create2_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create3_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create4_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create5_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create6_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create7_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create0_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create1_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create2_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create3_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create4_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create5_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create6_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create7_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create0_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create1_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create2_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create3_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create4_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create5_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create6_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create7_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create0_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*8,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create1_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create2_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create3_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create4_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create5_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create6_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_no_create7_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + function gpufortrt_map_create_b(hostptr,num_bytes,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),intent(in) :: hostptr + integer(c_size_t),intent(in),optional :: num_bytes + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + call gpufortrt_mapping_init(retval,hostptr,num_bytes,& + gpufortrt_map_kind_create,never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create0_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create1_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create2_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create3_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create4_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create5_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create6_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create7_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create0_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create1_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create2_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create3_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create4_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create5_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create6_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create7_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create0_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create1_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create2_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create3_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create4_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create5_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create6_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create7_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create0_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create1_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create2_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create3_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create4_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create5_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create6_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create7_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create0_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create1_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create2_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create3_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create4_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create5_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create6_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create7_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create0_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create1_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create2_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create3_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create4_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create5_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create6_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create7_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create0_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create1_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create2_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create3_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create4_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create5_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create6_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create7_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create0_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create1_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create2_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create3_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create4_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create5_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create6_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create7_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create0_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create1_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create2_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create3_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create4_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create5_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create6_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create7_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create0_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create1_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create2_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create3_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create4_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create5_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create6_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create7_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create0_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*8,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create1_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create2_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create3_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create4_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create5_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create6_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_create7_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + function gpufortrt_map_copyin_b(hostptr,num_bytes,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),intent(in) :: hostptr + integer(c_size_t),intent(in),optional :: num_bytes + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + call gpufortrt_mapping_init(retval,hostptr,num_bytes,& + gpufortrt_map_kind_copyin,never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin0_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin1_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin2_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin3_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin4_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin5_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin6_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin7_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin0_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin1_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin2_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin3_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin4_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin5_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin6_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin7_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin0_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin1_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin2_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin3_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin4_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin5_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin6_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin7_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin0_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin1_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin2_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin3_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin4_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin5_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin6_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin7_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin0_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin1_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin2_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin3_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin4_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin5_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin6_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin7_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin0_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin1_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin2_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin3_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin4_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin5_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin6_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin7_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin0_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin1_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin2_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin3_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin4_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin5_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin6_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin7_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin0_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin1_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin2_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin3_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin4_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin5_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin6_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin7_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin0_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin1_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin2_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin3_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin4_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin5_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin6_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin7_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin0_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin1_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin2_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin3_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin4_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin5_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin6_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin7_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin0_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*8,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin1_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin2_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin3_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin4_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin5_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin6_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyin7_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + function gpufortrt_map_copy_b(hostptr,num_bytes,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),intent(in) :: hostptr + integer(c_size_t),intent(in),optional :: num_bytes + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + call gpufortrt_mapping_init(retval,hostptr,num_bytes,& + gpufortrt_map_kind_copy,never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy0_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy1_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy2_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy3_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy4_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy5_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy6_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy7_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy0_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy1_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy2_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy3_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy4_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy5_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy6_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy7_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy0_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy1_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy2_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy3_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy4_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy5_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy6_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy7_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy0_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy1_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy2_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy3_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy4_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy5_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy6_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy7_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy0_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy1_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy2_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy3_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy4_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy5_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy6_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy7_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy0_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy1_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy2_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy3_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy4_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy5_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy6_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy7_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy0_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy1_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy2_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy3_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy4_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy5_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy6_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy7_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy0_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy1_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy2_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy3_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy4_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy5_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy6_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy7_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy0_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy1_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy2_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy3_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy4_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy5_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy6_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy7_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy0_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy1_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy2_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy3_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy4_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy5_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy6_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy7_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy0_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*8,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy1_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy2_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy3_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy4_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy5_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy6_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copy7_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + function gpufortrt_map_copyout_b(hostptr,num_bytes,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),intent(in) :: hostptr + integer(c_size_t),intent(in),optional :: num_bytes + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + call gpufortrt_mapping_init(retval,hostptr,num_bytes,& + gpufortrt_map_kind_copyout,never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout0_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout1_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout2_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout3_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout4_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout5_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout6_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout7_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout0_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout1_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout2_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout3_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout4_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout5_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout6_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout7_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout0_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout1_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout2_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout3_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout4_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout5_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout6_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout7_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout0_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout1_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout2_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout3_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout4_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout5_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout6_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout7_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout0_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout1_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout2_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout3_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout4_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout5_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout6_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout7_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout0_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout1_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout2_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout3_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout4_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout5_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout6_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout7_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout0_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout1_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout2_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout3_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout4_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout5_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout6_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout7_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout0_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout1_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout2_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout3_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout4_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout5_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout6_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout7_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout0_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout1_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout2_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout3_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout4_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout5_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout6_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout7_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout0_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout1_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout2_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout3_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout4_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout5_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout6_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout7_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout0_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*8,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout1_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout2_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout3_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout4_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout5_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout6_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_copyout7_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + function gpufortrt_map_delete_b(hostptr,num_bytes,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),intent(in) :: hostptr + integer(c_size_t),intent(in),optional :: num_bytes + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + call gpufortrt_mapping_init(retval,hostptr,num_bytes,& + gpufortrt_map_kind_delete,never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete0_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete1_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete2_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete3_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete4_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete5_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete6_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete7_l1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete0_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete1_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete2_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete3_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete4_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete5_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete6_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete7_l4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete0_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete1_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete2_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete3_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete4_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete5_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete6_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete7_ch1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete0_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete1_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete2_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete3_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete4_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete5_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete6_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete7_i1(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete0_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete1_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete2_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete3_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete4_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete5_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete6_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete7_i2(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete0_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete1_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete2_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete3_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete4_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete5_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete6_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete7_i4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete0_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete1_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete2_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete3_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete4_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete5_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete6_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete7_i8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete0_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete1_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete2_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete3_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete4_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete5_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete6_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete7_r4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete0_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete1_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete2_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete3_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete4_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete5_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete6_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete7_r8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete0_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*4,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete1_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete2_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete3_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete4_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete5_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete6_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete7_c4(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete0_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*8,c_size_t),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete1_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete2_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete3_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete4_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete5_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete6_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. + function gpufortrt_map_delete7_c8(hostptr,never_deallocate) result(retval) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + ! + type(gpufortrt_mapping_t) :: retval + ! + retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) + end function + + + + !> Map and directly return the corresponding deviceptr. + function gpufortrt_create_b(hostptr,num_bytes,never_deallocate,& + async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),intent(in) :: hostptr + integer(c_size_t),intent(in) :: num_bytes + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + interface + function gpufortrt_create_c_impl(hostptr,num_bytes,never_deallocate) & + bind(c,name="gpufortrt_create") result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + logical(c_bool),value,intent(in) :: never_deallocate + ! + type(c_ptr) :: deviceptr + end function + function gpufortrt_create_async_c_impl(hostptr,num_bytes,never_deallocate,async_arg) & + bind(c,name="gpufortrt_create_async") result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + logical(c_bool),value,intent(in) :: never_deallocate + integer(gpufortrt_handle_kind),value,intent(in) :: async_arg + ! + type(c_ptr) :: deviceptr + end function + end interface + ! + logical(c_bool) :: opt_never_deallocate + ! + opt_never_deallocate = .false._c_bool + if ( present(never_deallocate) ) opt_never_deallocate = never_deallocate + if ( present(async_arg) ) then + deviceptr = gpufortrt_create_async_c_impl(hostptr,num_bytes,opt_never_deallocate,async_arg) + else + deviceptr = gpufortrt_create_c_impl(hostptr,num_bytes,opt_never_deallocate) + endif + end function + + !> Map and directly return the corresponding deviceptr. + function gpufortrt_copyin_b(hostptr,num_bytes,never_deallocate,& + async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),intent(in) :: hostptr + integer(c_size_t),intent(in) :: num_bytes + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + interface + function gpufortrt_copyin_c_impl(hostptr,num_bytes,never_deallocate) & + bind(c,name="gpufortrt_copyin") result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + logical(c_bool),value,intent(in) :: never_deallocate + ! + type(c_ptr) :: deviceptr + end function + function gpufortrt_copyin_async_c_impl(hostptr,num_bytes,never_deallocate,async_arg) & + bind(c,name="gpufortrt_copyin_async") result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + logical(c_bool),value,intent(in) :: never_deallocate + integer(gpufortrt_handle_kind),value,intent(in) :: async_arg + ! + type(c_ptr) :: deviceptr + end function + end interface + ! + logical(c_bool) :: opt_never_deallocate + ! + opt_never_deallocate = .false._c_bool + if ( present(never_deallocate) ) opt_never_deallocate = never_deallocate + if ( present(async_arg) ) then + deviceptr = gpufortrt_copyin_async_c_impl(hostptr,num_bytes,opt_never_deallocate,async_arg) + else + deviceptr = gpufortrt_copyin_c_impl(hostptr,num_bytes,opt_never_deallocate) + endif + end function + + !> Map and directly return the corresponding deviceptr. + function gpufortrt_copy_b(hostptr,num_bytes,never_deallocate,& + async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),intent(in) :: hostptr + integer(c_size_t),intent(in) :: num_bytes + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + interface + function gpufortrt_copy_c_impl(hostptr,num_bytes,never_deallocate) & + bind(c,name="gpufortrt_copy") result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + logical(c_bool),value,intent(in) :: never_deallocate + ! + type(c_ptr) :: deviceptr + end function + function gpufortrt_copy_async_c_impl(hostptr,num_bytes,never_deallocate,async_arg) & + bind(c,name="gpufortrt_copy_async") result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + logical(c_bool),value,intent(in) :: never_deallocate + integer(gpufortrt_handle_kind),value,intent(in) :: async_arg + ! + type(c_ptr) :: deviceptr + end function + end interface + ! + logical(c_bool) :: opt_never_deallocate + ! + opt_never_deallocate = .false._c_bool + if ( present(never_deallocate) ) opt_never_deallocate = never_deallocate + if ( present(async_arg) ) then + deviceptr = gpufortrt_copy_async_c_impl(hostptr,num_bytes,opt_never_deallocate,async_arg) + else + deviceptr = gpufortrt_copy_c_impl(hostptr,num_bytes,opt_never_deallocate) + endif + end function + + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_create0_l1(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create1_l1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create2_l1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create3_l1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create4_l1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create5_l1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create6_l1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create7_l1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_create0_l4(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create1_l4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create2_l4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create3_l4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create4_l4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create5_l4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create6_l4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create7_l4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_create0_ch1(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create1_ch1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create2_ch1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create3_ch1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create4_ch1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create5_ch1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create6_ch1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create7_ch1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_create0_i1(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create1_i1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create2_i1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create3_i1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create4_i1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create5_i1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create6_i1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create7_i1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_create0_i2(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create1_i2(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create2_i2(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create3_i2(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create4_i2(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create5_i2(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create6_i2(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create7_i2(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_create0_i4(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create1_i4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create2_i4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create3_i4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create4_i4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create5_i4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create6_i4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create7_i4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_create0_i8(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create1_i8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create2_i8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create3_i8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create4_i8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create5_i8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create6_i8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create7_i8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_create0_r4(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create1_r4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create2_r4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create3_r4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create4_r4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create5_r4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create6_r4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create7_r4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_create0_r8(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create1_r8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create2_r8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create3_r8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create4_r8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create5_r8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create6_r8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create7_r8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_create0_c4(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*4,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create1_c4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create2_c4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create3_c4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create4_c4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create5_c4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create6_c4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create7_c4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_create0_c8(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*8,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create1_c8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create2_c8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create3_c8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create4_c8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create5_c8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create6_c8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_create7_c8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_copyin0_l1(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin1_l1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin2_l1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin3_l1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin4_l1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin5_l1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin6_l1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin7_l1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_copyin0_l4(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin1_l4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin2_l4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin3_l4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin4_l4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin5_l4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin6_l4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin7_l4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_copyin0_ch1(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin1_ch1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin2_ch1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin3_ch1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin4_ch1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin5_ch1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin6_ch1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin7_ch1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_copyin0_i1(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin1_i1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin2_i1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin3_i1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin4_i1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin5_i1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin6_i1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin7_i1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_copyin0_i2(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin1_i2(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin2_i2(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin3_i2(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin4_i2(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin5_i2(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin6_i2(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin7_i2(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_copyin0_i4(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin1_i4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin2_i4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin3_i4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin4_i4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin5_i4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin6_i4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin7_i4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_copyin0_i8(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin1_i8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin2_i8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin3_i8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin4_i8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin5_i8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin6_i8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin7_i8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_copyin0_r4(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin1_r4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin2_r4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin3_r4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin4_r4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin5_r4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin6_r4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin7_r4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_copyin0_r8(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin1_r8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin2_r8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin3_r8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin4_r8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin5_r8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin6_r8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin7_r8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_copyin0_c4(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*4,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin1_c4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin2_c4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin3_c4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin4_c4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin5_c4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin6_c4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin7_c4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_copyin0_c8(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*8,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin1_c8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin2_c8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin3_c8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin4_c8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin5_c8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin6_c8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copyin7_c8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_copy0_l1(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy1_l1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy2_l1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy3_l1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy4_l1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy5_l1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy6_l1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy7_l1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_copy0_l4(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy1_l4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy2_l4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy3_l4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy4_l4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy5_l4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy6_l4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy7_l4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_copy0_ch1(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy1_ch1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy2_ch1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy3_ch1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy4_ch1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy5_ch1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy6_ch1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy7_ch1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_copy0_i1(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy1_i1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy2_i1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy3_i1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy4_i1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy5_i1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy6_i1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy7_i1(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_copy0_i2(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy1_i2(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy2_i2(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy3_i2(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy4_i2(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy5_i2(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy6_i2(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy7_i2(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_copy0_i4(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy1_i4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy2_i4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy3_i4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy4_i4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy5_i4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy6_i4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy7_i4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_copy0_i8(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy1_i8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy2_i8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy3_i8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy4_i8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy5_i8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy6_i8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy7_i8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_copy0_r4(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy1_r4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy2_r4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy3_r4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy4_r4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy5_r4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy6_r4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy7_r4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_copy0_r8(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy1_r8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy2_r8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy3_r8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy4_r8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy5_r8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy6_r8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy7_r8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_copy0_c4(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*4,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy1_c4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy2_c4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy3_c4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy4_c4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy5_c4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy6_c4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy7_c4(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran scalar arguments) + function gpufortrt_copy0_c8(hostptr,never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*8,kind=c_size_t),& + never_deallocate,async_arg) + end function + + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy1_c8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy2_c8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy3_c8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy4_c8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy5_c8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy6_c8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + !> Map and directly return the corresponding deviceptr. + !> (Specialized version for Fortran array arguments) + function gpufortrt_copy7_c8(hostptr,& + never_deallocate,async_arg) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + never_deallocate,async_arg) + end function + + function gpufortrt_present0_l1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)) + end function + + function gpufortrt_present1_l1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present2_l1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present3_l1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present4_l1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present5_l1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present6_l1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present7_l1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present0_l4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)) + end function + + function gpufortrt_present1_l4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present2_l4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present3_l4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present4_l4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present5_l4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present6_l4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present7_l4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present0_ch1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)) + end function + + function gpufortrt_present1_ch1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present2_ch1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present3_ch1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present4_ch1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present5_ch1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present6_ch1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present7_ch1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present0_i1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)) + end function + + function gpufortrt_present1_i1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present2_i1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present3_i1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present4_i1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present5_i1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present6_i1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present7_i1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present0_i2(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2,kind=c_size_t)) + end function + + function gpufortrt_present1_i2(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present2_i2(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present3_i2(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present4_i2(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present5_i2(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present6_i2(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present7_i2(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present0_i4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)) + end function + + function gpufortrt_present1_i4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present2_i4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present3_i4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present4_i4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present5_i4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present6_i4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present7_i4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present0_i8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)) + end function + + function gpufortrt_present1_i8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present2_i8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present3_i8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present4_i8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present5_i8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present6_i8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present7_i8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present0_r4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)) + end function + + function gpufortrt_present1_r4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present2_r4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present3_r4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present4_r4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present5_r4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present6_r4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present7_r4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present0_r8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)) + end function + + function gpufortrt_present1_r8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present2_r8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present3_r8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present4_r8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present5_r8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present6_r8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present7_r8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present0_c4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*4,kind=c_size_t)) + end function + + function gpufortrt_present1_c4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present2_c4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present3_c4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present4_c4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present5_c4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present6_c4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present7_c4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present0_c8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*8,kind=c_size_t)) + end function + + function gpufortrt_present1_c8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present2_c8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present3_c8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present4_c8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present5_c8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present6_c8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr)) + end function + + function gpufortrt_present7_c8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr)) + end function + + + subroutine gpufortrt_delete_b(hostptr,num_bytes,async_arg,finalize) + use iso_c_binding + use gpufortrt_types, only: gpufortrt_handle_kind + implicit none + type(c_ptr), intent(in) :: hostptr + integer(c_size_t),intent(in),optional :: num_bytes + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + interface + subroutine gpufortrt_delete_c_impl(hostptr,num_bytes) & + bind(c,name="gpufortrt_delete") + use iso_c_binding + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + end subroutine + subroutine gpufortrt_delete_finalize_c_impl(hostptr,num_bytes) & + bind(c,name="gpufortrt_delete_finalize") + use iso_c_binding + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + end subroutine + subroutine gpufortrt_delete_async_c_impl(hostptr,num_bytes,async_arg) & + bind(c,name="gpufortrt_delete_async") + use iso_c_binding + use gpufortrt_types, only: gpufortrt_handle_kind + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + integer(gpufortrt_handle_kind),value,intent(in) :: async_arg + end subroutine + subroutine gpufortrt_delete_finalize_async_c_impl(hostptr,num_bytes,async_arg) & + bind(c,name="gpufortrt_delete_finalize_async") + use iso_c_binding + use gpufortrt_types, only: gpufortrt_handle_kind + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + integer(gpufortrt_handle_kind),value,intent(in) :: async_arg + end subroutine + end interface + ! + if ( present(async_arg) ) then + if ( present(finalize) ) then + call gpufortrt_delete_finalize_async_c_impl(hostptr,num_bytes,async_arg) + else + call gpufortrt_delete_async_c_impl(hostptr,num_bytes,async_arg) + endif + else + if ( present(finalize) ) then + call gpufortrt_delete_finalize_c_impl(hostptr,num_bytes) + else + call gpufortrt_delete_c_impl(hostptr,num_bytes) + endif + endif + end subroutine + + subroutine gpufortrt_copyout_b(hostptr,num_bytes,async_arg,finalize) + use iso_c_binding + use gpufortrt_types, only: gpufortrt_handle_kind + implicit none + type(c_ptr), intent(in) :: hostptr + integer(c_size_t),intent(in),optional :: num_bytes + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + interface + subroutine gpufortrt_copyout_c_impl(hostptr,num_bytes) & + bind(c,name="gpufortrt_copyout") + use iso_c_binding + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + end subroutine + subroutine gpufortrt_copyout_finalize_c_impl(hostptr,num_bytes) & + bind(c,name="gpufortrt_copyout_finalize") + use iso_c_binding + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + end subroutine + subroutine gpufortrt_copyout_async_c_impl(hostptr,num_bytes,async_arg) & + bind(c,name="gpufortrt_copyout_async") + use iso_c_binding + use gpufortrt_types, only: gpufortrt_handle_kind + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + integer(gpufortrt_handle_kind),value,intent(in) :: async_arg + end subroutine + subroutine gpufortrt_copyout_finalize_async_c_impl(hostptr,num_bytes,async_arg) & + bind(c,name="gpufortrt_copyout_finalize_async") + use iso_c_binding + use gpufortrt_types, only: gpufortrt_handle_kind + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + integer(gpufortrt_handle_kind),value,intent(in) :: async_arg + end subroutine + end interface + ! + if ( present(async_arg) ) then + if ( present(finalize) ) then + call gpufortrt_copyout_finalize_async_c_impl(hostptr,num_bytes,async_arg) + else + call gpufortrt_copyout_async_c_impl(hostptr,num_bytes,async_arg) + endif + else + if ( present(finalize) ) then + call gpufortrt_copyout_finalize_c_impl(hostptr,num_bytes) + else + call gpufortrt_copyout_c_impl(hostptr,num_bytes) + endif + endif + end subroutine + + + !> (Specialized version for Fortran scalar arguments) + subroutine gpufortrt_delete0_l1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete1_l1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete2_l1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete3_l1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete4_l1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete5_l1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete6_l1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete7_l1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran scalar arguments) + subroutine gpufortrt_delete0_l4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete1_l4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete2_l4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete3_l4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete4_l4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete5_l4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete6_l4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete7_l4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran scalar arguments) + subroutine gpufortrt_delete0_ch1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete1_ch1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete2_ch1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete3_ch1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete4_ch1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete5_ch1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete6_ch1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete7_ch1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran scalar arguments) + subroutine gpufortrt_delete0_i1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete1_i1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete2_i1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete3_i1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete4_i1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete5_i1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete6_i1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete7_i1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran scalar arguments) + subroutine gpufortrt_delete0_i2(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2,kind=c_size_t),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete1_i2(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete2_i2(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete3_i2(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete4_i2(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete5_i2(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete6_i2(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete7_i2(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran scalar arguments) + subroutine gpufortrt_delete0_i4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete1_i4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete2_i4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete3_i4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete4_i4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete5_i4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete6_i4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete7_i4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran scalar arguments) + subroutine gpufortrt_delete0_i8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete1_i8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete2_i8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete3_i8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete4_i8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete5_i8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete6_i8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete7_i8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran scalar arguments) + subroutine gpufortrt_delete0_r4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete1_r4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete2_r4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete3_r4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete4_r4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete5_r4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete6_r4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete7_r4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran scalar arguments) + subroutine gpufortrt_delete0_r8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete1_r8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete2_r8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete3_r8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete4_r8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete5_r8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete6_r8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete7_r8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran scalar arguments) + subroutine gpufortrt_delete0_c4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2*4,kind=c_size_t),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete1_c4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete2_c4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete3_c4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete4_c4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete5_c4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete6_c4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete7_c4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran scalar arguments) + subroutine gpufortrt_delete0_c8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2*8,kind=c_size_t),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete1_c8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete2_c8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete3_c8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete4_c8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete5_c8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete6_c8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_delete7_c8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_delete_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran scalar arguments) + subroutine gpufortrt_copyout0_l1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout1_l1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout2_l1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout3_l1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout4_l1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout5_l1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout6_l1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout7_l1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran scalar arguments) + subroutine gpufortrt_copyout0_l4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout1_l4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout2_l4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout3_l4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout4_l4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout5_l4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout6_l4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout7_l4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran scalar arguments) + subroutine gpufortrt_copyout0_ch1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout1_ch1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout2_ch1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout3_ch1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout4_ch1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout5_ch1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout6_ch1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout7_ch1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran scalar arguments) + subroutine gpufortrt_copyout0_i1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout1_i1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout2_i1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout3_i1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout4_i1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout5_i1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout6_i1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout7_i1(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran scalar arguments) + subroutine gpufortrt_copyout0_i2(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2,kind=c_size_t),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout1_i2(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout2_i2(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout3_i2(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout4_i2(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout5_i2(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout6_i2(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout7_i2(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran scalar arguments) + subroutine gpufortrt_copyout0_i4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout1_i4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout2_i4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout3_i4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout4_i4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout5_i4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout6_i4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout7_i4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran scalar arguments) + subroutine gpufortrt_copyout0_i8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout1_i8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout2_i8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout3_i8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout4_i8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout5_i8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout6_i8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout7_i8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran scalar arguments) + subroutine gpufortrt_copyout0_r4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout1_r4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout2_r4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout3_r4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout4_r4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout5_r4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout6_r4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout7_r4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran scalar arguments) + subroutine gpufortrt_copyout0_r8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout1_r8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout2_r8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout3_r8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout4_r8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout5_r8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout6_r8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout7_r8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran scalar arguments) + subroutine gpufortrt_copyout0_c4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2*4,kind=c_size_t),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout1_c4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout2_c4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout3_c4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout4_c4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout5_c4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout6_c4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout7_c4(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran scalar arguments) + subroutine gpufortrt_copyout0_c8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2*8,kind=c_size_t),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout1_c8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout2_c8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout3_c8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout4_c8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout5_c8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout6_c8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + !> (Specialized version for Fortran array arguments) + subroutine gpufortrt_copyout7_c8(hostptr,async_arg,finalize) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize + ! + call gpufortrt_copyout_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& + async_arg,finalize) + end subroutine + + + +subroutine gpufortrt_update_self_b(hostptr,num_bytes,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),intent(in) :: hostptr + integer(c_size_t),intent(in) :: num_bytes + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + interface + subroutine gpufortrt_update_self_c_impl(hostptr,num_bytes,if_arg,if_present_arg) & + bind(c,name="gpufortrt_update_self") + use iso_c_binding + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + logical(c_bool),value,intent(in) :: if_arg, if_present_arg + end subroutine + subroutine gpufortrt_update_self_async_c_impl(hostptr,num_bytes,if_arg,if_present_arg,async_arg) & + bind(c,name="gpufortrt_update_self_async") + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + logical(c_bool),value,intent(in) :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),value,intent(in) :: async_arg + end subroutine + end interface + logical :: opt_if_arg, opt_if_present_arg + ! + opt_if_arg = .true. + opt_if_present_arg = .false. + if ( present(if_arg) ) opt_if_arg = if_arg + if ( present(if_present_arg) ) opt_if_present_arg = if_present_arg + ! + if ( present(async_arg) ) then + call gpufortrt_update_self_async_c_impl(hostptr,& + num_bytes,& + logical(opt_if_arg,c_bool),& + logical(opt_if_present_arg,c_bool),& + async_arg) + else + call gpufortrt_update_self_c_impl(hostptr,& + num_bytes,& + logical(opt_if_arg,c_bool),& + logical(opt_if_present_arg,c_bool)) + endif +end subroutine + +subroutine gpufortrt_update_self0_l1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self1_l1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self2_l1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self3_l1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self4_l1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self5_l1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self6_l1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self7_l1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self0_l4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self1_l4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self2_l4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self3_l4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self4_l4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self5_l4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self6_l4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self7_l4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self0_ch1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self1_ch1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self2_ch1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self3_ch1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self4_ch1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self5_ch1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self6_ch1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self7_ch1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self0_i1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self1_i1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self2_i1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self3_i1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self4_i1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self5_i1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self6_i1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self7_i1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self0_i2(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2,c_size_t),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self1_i2(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self2_i2(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self3_i2(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self4_i2(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self5_i2(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self6_i2(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self7_i2(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self0_i4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self1_i4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self2_i4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self3_i4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self4_i4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self5_i4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self6_i4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self7_i4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self0_i8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self1_i8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self2_i8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self3_i8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self4_i8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self5_i8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self6_i8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self7_i8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self0_r4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self1_r4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self2_r4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self3_r4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self4_r4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self5_r4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self6_r4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self7_r4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self0_r8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self1_r8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self2_r8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self3_r8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self4_r8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self5_r8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self6_r8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self7_r8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self0_c4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2*4,c_size_t),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self1_c4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self2_c4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self3_c4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self4_c4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self5_c4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self6_c4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self7_c4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self0_c8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2*8,c_size_t),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self1_c8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self2_c8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self3_c8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self4_c8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self5_c8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self6_c8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + +subroutine gpufortrt_update_self7_c8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_self_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) +end subroutine + + + + subroutine gpufortrt_update_device_b(hostptr,num_bytes,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),intent(in) :: hostptr + integer(c_size_t),intent(in) :: num_bytes + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + interface + subroutine gpufortrt_update_device_c_impl(hostptr,num_bytes,if_arg,if_present_arg) & + bind(c,name="gpufortrt_update_device") + use iso_c_binding + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + logical(c_bool),value,intent(in) :: if_arg, if_present_arg + end subroutine + subroutine gpufortrt_update_device_async_c_impl(hostptr,num_bytes,if_arg,if_present_arg,async_arg) & + bind(c,name="gpufortrt_update_device_async") + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + logical(c_bool),value,intent(in) :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),value,intent(in) :: async_arg + end subroutine + end interface + logical :: opt_if_arg, opt_if_present_arg + ! + opt_if_arg = .true. + opt_if_present_arg = .false. + if ( present(if_arg) ) opt_if_arg = if_arg + if ( present(if_present_arg) ) opt_if_present_arg = if_present_arg + ! + if ( present(async_arg) ) then + call gpufortrt_update_device_async_c_impl(hostptr,& + num_bytes,& + logical(opt_if_arg,c_bool),& + logical(opt_if_present_arg,c_bool),& + async_arg) + else + call gpufortrt_update_device_c_impl(hostptr,& + num_bytes,& + logical(opt_if_arg,c_bool),& + logical(opt_if_present_arg,c_bool)) + endif + end subroutine + + subroutine gpufortrt_update_device0_l1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device1_l1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device2_l1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device3_l1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device4_l1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device5_l1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device6_l1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device7_l1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device0_l4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device1_l4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device2_l4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device3_l4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device4_l4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device5_l4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device6_l4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device7_l4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device0_ch1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device1_ch1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device2_ch1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device3_ch1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device4_ch1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device5_ch1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device6_ch1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device7_ch1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device0_i1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device1_i1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device2_i1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device3_i1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device4_i1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device5_i1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device6_i1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device7_i1(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device0_i2(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2,c_size_t),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device1_i2(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device2_i2(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device3_i2(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device4_i2(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device5_i2(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device6_i2(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device7_i2(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device0_i4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device1_i4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device2_i4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device3_i4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device4_i4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device5_i4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device6_i4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device7_i4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device0_i8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device1_i8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device2_i8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device3_i8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device4_i8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device5_i8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device6_i8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device7_i8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device0_r4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device1_r4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device2_r4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device3_r4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device4_r4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device5_r4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device6_r4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device7_r4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device0_r8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device1_r8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device2_r8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device3_r8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device4_r8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device5_r8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device6_r8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device7_r8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device0_c4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2*4,c_size_t),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device1_c4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device2_c4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device3_c4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device4_c4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device5_c4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device6_c4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device7_c4(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device0_c8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2*8,c_size_t),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device1_c8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device2_c8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device3_c8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device4_c8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device5_c8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device6_c8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + subroutine gpufortrt_update_device7_c8(hostptr,if_arg,if_present_arg,async_arg) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + ! + call gpufortrt_update_device_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) + end subroutine + + + + subroutine gpufortrt_use_device0_l1(resultptr,hostptr,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical(c_bool),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical(c_bool),pointer,intent(inout) :: resultptr + ! + type(c_ptr) :: tmp_cptr + ! + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr) + end subroutine + + subroutine gpufortrt_use_device1_l1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical(c_bool),target,intent(in) :: hostptr(*) + integer,intent(in),optional :: sizes(1), lbounds(1) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical(c_bool),pointer,intent(inout) :: resultptr(:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(1), opt_lbounds(1) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device2_l1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical(c_bool),target,intent(in) :: hostptr(1:1,*) + integer,intent(in),optional :: sizes(2), lbounds(2) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical(c_bool),pointer,intent(inout) :: resultptr(:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(2), opt_lbounds(2) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device3_l1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical(c_bool),target,intent(in) :: hostptr(1:1,1:1,*) + integer,intent(in),optional :: sizes(3), lbounds(3) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical(c_bool),pointer,intent(inout) :: resultptr(:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(3), opt_lbounds(3) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device4_l1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical(c_bool),target,intent(in) :: hostptr(1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(4), lbounds(4) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical(c_bool),pointer,intent(inout) :: resultptr(:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(4), opt_lbounds(4) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device5_l1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical(c_bool),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(5), lbounds(5) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical(c_bool),pointer,intent(inout) :: resultptr(:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(5), opt_lbounds(5) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device6_l1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical(c_bool),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(6), lbounds(6) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical(c_bool),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(6), opt_lbounds(6) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device7_l1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical(c_bool),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(7), lbounds(7) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical(c_bool),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(7), opt_lbounds(7) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):,& + opt_lbounds(7):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device0_l4(resultptr,hostptr,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical,target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical,pointer,intent(inout) :: resultptr + ! + type(c_ptr) :: tmp_cptr + ! + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr) + end subroutine + + subroutine gpufortrt_use_device1_l4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical,target,intent(in) :: hostptr(*) + integer,intent(in),optional :: sizes(1), lbounds(1) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical,pointer,intent(inout) :: resultptr(:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(1), opt_lbounds(1) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device2_l4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical,target,intent(in) :: hostptr(1:1,*) + integer,intent(in),optional :: sizes(2), lbounds(2) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical,pointer,intent(inout) :: resultptr(:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(2), opt_lbounds(2) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device3_l4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical,target,intent(in) :: hostptr(1:1,1:1,*) + integer,intent(in),optional :: sizes(3), lbounds(3) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical,pointer,intent(inout) :: resultptr(:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(3), opt_lbounds(3) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device4_l4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical,target,intent(in) :: hostptr(1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(4), lbounds(4) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical,pointer,intent(inout) :: resultptr(:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(4), opt_lbounds(4) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device5_l4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical,target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(5), lbounds(5) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical,pointer,intent(inout) :: resultptr(:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(5), opt_lbounds(5) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device6_l4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical,target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(6), lbounds(6) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical,pointer,intent(inout) :: resultptr(:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(6), opt_lbounds(6) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device7_l4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical,target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(7), lbounds(7) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical,pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(7), opt_lbounds(7) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):,& + opt_lbounds(7):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device0_ch1(resultptr,hostptr,if_arg,if_present_arg) + use iso_c_binding + implicit none + character(c_char),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + ! + character(c_char),pointer,intent(inout) :: resultptr + ! + type(c_ptr) :: tmp_cptr + ! + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr) + end subroutine + + subroutine gpufortrt_use_device1_ch1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + character(c_char),target,intent(in) :: hostptr(*) + integer,intent(in),optional :: sizes(1), lbounds(1) + logical,intent(in),optional :: if_arg, if_present_arg + ! + character(c_char),pointer,intent(inout) :: resultptr(:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(1), opt_lbounds(1) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device2_ch1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + character(c_char),target,intent(in) :: hostptr(1:1,*) + integer,intent(in),optional :: sizes(2), lbounds(2) + logical,intent(in),optional :: if_arg, if_present_arg + ! + character(c_char),pointer,intent(inout) :: resultptr(:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(2), opt_lbounds(2) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device3_ch1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + character(c_char),target,intent(in) :: hostptr(1:1,1:1,*) + integer,intent(in),optional :: sizes(3), lbounds(3) + logical,intent(in),optional :: if_arg, if_present_arg + ! + character(c_char),pointer,intent(inout) :: resultptr(:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(3), opt_lbounds(3) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device4_ch1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + character(c_char),target,intent(in) :: hostptr(1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(4), lbounds(4) + logical,intent(in),optional :: if_arg, if_present_arg + ! + character(c_char),pointer,intent(inout) :: resultptr(:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(4), opt_lbounds(4) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device5_ch1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + character(c_char),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(5), lbounds(5) + logical,intent(in),optional :: if_arg, if_present_arg + ! + character(c_char),pointer,intent(inout) :: resultptr(:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(5), opt_lbounds(5) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device6_ch1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + character(c_char),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(6), lbounds(6) + logical,intent(in),optional :: if_arg, if_present_arg + ! + character(c_char),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(6), opt_lbounds(6) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device7_ch1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + character(c_char),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(7), lbounds(7) + logical,intent(in),optional :: if_arg, if_present_arg + ! + character(c_char),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(7), opt_lbounds(7) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):,& + opt_lbounds(7):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device0_i1(resultptr,hostptr,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int8_t),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int8_t),pointer,intent(inout) :: resultptr + ! + type(c_ptr) :: tmp_cptr + ! + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr) + end subroutine + + subroutine gpufortrt_use_device1_i1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(*) + integer,intent(in),optional :: sizes(1), lbounds(1) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int8_t),pointer,intent(inout) :: resultptr(:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(1), opt_lbounds(1) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device2_i1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(1:1,*) + integer,intent(in),optional :: sizes(2), lbounds(2) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int8_t),pointer,intent(inout) :: resultptr(:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(2), opt_lbounds(2) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device3_i1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(1:1,1:1,*) + integer,intent(in),optional :: sizes(3), lbounds(3) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int8_t),pointer,intent(inout) :: resultptr(:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(3), opt_lbounds(3) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device4_i1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(4), lbounds(4) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int8_t),pointer,intent(inout) :: resultptr(:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(4), opt_lbounds(4) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device5_i1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(5), lbounds(5) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int8_t),pointer,intent(inout) :: resultptr(:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(5), opt_lbounds(5) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device6_i1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(6), lbounds(6) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int8_t),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(6), opt_lbounds(6) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device7_i1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(7), lbounds(7) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int8_t),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(7), opt_lbounds(7) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):,& + opt_lbounds(7):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device0_i2(resultptr,hostptr,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_short),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_short),pointer,intent(inout) :: resultptr + ! + type(c_ptr) :: tmp_cptr + ! + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr) + end subroutine + + subroutine gpufortrt_use_device1_i2(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_short),target,intent(in) :: hostptr(*) + integer,intent(in),optional :: sizes(1), lbounds(1) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_short),pointer,intent(inout) :: resultptr(:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(1), opt_lbounds(1) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device2_i2(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_short),target,intent(in) :: hostptr(1:1,*) + integer,intent(in),optional :: sizes(2), lbounds(2) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_short),pointer,intent(inout) :: resultptr(:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(2), opt_lbounds(2) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device3_i2(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_short),target,intent(in) :: hostptr(1:1,1:1,*) + integer,intent(in),optional :: sizes(3), lbounds(3) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_short),pointer,intent(inout) :: resultptr(:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(3), opt_lbounds(3) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device4_i2(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_short),target,intent(in) :: hostptr(1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(4), lbounds(4) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_short),pointer,intent(inout) :: resultptr(:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(4), opt_lbounds(4) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device5_i2(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_short),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(5), lbounds(5) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_short),pointer,intent(inout) :: resultptr(:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(5), opt_lbounds(5) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device6_i2(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_short),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(6), lbounds(6) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_short),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(6), opt_lbounds(6) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device7_i2(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_short),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(7), lbounds(7) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_short),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(7), opt_lbounds(7) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):,& + opt_lbounds(7):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device0_i4(resultptr,hostptr,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int),pointer,intent(inout) :: resultptr + ! + type(c_ptr) :: tmp_cptr + ! + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr) + end subroutine + + subroutine gpufortrt_use_device1_i4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int),target,intent(in) :: hostptr(*) + integer,intent(in),optional :: sizes(1), lbounds(1) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int),pointer,intent(inout) :: resultptr(:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(1), opt_lbounds(1) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device2_i4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int),target,intent(in) :: hostptr(1:1,*) + integer,intent(in),optional :: sizes(2), lbounds(2) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int),pointer,intent(inout) :: resultptr(:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(2), opt_lbounds(2) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device3_i4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int),target,intent(in) :: hostptr(1:1,1:1,*) + integer,intent(in),optional :: sizes(3), lbounds(3) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int),pointer,intent(inout) :: resultptr(:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(3), opt_lbounds(3) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device4_i4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int),target,intent(in) :: hostptr(1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(4), lbounds(4) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int),pointer,intent(inout) :: resultptr(:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(4), opt_lbounds(4) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device5_i4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(5), lbounds(5) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int),pointer,intent(inout) :: resultptr(:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(5), opt_lbounds(5) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device6_i4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(6), lbounds(6) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(6), opt_lbounds(6) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device7_i4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(7), lbounds(7) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(7), opt_lbounds(7) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):,& + opt_lbounds(7):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device0_i8(resultptr,hostptr,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_long),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_long),pointer,intent(inout) :: resultptr + ! + type(c_ptr) :: tmp_cptr + ! + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr) + end subroutine + + subroutine gpufortrt_use_device1_i8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_long),target,intent(in) :: hostptr(*) + integer,intent(in),optional :: sizes(1), lbounds(1) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_long),pointer,intent(inout) :: resultptr(:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(1), opt_lbounds(1) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device2_i8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_long),target,intent(in) :: hostptr(1:1,*) + integer,intent(in),optional :: sizes(2), lbounds(2) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_long),pointer,intent(inout) :: resultptr(:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(2), opt_lbounds(2) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device3_i8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_long),target,intent(in) :: hostptr(1:1,1:1,*) + integer,intent(in),optional :: sizes(3), lbounds(3) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_long),pointer,intent(inout) :: resultptr(:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(3), opt_lbounds(3) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device4_i8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_long),target,intent(in) :: hostptr(1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(4), lbounds(4) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_long),pointer,intent(inout) :: resultptr(:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(4), opt_lbounds(4) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device5_i8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_long),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(5), lbounds(5) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_long),pointer,intent(inout) :: resultptr(:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(5), opt_lbounds(5) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device6_i8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_long),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(6), lbounds(6) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_long),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(6), opt_lbounds(6) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device7_i8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_long),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(7), lbounds(7) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_long),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(7), opt_lbounds(7) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):,& + opt_lbounds(7):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device0_r4(resultptr,hostptr,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_float),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_float),pointer,intent(inout) :: resultptr + ! + type(c_ptr) :: tmp_cptr + ! + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr) + end subroutine + + subroutine gpufortrt_use_device1_r4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_float),target,intent(in) :: hostptr(*) + integer,intent(in),optional :: sizes(1), lbounds(1) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_float),pointer,intent(inout) :: resultptr(:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(1), opt_lbounds(1) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device2_r4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_float),target,intent(in) :: hostptr(1:1,*) + integer,intent(in),optional :: sizes(2), lbounds(2) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_float),pointer,intent(inout) :: resultptr(:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(2), opt_lbounds(2) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device3_r4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_float),target,intent(in) :: hostptr(1:1,1:1,*) + integer,intent(in),optional :: sizes(3), lbounds(3) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_float),pointer,intent(inout) :: resultptr(:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(3), opt_lbounds(3) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device4_r4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_float),target,intent(in) :: hostptr(1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(4), lbounds(4) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_float),pointer,intent(inout) :: resultptr(:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(4), opt_lbounds(4) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device5_r4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_float),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(5), lbounds(5) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_float),pointer,intent(inout) :: resultptr(:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(5), opt_lbounds(5) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device6_r4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_float),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(6), lbounds(6) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_float),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(6), opt_lbounds(6) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device7_r4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_float),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(7), lbounds(7) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_float),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(7), opt_lbounds(7) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):,& + opt_lbounds(7):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device0_r8(resultptr,hostptr,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_double),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_double),pointer,intent(inout) :: resultptr + ! + type(c_ptr) :: tmp_cptr + ! + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr) + end subroutine + + subroutine gpufortrt_use_device1_r8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_double),target,intent(in) :: hostptr(*) + integer,intent(in),optional :: sizes(1), lbounds(1) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_double),pointer,intent(inout) :: resultptr(:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(1), opt_lbounds(1) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device2_r8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_double),target,intent(in) :: hostptr(1:1,*) + integer,intent(in),optional :: sizes(2), lbounds(2) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_double),pointer,intent(inout) :: resultptr(:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(2), opt_lbounds(2) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device3_r8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_double),target,intent(in) :: hostptr(1:1,1:1,*) + integer,intent(in),optional :: sizes(3), lbounds(3) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_double),pointer,intent(inout) :: resultptr(:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(3), opt_lbounds(3) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device4_r8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_double),target,intent(in) :: hostptr(1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(4), lbounds(4) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_double),pointer,intent(inout) :: resultptr(:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(4), opt_lbounds(4) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device5_r8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_double),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(5), lbounds(5) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_double),pointer,intent(inout) :: resultptr(:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(5), opt_lbounds(5) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device6_r8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_double),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(6), lbounds(6) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_double),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(6), opt_lbounds(6) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device7_r8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_double),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(7), lbounds(7) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_double),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(7), opt_lbounds(7) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):,& + opt_lbounds(7):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device0_c4(resultptr,hostptr,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_float_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_float_complex),pointer,intent(inout) :: resultptr + ! + type(c_ptr) :: tmp_cptr + ! + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr) + end subroutine + + subroutine gpufortrt_use_device1_c4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(*) + integer,intent(in),optional :: sizes(1), lbounds(1) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_float_complex),pointer,intent(inout) :: resultptr(:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(1), opt_lbounds(1) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device2_c4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(1:1,*) + integer,intent(in),optional :: sizes(2), lbounds(2) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_float_complex),pointer,intent(inout) :: resultptr(:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(2), opt_lbounds(2) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device3_c4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(1:1,1:1,*) + integer,intent(in),optional :: sizes(3), lbounds(3) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_float_complex),pointer,intent(inout) :: resultptr(:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(3), opt_lbounds(3) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device4_c4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(4), lbounds(4) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_float_complex),pointer,intent(inout) :: resultptr(:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(4), opt_lbounds(4) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device5_c4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(5), lbounds(5) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_float_complex),pointer,intent(inout) :: resultptr(:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(5), opt_lbounds(5) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device6_c4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(6), lbounds(6) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_float_complex),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(6), opt_lbounds(6) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device7_c4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(7), lbounds(7) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_float_complex),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(7), opt_lbounds(7) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):,& + opt_lbounds(7):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device0_c8(resultptr,hostptr,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_double_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_double_complex),pointer,intent(inout) :: resultptr + ! + type(c_ptr) :: tmp_cptr + ! + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr) + end subroutine + + subroutine gpufortrt_use_device1_c8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(*) + integer,intent(in),optional :: sizes(1), lbounds(1) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_double_complex),pointer,intent(inout) :: resultptr(:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(1), opt_lbounds(1) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device2_c8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(1:1,*) + integer,intent(in),optional :: sizes(2), lbounds(2) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_double_complex),pointer,intent(inout) :: resultptr(:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(2), opt_lbounds(2) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device3_c8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(1:1,1:1,*) + integer,intent(in),optional :: sizes(3), lbounds(3) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_double_complex),pointer,intent(inout) :: resultptr(:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(3), opt_lbounds(3) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device4_c8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(4), lbounds(4) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_double_complex),pointer,intent(inout) :: resultptr(:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(4), opt_lbounds(4) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device5_c8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(5), lbounds(5) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_double_complex),pointer,intent(inout) :: resultptr(:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(5), opt_lbounds(5) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device6_c8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(6), lbounds(6) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_double_complex),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(6), opt_lbounds(6) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device7_c8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(7), lbounds(7) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_double_complex),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(7), opt_lbounds(7) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):,& + opt_lbounds(7):)& + => resultptr + end subroutine + + + + function gpufortrt_deviceptr0_l1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr1_l1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr2_l1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr3_l1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr4_l1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr5_l1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr6_l1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr7_l1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr0_l4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr1_l4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr2_l4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr3_l4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr4_l4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr5_l4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr6_l4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr7_l4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr0_ch1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr1_ch1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr2_ch1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr3_ch1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr4_ch1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr5_ch1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr6_ch1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr7_ch1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr0_i1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr1_i1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr2_i1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr3_i1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr4_i1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr5_i1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr6_i1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr7_i1(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr0_i2(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr1_i2(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr2_i2(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr3_i2(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr4_i2(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr5_i2(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr6_i2(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr7_i2(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr0_i4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr1_i4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr2_i4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr3_i4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr4_i4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr5_i4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr6_i4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr7_i4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr0_i8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr1_i8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr2_i8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr3_i8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr4_i8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr5_i8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr6_i8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr7_i8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr0_r4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr1_r4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr2_r4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr3_r4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr4_r4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr5_r4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr6_r4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr7_r4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr0_r8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr1_r8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr2_r8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr3_r8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr4_r8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr5_r8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr6_r8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr7_r8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr0_c4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr1_c4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr2_c4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr3_c4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr4_c4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr5_c4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr6_c4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr7_c4(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr0_c8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr1_c8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr2_c8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr3_c8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr4_c8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr5_c8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr6_c8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + function gpufortrt_deviceptr7_c8(hostptr) result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: deviceptr + ! + deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + end function + + +end module \ No newline at end of file diff --git a/runtime/gpufortrt/src/internal/queue_record_list_t.cpp b/runtime/gpufortrt/src/internal/queue_record_list_t.cpp index 8bce782a..026f17a2 100644 --- a/runtime/gpufortrt/src/internal/queue_record_list_t.cpp +++ b/runtime/gpufortrt/src/internal/queue_record_list_t.cpp @@ -70,13 +70,13 @@ gpufortrt_queue_t gpufortrt::internal::queue_record_list_t::use_create_queue(int namespace { void synchronize_default_queue() { gpufortrt::internal::queue_record_t default_queue_record; - default_queue_record.setup(-1,gpufortrt_default_queue); + default_queue_record.setup(-1); // original was (-1,gpufortrt_default_queue) default_queue_record.synchronize(); } bool test_default_queue() { gpufortrt::internal::queue_record_t default_queue_record; - default_queue_record.setup(-1,gpufortrt_default_queue); + default_queue_record.setup(-1); // original was (-1,gpufortrt_default_queue) return default_queue_record.test(); } } @@ -110,7 +110,7 @@ void gpufortrt::internal::queue_record_list_t::synchronize(const int id) { std::size_t loc; std::tie(success,loc) = this->find_record(id); if ( success ) { - result = this->records[loc].synchronize(); + this->records[loc].synchronize(); LOG_INFO(3,"synchronize queue; " << this->records[loc]) } else { LOG_INFO(3,"synchronize queue; no queue found for id="<queue) == hipSuccess; - LOG_INFO(4," Date: Fri, 4 Nov 2022 13:24:22 +0100 Subject: [PATCH 02/33] additional examples to test acc rtlib --- .../test/cpp/test_acc_get_num_devices_00.cpp | 10 +++++++ .../test/cpp/test_acc_init_shutdown_00.cpp | 21 ++++++++++++++ .../test/cpp/test_acc_routine_00.cpp | 29 +++++++++++++++++++ .../fortran/test_acc_get_device_num_00.f90 | 6 ++++ .../fortran/test_acc_get_device_type_00.f90 | 7 +++++ .../fortran/test_acc_get_num_devices_00.f90 | 7 +++++ .../fortran/test_acc_init_shutdown_00.f90 | 5 ++++ .../test/fortran/test_acc_is_present.f90 | 21 ++++++++++++++ .../fortran/test_acc_set_device_num_00.f90 | 5 ++++ .../fortran/test_acc_set_device_type_00.f90 | 5 ++++ 10 files changed, 116 insertions(+) create mode 100755 runtime/gpufortrt/test/cpp/test_acc_get_num_devices_00.cpp create mode 100755 runtime/gpufortrt/test/cpp/test_acc_init_shutdown_00.cpp create mode 100755 runtime/gpufortrt/test/cpp/test_acc_routine_00.cpp create mode 100755 runtime/gpufortrt/test/fortran/test_acc_get_device_num_00.f90 create mode 100755 runtime/gpufortrt/test/fortran/test_acc_get_device_type_00.f90 create mode 100755 runtime/gpufortrt/test/fortran/test_acc_get_num_devices_00.f90 create mode 100755 runtime/gpufortrt/test/fortran/test_acc_init_shutdown_00.f90 create mode 100755 runtime/gpufortrt/test/fortran/test_acc_is_present.f90 create mode 100755 runtime/gpufortrt/test/fortran/test_acc_set_device_num_00.f90 create mode 100755 runtime/gpufortrt/test/fortran/test_acc_set_device_type_00.f90 diff --git a/runtime/gpufortrt/test/cpp/test_acc_get_num_devices_00.cpp b/runtime/gpufortrt/test/cpp/test_acc_get_num_devices_00.cpp new file mode 100755 index 00000000..0b7024b7 --- /dev/null +++ b/runtime/gpufortrt/test/cpp/test_acc_get_num_devices_00.cpp @@ -0,0 +1,10 @@ +#include +#include + +int main( int argc, char * argv[] ) +{ + acc_device_t t = acc_device_default; + std::cout<< "number of devices: " << acc_get_num_devices(t); + + return 0; +} \ No newline at end of file diff --git a/runtime/gpufortrt/test/cpp/test_acc_init_shutdown_00.cpp b/runtime/gpufortrt/test/cpp/test_acc_init_shutdown_00.cpp new file mode 100755 index 00000000..c8b90c0d --- /dev/null +++ b/runtime/gpufortrt/test/cpp/test_acc_init_shutdown_00.cpp @@ -0,0 +1,21 @@ +#include + +int main( int argc, char * argv[] ) +{ + acc_init( acc_device_default ); + + float a[100]; + + #pragma acc data copyout(a[0:100]) + + #pragma acc parallel + #pragma acc loop + for( int i = 0; i < 100; ++i ) + { + a[i] = 5; + } + + acc_shutdown( acc_device_default ); + + return 0; +} \ No newline at end of file diff --git a/runtime/gpufortrt/test/cpp/test_acc_routine_00.cpp b/runtime/gpufortrt/test/cpp/test_acc_routine_00.cpp new file mode 100755 index 00000000..de6e9772 --- /dev/null +++ b/runtime/gpufortrt/test/cpp/test_acc_routine_00.cpp @@ -0,0 +1,29 @@ +#include + +#pragma acc routine worker +void set( int* in_out ) +{ + *in_out = ( *in_out ) * 3; +} + +int main( int argc, char * argv[] ) +{ + acc_init( acc_device_default ); + + float a[100]; + +#pragma acc data copyout(a[0:100]) + +#pragma acc parallel +#pragma acc loop + for( int i = 0; i < 100; ++i ) + { + int j = 5; + set(&j); + a[i] = j; + } + + acc_shutdown( acc_device_default ); + + return 0; +} \ No newline at end of file diff --git a/runtime/gpufortrt/test/fortran/test_acc_get_device_num_00.f90 b/runtime/gpufortrt/test/fortran/test_acc_get_device_num_00.f90 new file mode 100755 index 00000000..b208869b --- /dev/null +++ b/runtime/gpufortrt/test/fortran/test_acc_get_device_num_00.f90 @@ -0,0 +1,6 @@ +program main + use openacc + integer(acc_device_kind) :: dev_type + dev_type = acc_device_default + print *, acc_get_device_num(dev_type) +end program \ No newline at end of file diff --git a/runtime/gpufortrt/test/fortran/test_acc_get_device_type_00.f90 b/runtime/gpufortrt/test/fortran/test_acc_get_device_type_00.f90 new file mode 100755 index 00000000..ab28f107 --- /dev/null +++ b/runtime/gpufortrt/test/fortran/test_acc_get_device_type_00.f90 @@ -0,0 +1,7 @@ +program main + use openacc + implicit none + integer(acc_device_kind) :: dev_type + dev_type = acc_get_device_type() + print *, dev_type +end program \ No newline at end of file diff --git a/runtime/gpufortrt/test/fortran/test_acc_get_num_devices_00.f90 b/runtime/gpufortrt/test/fortran/test_acc_get_num_devices_00.f90 new file mode 100755 index 00000000..71feeb25 --- /dev/null +++ b/runtime/gpufortrt/test/fortran/test_acc_get_num_devices_00.f90 @@ -0,0 +1,7 @@ +program main + use openacc + implicit none + integer:: num + num = acc_get_num_devices(acc_device_default) + print *, num +end program \ No newline at end of file diff --git a/runtime/gpufortrt/test/fortran/test_acc_init_shutdown_00.f90 b/runtime/gpufortrt/test/fortran/test_acc_init_shutdown_00.f90 new file mode 100755 index 00000000..299e94fc --- /dev/null +++ b/runtime/gpufortrt/test/fortran/test_acc_init_shutdown_00.f90 @@ -0,0 +1,5 @@ +program main + use openacc + call acc_init(acc_device_default) + call acc_shutdown(acc_device_default) +end program \ No newline at end of file diff --git a/runtime/gpufortrt/test/fortran/test_acc_is_present.f90 b/runtime/gpufortrt/test/fortran/test_acc_is_present.f90 new file mode 100755 index 00000000..383e2eb5 --- /dev/null +++ b/runtime/gpufortrt/test/fortran/test_acc_is_present.f90 @@ -0,0 +1,21 @@ +program main + ! begin of program + use openacc + implicit none + integer, parameter :: N = 1000 + integer(4) :: x(N), y(N) + logical:: xPresent = .FALSE., yPresent = .FALSE. + + !$ACC DATA COPY(X(1:N)) + xPresent = acc_is_present(x,N) + yPresent = acc_is_present(y,N) + if ( xPresent .AND. .not. yPresent) then + print *, "FINE!" + else + ERROR STOP "Arrays is not present" + end if + + !$acc end data + + end program + diff --git a/runtime/gpufortrt/test/fortran/test_acc_set_device_num_00.f90 b/runtime/gpufortrt/test/fortran/test_acc_set_device_num_00.f90 new file mode 100755 index 00000000..9cc20cb1 --- /dev/null +++ b/runtime/gpufortrt/test/fortran/test_acc_set_device_num_00.f90 @@ -0,0 +1,5 @@ +program main + use openacc + integer :: dev_num = 1 + call acc_set_device_num(dev_num, acc_device_default) +end program \ No newline at end of file diff --git a/runtime/gpufortrt/test/fortran/test_acc_set_device_type_00.f90 b/runtime/gpufortrt/test/fortran/test_acc_set_device_type_00.f90 new file mode 100755 index 00000000..64dbe351 --- /dev/null +++ b/runtime/gpufortrt/test/fortran/test_acc_set_device_type_00.f90 @@ -0,0 +1,5 @@ +program main + use openacc + call acc_set_device_type(acc_device_default) + print *, acc_get_device_type() +end program \ No newline at end of file From 08076e00aaabfbcaf442b364cbcf9d77a4165fbd Mon Sep 17 00:00:00 2001 From: monoatamd Date: Mon, 7 Nov 2022 08:17:32 +0100 Subject: [PATCH 03/33] calling gpufortrt instead of acc --- python/gpufort/scanner/parser.py | 7 +++++++ python/gpufort/util/parsing/parsing.py | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/python/gpufort/scanner/parser.py b/python/gpufort/scanner/parser.py index 223ea0ed..fc95a10b 100644 --- a/python/gpufort/scanner/parser.py +++ b/python/gpufort/scanner/parser.py @@ -629,6 +629,7 @@ def is_end_statement_(tokens, kind): current_linemap["statements"]): try: expand_statement_functions_(current_statement) + original_statement = current_statement["body"] original_statement_lower = current_statement["body"].lower() util.logging.log_debug4(opts.log_prefix,"parse_file","parsing statement '{}' associated with lines [{},{}]".format(original_statement_lower.rstrip(),\ current_linemap["lineno"],current_linemap["lineno"]+len(current_linemap["lines"])-1)) @@ -640,6 +641,12 @@ def is_end_statement_(tokens, kind): numeric_label = None current_statement_stripped = " ".join([tk for tk in current_tokens if len(tk)]) + # We really don't need to create STNodes to implement acc runtime routines + # Is it a good idea to directly modify the source code here? + if util.parsing.is_acc_rtlib(original_statement_lower,modern_fortran): + gpufortrt_acc_rtlib_statement = original_statement.replace("acc_", "gpufortrt_") + current_statement["body"] = gpufortrt_acc_rtlib_statement + current_linemap["modified"] = True if util.parsing.is_fortran_directive(original_statement_lower,modern_fortran): if openacc and current_tokens[1] == "acc": AccDirective() diff --git a/python/gpufort/util/parsing/parsing.py b/python/gpufort/util/parsing/parsing.py index 5c70f7cd..b60dc966 100644 --- a/python/gpufort/util/parsing/parsing.py +++ b/python/gpufort/util/parsing/parsing.py @@ -1942,6 +1942,10 @@ def is_declaration(tokens): def is_blank_line(statement): return not len(statement.strip()) +def is_acc_rtlib(statement, modern_fortran): + """If the statement is an OpenACC runtime library function or subroutine""" + """ToDo: Add more complicated cases""" + return ("call acc_" in statement) or ("= acc_" in statement) or ("=acc_" in statement) def is_fortran_directive(statement,modern_fortran): """If the statement is a directive.""" From 2929de3f80416a949712e98b2ae73395c648ca6c Mon Sep 17 00:00:00 2001 From: monoatamd Date: Mon, 7 Nov 2022 11:09:03 +0100 Subject: [PATCH 04/33] deleted parts not compliant with gpufort --- .gitignore | 1 + runtime/gpufortrt/include/gpufortrt_api.h | 13 ++++----- runtime/gpufortrt/include/gpufortrt_types.h | 2 +- runtime/gpufortrt/src/gpufortrt_api.cpp | 28 +++++++++---------- .../gpufortrt/src/internal/gpufortrt_core.h | 1 + .../src/internal/queue_record_list_t.cpp | 4 +++ 6 files changed, 27 insertions(+), 22 deletions(-) diff --git a/.gitignore b/.gitignore index 5a833ed0..61919b3e 100755 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ gpufort.h gpufort_reductions.h render*.template.* render.py.in +.vscode/settings.json diff --git a/runtime/gpufortrt/include/gpufortrt_api.h b/runtime/gpufortrt/include/gpufortrt_api.h index 0dbfaab1..107344a5 100644 --- a/runtime/gpufortrt/include/gpufortrt_api.h +++ b/runtime/gpufortrt/include/gpufortrt_api.h @@ -5,21 +5,20 @@ #ifdef __cplusplus extern "C" { #endif - typedef char const* gpufortrt_device_t; int gpufortrt_get_num_devices(); - void gpufortrt_set_device_num(int dev_num, gpufortrt_device_t dev_type = "AMD"); - int gpufortrt_get_device_num(gpufortrt_device_t dev_type = "AMD"); + void gpufortrt_set_device_num(int dev_num); + int gpufortrt_get_device_num(); // Explicit Fortran interfaces that assume device number starts from 1 - void gpufortrt_set_device_num_f(int dev_num, gpufortrt_device_t dev_type = "AMD"); - int gpufortrt_get_device_num_f(gpufortrt_device_t dev_type = "AMD"); - #ifdef notNecessary + void gpufortrt_set_device_num_f(int dev_num); + int gpufortrt_get_device_num_f(); + size_t gpufortrt_get_property(int dev_num, gpufortrt_device_property_t property); const char* gpufortrt_get_property_string(int dev_num, gpufortrt_device_property_t property); - #endif + void gpufortrt_init(); void gpufortrt_shutdown(); diff --git a/runtime/gpufortrt/include/gpufortrt_types.h b/runtime/gpufortrt/include/gpufortrt_types.h index d05b17e0..429d029b 100644 --- a/runtime/gpufortrt/include/gpufortrt_types.h +++ b/runtime/gpufortrt/include/gpufortrt_types.h @@ -12,7 +12,7 @@ extern "C" { extern int gpufortrt_async_sync; extern int gpufortrt_async_default; - enum gpufortrt_property_t { + enum gpufortrt_device_property_t { gpufortrt_property_memory = 0,//>integer, size of device memory in bytes gpufortrt_property_free_memory,//>integer, free device memory in bytes gpufortrt_property_shared_memory_support,//>integer, nonzero if the specified device supports sharing memory with the local thread diff --git a/runtime/gpufortrt/src/gpufortrt_api.cpp b/runtime/gpufortrt/src/gpufortrt_api.cpp index 86aa36ca..bf021eb1 100644 --- a/runtime/gpufortrt/src/gpufortrt_api.cpp +++ b/runtime/gpufortrt/src/gpufortrt_api.cpp @@ -18,16 +18,16 @@ void gpufortrt_set_default_async(int async_arg) { gpufortrt::internal::default_async_arg = async_arg; } -void gpufortrt_set_device_num(int dev_num, gpufortrt_device_t dev_type) { +void gpufortrt_set_device_num(int dev_num) { HIP_CHECK(hipSetDevice(dev_num)) // TODO backend specific, externalize } -int gpufortrt_get_device_num(gpufortrt_device_t dev_type) { +int gpufortrt_get_device_num() { int dev_num; HIP_CHECK(hipGetDevice(&dev_num)) return dev_num; } -#ifdef notNecessary + size_t gpufortrt_get_property(int dev_num, gpufortrt_device_property_t property) { switch ( property ) { @@ -37,11 +37,11 @@ size_t gpufortrt_get_property(int dev_num, HIP_CHECK(hipMemGetInfo(&free, &total)) return total; break; - case gpufortrt_free_memory: - size_t free; - size_t total; - HIP_CHECK(hipMemGetInfo(&free, &total)) - return free; + case gpufortrt_property_free_memory: + size_t freeMem; + size_t totalMem; + HIP_CHECK(hipMemGetInfo(&freeMem, &totalMem)) + return freeMem; break; case gpufortrt_property_shared_memory_support: int result; @@ -69,13 +69,13 @@ char* gpufortrt_get_property_string_f(int dev_num, gpufortrt_device_property_t property) { return gpufortrt_get_property_string(dev_num-1,property); } -#endif + // Explicit Fortran interfaces that assume device number starts from 1 -void gpufortrt_set_device_num_f(int dev_num, gpufortrt_device_t dev_type) { - gpufortrt_set_device_num(dev_num-1,dev_type); +void gpufortrt_set_device_num_f(int dev_num) { + gpufortrt_set_device_num(dev_num-1); } -int gpufortrt_get_device_num_f(gpufortrt_device_t dev_type) { - return gpufortrt_get_device_num(dev_type)+1; +int gpufortrt_get_device_num_f() { + return gpufortrt_get_device_num()+1; } void gpufortrt_mapping_init( @@ -671,7 +671,7 @@ int gpufortrt_async_test_device(int wait_arg, int dev_num) { } int gpufortrt_async_test_all() { - for (size_t i = 0; i < gpufortrt::internal::queue_record_list.records.size(); i++) { + for (size_t i = 0; i < gpufortrt::internal::queue_record_list.size(); i++) { auto& queue = gpufortrt::internal::queue_record_list[i].queue; HIP_CHECK(hipStreamQuery(queue))// TODO backend specific, externalize } diff --git a/runtime/gpufortrt/src/internal/gpufortrt_core.h b/runtime/gpufortrt/src/internal/gpufortrt_core.h index 53eaec78..80e11418 100644 --- a/runtime/gpufortrt/src/internal/gpufortrt_core.h +++ b/runtime/gpufortrt/src/internal/gpufortrt_core.h @@ -353,6 +353,7 @@ namespace gpufortrt { queue_record_t& operator[](const int i); const queue_record_t& operator[](const int i) const; + size_t size(); /** Reserve space for `capacity` queues. */ void reserve(const int capacity); diff --git a/runtime/gpufortrt/src/internal/queue_record_list_t.cpp b/runtime/gpufortrt/src/internal/queue_record_list_t.cpp index 026f17a2..639fd5b6 100644 --- a/runtime/gpufortrt/src/internal/queue_record_list_t.cpp +++ b/runtime/gpufortrt/src/internal/queue_record_list_t.cpp @@ -18,6 +18,10 @@ const gpufortrt::internal::queue_record_t& gpufortrt::internal::queue_record_lis return this->records[i]; } +size_t gpufortrt::internal::queue_record_list_t::size() { + return this->records.size(); +} + void gpufortrt::internal::queue_record_list_t::reserve(int capacity) { this->records.reserve(capacity); } From c040997597517b3645b17ecd4729d59dd8a7393f Mon Sep 17 00:00:00 2001 From: monoatamd Date: Mon, 7 Nov 2022 11:44:12 +0100 Subject: [PATCH 05/33] fixed issue with acc_copy and gpufortrt_copy --- runtime/gpufortrt/include/gpufortrt_api.h | 18 +++++++++--------- runtime/gpufortrt/src/gpufortrt_api.cpp | 16 +++++++--------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/runtime/gpufortrt/include/gpufortrt_api.h b/runtime/gpufortrt/include/gpufortrt_api.h index 107344a5..b6bfd2ca 100644 --- a/runtime/gpufortrt/include/gpufortrt_api.h +++ b/runtime/gpufortrt/include/gpufortrt_api.h @@ -108,16 +108,16 @@ extern "C" { int async_arg, bool never_deallocate); -// Same as copyin? void* gpufortrt_copy( - void* hostptr, - std::size_t num_bytes, - bool never_deallocate); - void gpufortrt_copy_async( - void* hostptr, - std::size_t num_bytes, - int async_arg, - bool never_deallocate); + void* hostptr, + std::size_t num_bytes, + bool never_deallocate); + void* gpufortrt_copy_async( + void* hostptr, + std::size_t num_bytes, + int async_arg, + bool never_deallocate); + // other runtime calls void gpufortrt_update_self( diff --git a/runtime/gpufortrt/src/gpufortrt_api.cpp b/runtime/gpufortrt/src/gpufortrt_api.cpp index bf021eb1..4bf58c09 100644 --- a/runtime/gpufortrt/src/gpufortrt_api.cpp +++ b/runtime/gpufortrt/src/gpufortrt_api.cpp @@ -523,22 +523,20 @@ void* gpufortrt_copy(void* hostptr,std::size_t num_bytes,bool never_deallocate) gpufortrt_counter_dynamic, hostptr, num_bytes, - gpufortrt_map_kind_copyin, + gpufortrt_map_kind_copy, never_deallocate, - true,/*blocking*/ + true/*blocking*/, gpufortrt_async_noval); } -void gpufortrt_copy_async(void* hostptr,std::size_t num_bytes,int async_arg,bool never_deallocate) { - bool blocking; int async_val; - std::tie(blocking,async_val) = gpufortrt::internal::check_async_arg(async_arg); - create_increment_action( +void* gpufortrt_copy_async(void* hostptr,std::size_t num_bytes,int async_arg,bool never_deallocate) { + return ::create_increment_action( gpufortrt_counter_dynamic, hostptr, num_bytes, - gpufortrt_map_kind_copyin, + gpufortrt_map_kind_copy, never_deallocate, - blocking, - async_val); + false/*blocking*/, + async_arg); } namespace { From 170632555085be546805a73e8eb2eef324355519 Mon Sep 17 00:00:00 2001 From: monoatamd Date: Mon, 7 Nov 2022 12:40:34 +0100 Subject: [PATCH 06/33] Fixed incorrect templates for copy --- runtime/gpufortrt/include/gpufortrt_api.h | 10 - runtime/gpufortrt/src/gpufortrt_api.cpp | 21 - runtime/gpufortrt/src/gpufortrt_api.f90 | 1551 ----------------- .../gpufortrt/src/gpufortrt_api.macros.f90 | 6 +- 4 files changed, 3 insertions(+), 1585 deletions(-) diff --git a/runtime/gpufortrt/include/gpufortrt_api.h b/runtime/gpufortrt/include/gpufortrt_api.h index b6bfd2ca..20377410 100644 --- a/runtime/gpufortrt/include/gpufortrt_api.h +++ b/runtime/gpufortrt/include/gpufortrt_api.h @@ -108,16 +108,6 @@ extern "C" { int async_arg, bool never_deallocate); - void* gpufortrt_copy( - void* hostptr, - std::size_t num_bytes, - bool never_deallocate); - void* gpufortrt_copy_async( - void* hostptr, - std::size_t num_bytes, - int async_arg, - bool never_deallocate); - // other runtime calls void gpufortrt_update_self( diff --git a/runtime/gpufortrt/src/gpufortrt_api.cpp b/runtime/gpufortrt/src/gpufortrt_api.cpp index 4bf58c09..7a1b5d95 100644 --- a/runtime/gpufortrt/src/gpufortrt_api.cpp +++ b/runtime/gpufortrt/src/gpufortrt_api.cpp @@ -517,27 +517,6 @@ void gpufortrt_copyin_async(void* hostptr,std::size_t num_bytes,int async_arg,bo blocking, async_val); } -// Same as copyin? -void* gpufortrt_copy(void* hostptr,std::size_t num_bytes,bool never_deallocate) { - return ::create_increment_action( - gpufortrt_counter_dynamic, - hostptr, - num_bytes, - gpufortrt_map_kind_copy, - never_deallocate, - true/*blocking*/, - gpufortrt_async_noval); -} -void* gpufortrt_copy_async(void* hostptr,std::size_t num_bytes,int async_arg,bool never_deallocate) { - return ::create_increment_action( - gpufortrt_counter_dynamic, - hostptr, - num_bytes, - gpufortrt_map_kind_copy, - never_deallocate, - false/*blocking*/, - async_arg); -} namespace { template diff --git a/runtime/gpufortrt/src/gpufortrt_api.f90 b/runtime/gpufortrt/src/gpufortrt_api.f90 index a48e48c5..06659f58 100644 --- a/runtime/gpufortrt/src/gpufortrt_api.f90 +++ b/runtime/gpufortrt/src/gpufortrt_api.f90 @@ -926,99 +926,6 @@ module gpufortrt_api end interface - interface gpufortrt_copy - module procedure :: gpufortrt_copy_b - module procedure :: gpufortrt_copy0_l1 - module procedure :: gpufortrt_copy1_l1 - module procedure :: gpufortrt_copy2_l1 - module procedure :: gpufortrt_copy3_l1 - module procedure :: gpufortrt_copy4_l1 - module procedure :: gpufortrt_copy5_l1 - module procedure :: gpufortrt_copy6_l1 - module procedure :: gpufortrt_copy7_l1 - module procedure :: gpufortrt_copy0_l4 - module procedure :: gpufortrt_copy1_l4 - module procedure :: gpufortrt_copy2_l4 - module procedure :: gpufortrt_copy3_l4 - module procedure :: gpufortrt_copy4_l4 - module procedure :: gpufortrt_copy5_l4 - module procedure :: gpufortrt_copy6_l4 - module procedure :: gpufortrt_copy7_l4 - module procedure :: gpufortrt_copy0_ch1 - module procedure :: gpufortrt_copy1_ch1 - module procedure :: gpufortrt_copy2_ch1 - module procedure :: gpufortrt_copy3_ch1 - module procedure :: gpufortrt_copy4_ch1 - module procedure :: gpufortrt_copy5_ch1 - module procedure :: gpufortrt_copy6_ch1 - module procedure :: gpufortrt_copy7_ch1 - module procedure :: gpufortrt_copy0_i1 - module procedure :: gpufortrt_copy1_i1 - module procedure :: gpufortrt_copy2_i1 - module procedure :: gpufortrt_copy3_i1 - module procedure :: gpufortrt_copy4_i1 - module procedure :: gpufortrt_copy5_i1 - module procedure :: gpufortrt_copy6_i1 - module procedure :: gpufortrt_copy7_i1 - module procedure :: gpufortrt_copy0_i2 - module procedure :: gpufortrt_copy1_i2 - module procedure :: gpufortrt_copy2_i2 - module procedure :: gpufortrt_copy3_i2 - module procedure :: gpufortrt_copy4_i2 - module procedure :: gpufortrt_copy5_i2 - module procedure :: gpufortrt_copy6_i2 - module procedure :: gpufortrt_copy7_i2 - module procedure :: gpufortrt_copy0_i4 - module procedure :: gpufortrt_copy1_i4 - module procedure :: gpufortrt_copy2_i4 - module procedure :: gpufortrt_copy3_i4 - module procedure :: gpufortrt_copy4_i4 - module procedure :: gpufortrt_copy5_i4 - module procedure :: gpufortrt_copy6_i4 - module procedure :: gpufortrt_copy7_i4 - module procedure :: gpufortrt_copy0_i8 - module procedure :: gpufortrt_copy1_i8 - module procedure :: gpufortrt_copy2_i8 - module procedure :: gpufortrt_copy3_i8 - module procedure :: gpufortrt_copy4_i8 - module procedure :: gpufortrt_copy5_i8 - module procedure :: gpufortrt_copy6_i8 - module procedure :: gpufortrt_copy7_i8 - module procedure :: gpufortrt_copy0_r4 - module procedure :: gpufortrt_copy1_r4 - module procedure :: gpufortrt_copy2_r4 - module procedure :: gpufortrt_copy3_r4 - module procedure :: gpufortrt_copy4_r4 - module procedure :: gpufortrt_copy5_r4 - module procedure :: gpufortrt_copy6_r4 - module procedure :: gpufortrt_copy7_r4 - module procedure :: gpufortrt_copy0_r8 - module procedure :: gpufortrt_copy1_r8 - module procedure :: gpufortrt_copy2_r8 - module procedure :: gpufortrt_copy3_r8 - module procedure :: gpufortrt_copy4_r8 - module procedure :: gpufortrt_copy5_r8 - module procedure :: gpufortrt_copy6_r8 - module procedure :: gpufortrt_copy7_r8 - module procedure :: gpufortrt_copy0_c4 - module procedure :: gpufortrt_copy1_c4 - module procedure :: gpufortrt_copy2_c4 - module procedure :: gpufortrt_copy3_c4 - module procedure :: gpufortrt_copy4_c4 - module procedure :: gpufortrt_copy5_c4 - module procedure :: gpufortrt_copy6_c4 - module procedure :: gpufortrt_copy7_c4 - module procedure :: gpufortrt_copy0_c8 - module procedure :: gpufortrt_copy1_c8 - module procedure :: gpufortrt_copy2_c8 - module procedure :: gpufortrt_copy3_c8 - module procedure :: gpufortrt_copy4_c8 - module procedure :: gpufortrt_copy5_c8 - module procedure :: gpufortrt_copy6_c8 - module procedure :: gpufortrt_copy7_c8 - end interface - - interface gpufortrt_delete module procedure :: gpufortrt_delete_b @@ -9784,56 +9691,6 @@ function gpufortrt_copyin_async_c_impl(hostptr,num_bytes,never_deallocate,async_ endif end function - !> Map and directly return the corresponding deviceptr. - function gpufortrt_copy_b(hostptr,num_bytes,never_deallocate,& - async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),intent(in) :: hostptr - integer(c_size_t),intent(in) :: num_bytes - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - interface - function gpufortrt_copy_c_impl(hostptr,num_bytes,never_deallocate) & - bind(c,name="gpufortrt_copy") result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - logical(c_bool),value,intent(in) :: never_deallocate - ! - type(c_ptr) :: deviceptr - end function - function gpufortrt_copy_async_c_impl(hostptr,num_bytes,never_deallocate,async_arg) & - bind(c,name="gpufortrt_copy_async") result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - logical(c_bool),value,intent(in) :: never_deallocate - integer(gpufortrt_handle_kind),value,intent(in) :: async_arg - ! - type(c_ptr) :: deviceptr - end function - end interface - ! - logical(c_bool) :: opt_never_deallocate - ! - opt_never_deallocate = .false._c_bool - if ( present(never_deallocate) ) opt_never_deallocate = never_deallocate - if ( present(async_arg) ) then - deviceptr = gpufortrt_copy_async_c_impl(hostptr,num_bytes,opt_never_deallocate,async_arg) - else - deviceptr = gpufortrt_copy_c_impl(hostptr,num_bytes,opt_never_deallocate) - endif - end function - !> Map and directly return the corresponding deviceptr. !> (Specialized version for Fortran scalar arguments) @@ -12651,1414 +12508,6 @@ function gpufortrt_copyin7_c8(hostptr,& deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& never_deallocate,async_arg) end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_copy0_l1(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy1_l1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy2_l1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy3_l1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy4_l1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy5_l1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy6_l1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy7_l1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_copy0_l4(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy1_l4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy2_l4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy3_l4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy4_l4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy5_l4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy6_l4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy7_l4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_copy0_ch1(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy1_ch1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy2_ch1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy3_ch1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy4_ch1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy5_ch1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy6_ch1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy7_ch1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_copy0_i1(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy1_i1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy2_i1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy3_i1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy4_i1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy5_i1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy6_i1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy7_i1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_copy0_i2(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy1_i2(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy2_i2(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy3_i2(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy4_i2(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy5_i2(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy6_i2(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy7_i2(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_copy0_i4(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy1_i4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy2_i4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy3_i4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy4_i4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy5_i4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy6_i4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy7_i4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_copy0_i8(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy1_i8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy2_i8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy3_i8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy4_i8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy5_i8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy6_i8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy7_i8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_copy0_r4(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy1_r4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy2_r4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy3_r4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy4_r4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy5_r4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy6_r4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy7_r4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_copy0_r8(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy1_r8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy2_r8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy3_r8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy4_r8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy5_r8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy6_r8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy7_r8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_copy0_c4(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*4,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy1_c4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy2_c4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy3_c4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy4_c4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy5_c4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy6_c4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy7_c4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_copy0_c8(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*8,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy1_c8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy2_c8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy3_c8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy4_c8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy5_c8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy6_c8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copy7_c8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copy_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function function gpufortrt_present0_l1(hostptr) result(deviceptr) use iso_c_binding diff --git a/runtime/gpufortrt/src/gpufortrt_api.macros.f90 b/runtime/gpufortrt/src/gpufortrt_api.macros.f90 index 996ce01f..8bcdda12 100644 --- a/runtime/gpufortrt/src/gpufortrt_api.macros.f90 +++ b/runtime/gpufortrt/src/gpufortrt_api.macros.f90 @@ -171,7 +171,7 @@ subroutine gpufortrt_{{clause}}{{rank}}_{{triple[0]}}(hostptr,async_arg,finalize {#######################################################################################} {% macro render_basic_copy_routines() %} {#######################################################################################} -{% for clause in ["create","copyin","copy"] %} +{% for clause in ["create","copyin"] %} !> Map and directly return the corresponding deviceptr. function gpufortrt_{{clause}}_b(hostptr,num_bytes,never_deallocate,& async_arg) result(deviceptr) @@ -227,7 +227,7 @@ function gpufortrt_{{clause}}_async_c_impl(hostptr,num_bytes,never_deallocate,as {#######################################################################################} {% macro render_specialized_copy_routines(datatypes,max_rank) %} {#######################################################################################} -{% for clause in ["create","copyin","copy"] %} +{% for clause in ["create","copyin"] %} {% for triple in datatypes -%} !> Map and directly return the corresponding deviceptr. !> (Specialized version for Fortran scalar arguments) @@ -342,7 +342,7 @@ function gpufortrt_{{clause}}{{rank}}_{{triple[0]}}(hostptr) result(deviceptr) {{ render_interface("gpufortrt_"+clause,datatypes,max_rank,False) }} {% endfor %} -{% for clause in ["create","copyin","copy"] %} +{% for clause in ["create","copyin"] %} {{ render_interface("gpufortrt_"+clause,datatypes,max_rank) }} {% endfor %} From 3af85dc2d7b820d49dad99864066a123ce3c0f5e Mon Sep 17 00:00:00 2001 From: monoatamd Date: Tue, 8 Nov 2022 10:07:24 +0100 Subject: [PATCH 07/33] acc_is_present impl. with type(*) and dimension --- runtime/gpufortrt/rules.mk | 2 +- runtime/gpufortrt/src/gpufortrt_api_core.f90 | 27 ++++++++++++++++++++ runtime/gpufortrt/test/fortran/Makefile | 1 + 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/runtime/gpufortrt/rules.mk b/runtime/gpufortrt/rules.mk index 43e7d9fe..096b7406 100644 --- a/runtime/gpufortrt/rules.mk +++ b/runtime/gpufortrt/rules.mk @@ -2,7 +2,7 @@ HIP_PLATFORM ?= amd LIBGPUFORTRT = libgpufortrt_$(HIP_PLATFORM).a FC = gfortran -fmax-errors=5 -FCFLAGS ?= -std=f2008 -ffree-line-length-none -cpp +FCFLAGS ?= -std=f2018 -ffree-line-length-none -cpp #FCFLAGS += -g -ggdb -O0 -fbacktrace -fmax-errors=5 # -DDEBUG=3 diff --git a/runtime/gpufortrt/src/gpufortrt_api_core.f90 b/runtime/gpufortrt/src/gpufortrt_api_core.f90 index 9af53d50..0780fa38 100644 --- a/runtime/gpufortrt/src/gpufortrt_api_core.f90 +++ b/runtime/gpufortrt/src/gpufortrt_api_core.f90 @@ -292,4 +292,31 @@ function gpufortrt_use_device_c_impl(hostptr,condition,if_present) & resultptr = gpufortrt_use_device_c_impl(hostptr,opt_if_arg,opt_if_present_arg) end function + function gpufortrt_is_present(data_arg, bytes) result(isOnDeviceMemory) + use iso_c_binding + ! + type(*), target, dimension(..)::data_arg + integer(c_int),value,intent(in) :: bytes + ! + logical::isOnDeviceMemory + ! + interface + function gpufortrt_is_present_c_impl(data_arg, bytes) & + bind(c,name="gpufortrt_present") result(isOnDeviceMemory) + use iso_c_binding + ! + type(c_ptr), value::data_arg + integer(c_size_t),value :: bytes + ! + type(c_ptr)::isOnDeviceMemory + ! + end function + end interface + if(c_associated(gpufortrt_is_present_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t)))) then + isOnDeviceMemory = .true. + else + isOnDeviceMemory = .false. + end if + end function + end module diff --git a/runtime/gpufortrt/test/fortran/Makefile b/runtime/gpufortrt/test/fortran/Makefile index 2af4ac8b..507972d1 100644 --- a/runtime/gpufortrt/test/fortran/Makefile +++ b/runtime/gpufortrt/test/fortran/Makefile @@ -10,6 +10,7 @@ LDFLAGS = $(shell gpufort --print-acc-ldflags) -lgfortran # sources TEST_SRC = \ + ./test_acc_is_present.f90 \ ./test_structured_region_00.f90 \ ./test_structured_region_01.f90 \ ./test_structured_region_02.f90 \ From 59d4293c415a47f93867135dddb827fb1fd7a4ae Mon Sep 17 00:00:00 2001 From: monoatamd Date: Tue, 8 Nov 2022 10:41:24 +0100 Subject: [PATCH 08/33] avoided camelCase & added implicit none explicitly --- runtime/gpufortrt/src/gpufortrt_api.cpp | 8 ++++---- runtime/gpufortrt/src/gpufortrt_api_core.f90 | 19 +++++++------------ 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/runtime/gpufortrt/src/gpufortrt_api.cpp b/runtime/gpufortrt/src/gpufortrt_api.cpp index 7a1b5d95..8b9e245b 100644 --- a/runtime/gpufortrt/src/gpufortrt_api.cpp +++ b/runtime/gpufortrt/src/gpufortrt_api.cpp @@ -38,10 +38,10 @@ size_t gpufortrt_get_property(int dev_num, return total; break; case gpufortrt_property_free_memory: - size_t freeMem; - size_t totalMem; - HIP_CHECK(hipMemGetInfo(&freeMem, &totalMem)) - return freeMem; + size_t free_mem; + size_t total_mem; + HIP_CHECK(hipMemGetInfo(&free_mem, &total_mem)) + return free_mem; break; case gpufortrt_property_shared_memory_support: int result; diff --git a/runtime/gpufortrt/src/gpufortrt_api_core.f90 b/runtime/gpufortrt/src/gpufortrt_api_core.f90 index 0780fa38..0327b64f 100644 --- a/runtime/gpufortrt/src/gpufortrt_api_core.f90 +++ b/runtime/gpufortrt/src/gpufortrt_api_core.f90 @@ -292,31 +292,26 @@ function gpufortrt_use_device_c_impl(hostptr,condition,if_present) & resultptr = gpufortrt_use_device_c_impl(hostptr,opt_if_arg,opt_if_present_arg) end function - function gpufortrt_is_present(data_arg, bytes) result(isOnDeviceMemory) + logical function gpufortrt_is_present(data_arg, bytes) use iso_c_binding + implicit none ! type(*), target, dimension(..)::data_arg integer(c_int),value,intent(in) :: bytes ! - logical::isOnDeviceMemory + logical::is_on_device_memory ! interface - function gpufortrt_is_present_c_impl(data_arg, bytes) & - bind(c,name="gpufortrt_present") result(isOnDeviceMemory) + type(c_ptr) function gpufortrt_is_present_c_impl(data_arg, bytes) & + bind(c,name="gpufortrt_present") use iso_c_binding + implicit none ! type(c_ptr), value::data_arg integer(c_size_t),value :: bytes - ! - type(c_ptr)::isOnDeviceMemory - ! end function end interface - if(c_associated(gpufortrt_is_present_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t)))) then - isOnDeviceMemory = .true. - else - isOnDeviceMemory = .false. - end if + gpufortrt_is_present = c_associated(gpufortrt_is_present_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t))) end function end module From af7087e87f5d5a10a81eda48be44b5a44706ee83 Mon Sep 17 00:00:00 2001 From: monoatamd Date: Tue, 8 Nov 2022 10:43:35 +0100 Subject: [PATCH 09/33] minor update --- runtime/gpufortrt/src/gpufortrt_api_core.f90 | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/runtime/gpufortrt/src/gpufortrt_api_core.f90 b/runtime/gpufortrt/src/gpufortrt_api_core.f90 index 0327b64f..7e79ba5b 100644 --- a/runtime/gpufortrt/src/gpufortrt_api_core.f90 +++ b/runtime/gpufortrt/src/gpufortrt_api_core.f90 @@ -299,8 +299,6 @@ logical function gpufortrt_is_present(data_arg, bytes) type(*), target, dimension(..)::data_arg integer(c_int),value,intent(in) :: bytes ! - logical::is_on_device_memory - ! interface type(c_ptr) function gpufortrt_is_present_c_impl(data_arg, bytes) & bind(c,name="gpufortrt_present") @@ -308,7 +306,7 @@ type(c_ptr) function gpufortrt_is_present_c_impl(data_arg, bytes) & implicit none ! type(c_ptr), value::data_arg - integer(c_size_t),value :: bytes + integer(c_size_t), value :: bytes end function end interface gpufortrt_is_present = c_associated(gpufortrt_is_present_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t))) From a69f450319a5cea333802d132366ac30cccc298a Mon Sep 17 00:00:00 2001 From: monoatamd Date: Tue, 8 Nov 2022 12:37:17 +0100 Subject: [PATCH 10/33] fixed renaming conflict --- runtime/gpufortrt/src/gpufortrt_api.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/runtime/gpufortrt/src/gpufortrt_api.cpp b/runtime/gpufortrt/src/gpufortrt_api.cpp index 8b9e245b..982da681 100644 --- a/runtime/gpufortrt/src/gpufortrt_api.cpp +++ b/runtime/gpufortrt/src/gpufortrt_api.cpp @@ -30,18 +30,15 @@ int gpufortrt_get_device_num() { size_t gpufortrt_get_property(int dev_num, gpufortrt_device_property_t property) { + size_t free, total; switch ( property ) { case gpufortrt_property_memory: - size_t free; - size_t total; HIP_CHECK(hipMemGetInfo(&free, &total)) return total; break; case gpufortrt_property_free_memory: - size_t free_mem; - size_t total_mem; - HIP_CHECK(hipMemGetInfo(&free_mem, &total_mem)) - return free_mem; + HIP_CHECK(hipMemGetInfo(&free, &total)) + return free; break; case gpufortrt_property_shared_memory_support: int result; From aa4c16a1777ce6ee475d6ff2f1bc5d0a7eb138ad Mon Sep 17 00:00:00 2001 From: monoatamd Date: Wed, 9 Nov 2022 09:09:03 +0100 Subject: [PATCH 11/33] added list of openacc rtlib routines --- runtime/gpufortrt/openacc_library_routines.md | 213 ++++++++++++++++++ 1 file changed, 213 insertions(+) create mode 100644 runtime/gpufortrt/openacc_library_routines.md diff --git a/runtime/gpufortrt/openacc_library_routines.md b/runtime/gpufortrt/openacc_library_routines.md new file mode 100644 index 00000000..fd277e9f --- /dev/null +++ b/runtime/gpufortrt/openacc_library_routines.md @@ -0,0 +1,213 @@ +# acc_get_num_devices + +## Status + +# acc_set_device_type + +## Status + +# acc_get_device_type + +## Status + +# acc_set_device_num + +## Status + +Exists in gpufortrt_api.cpp + +# acc_get_device_num + +## Status + +Exists in gpufortrt_api.cpp + +# acc_get_property + +## Status + +Exists in gpufortrt_api.cpp + +# acc_init + +## Status + +Exists in gpufortrt_api.cpp + +# acc_shutdown + +## Status + +Exists in gpufortrt_api.cpp + +# acc_async_test + +## Status + +Exists in gpufortrt_api.cpp + +# acc_async_test_device + +## Status + +Exists in gpufortrt_api.cpp + +# acc_async_test_all + +## Status + +Exists in gpufortrt_api.cpp + +# acc_async_test_all_device + +## Status + +Exists in gpufortrt_api.cpp + +# acc_wait + +## Status + +Exists in gpufortrt_api.cpp + +# acc_wait_device + +## Status + +# acc_wait_async + +## Status + +Exists in gpufortrt_api.cpp + +# acc_wait_device_async + +## Status + +# acc_wait_all + +## Status + +Exists in gpufortrt_api.cpp + +# acc_wait_all_device + +## Status + +# acc_wait_all_async + +## Status + +Exists in gpufortrt_api.cpp + +# acc_wait_all_device_async + +## Status + +# acc_get_default_async + +## Status + +Exists in gpufortrt_api.cpp, not tested + +# acc_set_default_async + +## Status + +Exists in gpufortrt_api.cpp, not tested + +# acc_on_device + +## Status + +# acc_malloc + +## Status + +# acc_free + +## Status + +# acc_copyin + +## Status + +Exists in gpufortrt_api.cpp + +# acc_create + +## Status + +Exists in gpufortrt_api.cpp + +# acc_copyout + +## Status + +Exists in gpufortrt_api.cpp + +# acc_delete + +## Status + +Exists in gpufortrt_api.cpp + +# acc_update_device + +## Status + +Exists in gpufortrt_api.cpp + +# acc_update_self + +## Status + +Exists in gpufortrt_api.cpp + +# acc_map_data + +## Status + +# acc_unmap_data + +## Status + +# acc_deviceptr + +## Status + +Exists in gpufortrt_api.cpp + +# acc_hostptr + +## Status + +# acc_is_present + +## Status + +Exists in gpufortrt_api.cpp + +# acc_memcpy_to_device + +## Status + +# acc_memcpy_from_device + +## Status + +# acc_memcpy_device + +## Status + +# acc_attach + +## Status + +# acc_detach + +## Status + +# acc_memcpy_d2d + +## Status From 611c40f845c833a80b93a9559099f2364f0bb16b Mon Sep 17 00:00:00 2001 From: monoatamd Date: Mon, 14 Nov 2022 13:26:49 +0100 Subject: [PATCH 12/33] Reverted frontend chngs, added impl. for 4 apis --- python/gpufort/scanner/parser.py | 6 - python/gpufort/util/parsing/parsing.py | 5 - runtime/gpufortrt/include/openacc.h | 9 +- runtime/gpufortrt/src/obj.mk | 6 +- runtime/gpufortrt/src/openacc.cpp | 43 +- runtime/gpufortrt/src/openacc.f90 | 638 ++----------------------- 6 files changed, 93 insertions(+), 614 deletions(-) diff --git a/python/gpufort/scanner/parser.py b/python/gpufort/scanner/parser.py index fc95a10b..803eb90e 100644 --- a/python/gpufort/scanner/parser.py +++ b/python/gpufort/scanner/parser.py @@ -641,12 +641,6 @@ def is_end_statement_(tokens, kind): numeric_label = None current_statement_stripped = " ".join([tk for tk in current_tokens if len(tk)]) - # We really don't need to create STNodes to implement acc runtime routines - # Is it a good idea to directly modify the source code here? - if util.parsing.is_acc_rtlib(original_statement_lower,modern_fortran): - gpufortrt_acc_rtlib_statement = original_statement.replace("acc_", "gpufortrt_") - current_statement["body"] = gpufortrt_acc_rtlib_statement - current_linemap["modified"] = True if util.parsing.is_fortran_directive(original_statement_lower,modern_fortran): if openacc and current_tokens[1] == "acc": AccDirective() diff --git a/python/gpufort/util/parsing/parsing.py b/python/gpufort/util/parsing/parsing.py index b60dc966..b78ec5ac 100644 --- a/python/gpufort/util/parsing/parsing.py +++ b/python/gpufort/util/parsing/parsing.py @@ -1942,11 +1942,6 @@ def is_declaration(tokens): def is_blank_line(statement): return not len(statement.strip()) -def is_acc_rtlib(statement, modern_fortran): - """If the statement is an OpenACC runtime library function or subroutine""" - """ToDo: Add more complicated cases""" - return ("call acc_" in statement) or ("= acc_" in statement) or ("=acc_" in statement) - def is_fortran_directive(statement,modern_fortran): """If the statement is a directive.""" return len(statement) > 2 and (modern_fortran and statement.lstrip()[0:2] == "!$" diff --git a/runtime/gpufortrt/include/openacc.h b/runtime/gpufortrt/include/openacc.h index ac6ab14d..91b55777 100644 --- a/runtime/gpufortrt/include/openacc.h +++ b/runtime/gpufortrt/include/openacc.h @@ -2,10 +2,11 @@ // Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. #ifndef OPENACC_LIB_H #define OPENACC_LIB_H +#include "gpufortrt_types.h" #ifdef __cplusplus extern "C" { #endif -#include "gpufortrt_types.h" + extern int acc_async_noval; extern int acc_async_sync; @@ -27,7 +28,7 @@ enum acc_device_t { acc_device_nvidia = acc_device_hip }; -enum acc_property_t { +enum acc_device_property_t { acc_property_memory = 0,//>integer, size of device memory in bytes acc_property_free_memory,//>integer, free device memory in bytes acc_property_shared_memory_support,//>integer, nonzero if the specified device supports sharing memory with the local thread @@ -61,7 +62,7 @@ char* acc_get_property_string(int dev_num, acc_device_t dev_type, acc_device_property_t property); -void acc_init(acc_on_device_t dev_type); +void acc_init(acc_device_t dev_type); void acc_shutdown(acc_device_t dev_type); int acc_async_test(int wait_arg); @@ -141,7 +142,7 @@ void acc_memcpy_from_device(h_void* data_host_dest, d_void* data_dev_src, size_t bytes); void acc_memcpy_from_device_async(h_void* data_host_dest, d_void* data_dev_src, size_t bytes, - int async_arg) + int async_arg); void acc_attach(h_void** ptr_addr); void acc_attach_async(h_void** ptr_addr, int async_arg); diff --git a/runtime/gpufortrt/src/obj.mk b/runtime/gpufortrt/src/obj.mk index 08ed9dee..622383cc 100644 --- a/runtime/gpufortrt/src/obj.mk +++ b/runtime/gpufortrt/src/obj.mk @@ -2,7 +2,9 @@ # Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. F_OBJ += ./gpufortrt_types.o \ ./gpufortrt_api_core.o \ - ./gpufortrt_api.o + ./gpufortrt_api.o \ + ./openacc.o CXX_OBJ += ./gpufortrt_types.cpp.o \ - ./gpufortrt_api.cpp.o + ./gpufortrt_api.cpp.o \ + ./openacc.cpp.o diff --git a/runtime/gpufortrt/src/openacc.cpp b/runtime/gpufortrt/src/openacc.cpp index 54114188..27d9e5a5 100644 --- a/runtime/gpufortrt/src/openacc.cpp +++ b/runtime/gpufortrt/src/openacc.cpp @@ -11,18 +11,38 @@ namespace { acc_device_t current_device = acc_device_none; + gpufortrt_device_property_t check_device_property(acc_device_property_t property,bool allow_none=true){ + switch(property){ + case acc_property_memory: + return gpufortrt_property_memory; + case gpufortrt_property_free_memory: + return gpufortrt_property_free_memory; + case gpufortrt_property_shared_memory_support: + return gpufortrt_property_shared_memory_support; + case gpufortrt_property_name: + return gpufortrt_property_name; + case gpufortrt_property_vendor: + return gpufortrt_property_vendor; + case gpufortrt_property_driver: + return gpufortrt_property_driver; + } + } + bool check_device_type(acc_device_t dev_type,bool allow_none=true) { switch (dev_type) { - case device_default: + case acc_device_default: return ::check_device_type(::default_device); case acc_device_current: return ::check_device_type(::current_device); case acc_device_host: return acc_device_host; - case acc_device_not_host: - case acc_device_hip: - case acc_device_radeon: - case acc_device_nvidia: + case acc_device_not_host: + // According to the definition of enum acc_device_t + // the following cases are identical. So, keep one? + // case acc_device_not_host: + // case acc_device_hip: + // case acc_device_radeon: + // case acc_device_nvidia: return acc_device_hip; case acc_device_none: if ( !allow_none ) { @@ -77,7 +97,7 @@ size_t acc_get_property(int dev_num, acc_device_t dev_type, acc_device_property_t property) { if ( ::check_device_type(dev_type) == acc_device_hip ) { - return gpufortrt_get_property(dev_num,property); + return gpufortrt_get_property(dev_num,check_device_property(property)); } else { throw std::invalid_argument("acc_get_property: only implemented for non-host device types"); } @@ -87,7 +107,7 @@ char* acc_get_property_string(int dev_num, acc_device_t dev_type, acc_device_property_t property) { if ( ::check_device_type(dev_type) == acc_device_hip ) { - return gpufortrt_get_property_string(dev_num,property); + return gpufortrt_get_property_string(dev_num,check_device_property(property)); } else { throw std::invalid_argument("acc_get_property_string: only implemented for non-host device types"); } @@ -102,7 +122,7 @@ int acc_get_device_num_f(acc_device_t dev_type) { } -void acc_init(acc_on_device_t dev_type) { +void acc_init(acc_device_t dev_type) { if ( ::check_device_type(dev_type) == acc_device_hip ) { gpufortrt_init(); } @@ -113,3 +133,10 @@ void acc_shutdown(acc_device_t dev_type) { gpufortrt_shutdown(); } } + +int acc_is_present(void* hostptr,std::size_t num_bytes) { + if(gpufortrt_present(hostptr, num_bytes)) + return 1; + else + return 0; +} \ No newline at end of file diff --git a/runtime/gpufortrt/src/openacc.f90 b/runtime/gpufortrt/src/openacc.f90 index 59c507a6..4a4a2319 100644 --- a/runtime/gpufortrt/src/openacc.f90 +++ b/runtime/gpufortrt/src/openacc.f90 @@ -10,7 +10,6 @@ module openacc integer(acc_handle_kind), parameter :: acc_async_sync = -2 integer(acc_handle_kind), parameter :: acc_async_default = -3 - integer, parameter :: acc_device_kind = kind(acc_device_none) enum, bind(c) enumerator :: acc_device_none = 0 enumerator :: acc_device_default @@ -36,626 +35,87 @@ module openacc integer, parameter :: acc_property_kind = kind(acc_property_memory) ! direct delegation to C implementation - interface - subroutine acc_set_device_type(dev_type) bind(c,name="acc_set_device_type") - implicit none - integer(acc_device_kind),value :: dev_type - end subroutine - - integer(acc_device_kind) function acc_get_device_type() bind(c,name="acc_get_device_type") - implicit none - end function - - function acc_get_property(dev_num, dev_type, property) bind(c,name="acc_get_property") - use iso_c_binding, only: c_size_t - implicit none - integer, value :: dev_num - integer(acc_device_kind), value :: dev_type - integer(acc_device_property_kind), value :: property - integer(c_size_t) :: acc_get_property - end function - - subroutine acc_init(dev_type) bind(c,name="acc_init") - implicit none - integer(acc_device_kind),value :: dev_type - end subroutine - - subroutine acc_shutdown(dev_type) bind(c,name="acc_shutdown") - implicit none - integer(acc_device_kind),value :: dev_type - end subroutine - - subroutine acc_wait(wait_arg) bind(c,name="acc_wait") - implicit none - integer(acc_handle_kind),value :: wait_arg - end subroutine - - subroutine acc_wait_all() bind(c,name="acc_wait_all") - implicit none - end subroutine - - subroutine acc_wait_all_async(wait_arg) bind(c,name="acc_wait_all_async") - implicit none - integer(acc_handle_kind),value :: wait_arg - end subroutine - - function acc_get_default_async() bind(c,name="acc_get_default_async") - implicit none - integer(acc_handle_kind),value :: acc_get_default_async - end function - - subroutine acc_set_default_async(async_arg) bind(c,name="acc_set_default_async") - implicit none - integer(acc_handle_kind),value :: acc_get_default_async - end subroutine - - end interface - - ! Overloaded routines - - interface acc_copyin - module procedure :: acc_copyin_nb - module procedure :: acc_copyin_b - end interface - - interface acc_copyin_async - module procedure :: acc_copyin_async_nb - module procedure :: acc_copyin_async_b - end interface - - interface acc_create - module procedure :: acc_create_nb - module procedure :: acc_create_b - end interface - - interface acc_create_async - module procedure :: acc_create_async_nb - module procedure :: acc_create_async_b - end interface - interface acc_update_device - module procedure :: acc_update_device_nb - module procedure :: acc_update_device_b - end interface - - interface acc_update_device_async - module procedure :: acc_update_device_async_nb - module procedure :: acc_update_device_async_b - end interface - - interface acc_update_self - module procedure :: acc_update_self_nb - module procedure :: acc_update_self_b - end interface - - interface acc_update_self_async - module procedure :: acc_update_self_async_nb - module procedure :: acc_update_self_async_b - end interface - interface acc_is_present module procedure :: acc_is_present_nb module procedure :: acc_is_present_b end interface - ! Legacy interfaces - interface acc_present_or_copyin - module procedure :: acc_copyin_nb - module procedure :: acc_copyin_b - end interface - interface acc_pcopyin - module procedure :: acc_copyin_nb - module procedure :: acc_copyin_b - end interface - - interface acc_present_or_create - module procedure :: acc_create_nb - module procedure :: acc_create_b - end interface - interface acc_pcreate - module procedure :: acc_create_nb - module procedure :: acc_create_b - end interface - - ! Non-standard extensions - - interface acc_malloc - type(c_ptr) function acc_malloc_c_impl(bytes) bind(c,name="acc_malloc") - use iso_c_binding, only: c_size_t, c_ptr - implicit none - integer(c_size_t),value :: bytes - end function - end interface - - interface acc_free - subroutine acc_free_c_impl(data_dev) bind(c,name="acc_free") - use iso_c_binding, only: c_ptr - implicit none - type(c_ptr),value :: data_dev - end subroutine - end interface - contains - integer function acc_get_num_devices(dev_type) + subroutine acc_set_device_type(dev_type) + use iso_c_binding + implicit none + ! + integer(kind=acc_device_kind),value :: dev_type + interface + subroutine acc_set_device_type_c_impl(dev_type) & + bind(c,name="acc_set_device_type") + use iso_c_binding + Import::acc_device_kind + implicit none + ! + integer(kind=acc_device_kind), value, intent(in):: dev_type + end subroutine + end interface + call acc_set_device_type_c_impl(dev_type) + end subroutine + + integer(kind=acc_device_kind) function acc_get_device_type() use iso_c_binding implicit none + ! interface - integer(c_int) function acc_get_num_devices_c_impl(dev_type) bind(c,name="acc_get_num_devices") - implicit none - integer(acc_device_kind),value :: dev_type - end function - end interface - acc_get_num_devices = int(acc_get_num_devices_c_impl(dev_type)) - end function - - subroutine acc_set_device_num(dev_num, dev_type) - implicit none - integer :: dev_num - integer(acc_device_kind) :: dev_type - interface - subroutine acc_set_device_num_c_impl(dev_num, dev_type) bind(c,name="acc_set_device_num") - implicit none - integer(c_int),value :: dev_num - integer(acc_device_kind),value :: dev_type - end subroutine - end interface - call acc_set_device_num_c_impl(int(dev_num,kind=c_int), dev_type) - end subroutine - - integer function acc_get_device_num(dev_type) - implicit none - integer(acc_device_kind) :: dev_type - interface - integer(c_int) function acc_get_device_num_c_impl(dev_type) bind(c,name="acc_get_device_num") - implicit none - end function - end interface - acc_get_device_num = int(acc_get_device_num_c_impl(dev_type)) - end function - - subroutine acc_get_property_string(dev_num, dev_type,& - implicit none - property, string) - integer, value :: dev_num - integer(acc_device_kind), value :: dev_type - integer(acc_device_property_kind), value :: property - character*(*) :: string - ! TODO - !interface - ! subroutine acc_get_property_string_c_impl(dev_num,dev_type,property,string) bind(c,name="acc_get_property_string") - ! use iso_c_binding, only: c_int - ! integer(c_int), value :: dev_num - ! integer(acc_device_kind), value :: dev_type - ! integer(acc_device_property_kind), value :: property - ! character*(kind=c_char,len=*) :: string - ! end subroutine - !end interface - !character(kind=c_char,len=*) :: - !call acc_get_property_string_c_impl(dev_num,dev_type,property,string) - ERROR STOP "acc_get_property_string not implemented yet!" - end subroutine - - logical function acc_async_test(wait_arg) - implicit none - integer(acc_handle_kind) :: wait_arg - interface - integer(c_int) function acc_async_test_c_impl(wait_arg) bind(c,name="acc_async_test") - implicit none - integer(acc_handle_kind),value :: wait_arg - end function - end interface - acc_async_test = acc_async_test_c_impl(wait_arg) > 0 - end function - - logical function acc_async_test_device(wait_arg, dev_num) - implicit none - integer(acc_handle_kind) :: wait_arg - integer :: dev_num - interface - integer(c_int) function acc_async_test_device_c_impl(wait_arg, dev_num) & - bind(c,name="acc_async_test_device") - use iso_c_binding, only: c_int - implicit none - integer(acc_handle_kind),value :: wait_arg - integer(c_int),value :: dev_num - end function - end interface - acc_async_test_device = acc_async_test_device_c_impl(wait_arg,int(dev_num,kind=c_int)) > 0 - end function - - logical function acc_async_test_all() - implicit none - interface - integer(c_int) function acc_async_test_all_c_impl() & - bind(c,name=acc_async_test_all) - implicit none - end function - end interface - acc_async_test_all = acc_async_test_all_c_impl() > 0 - end function - - logical function acc_async_test_all_device(dev_num) - implicit none - integer :: dev_num - interface - integer(c_int) function acc_async_test_all_device_c_impl(dev_num) bind(c,name="acc_async_test_all_device") - use iso_c_binding, only: c_int - implicit none - integer(c_int),value :: dev_num - end function - end interface - acc_async_test_device = acc_async_test_all_device(int(dev_num,kind=c_int)) > 0 - end function - - subroutine acc_wait_device(wait_arg, dev_num) - implicit none - integer(acc_handle_kind) :: wait_arg - integer :: dev_num - interface - subroutine acc_wait_device_c_impl(wait_arg, dev_num) & - bind(c,name="acc_wait_device") - use iso_c_binding, only: c_int - implicit none - integer(acc_handle_kind),value :: wait_arg - integer(c_int),value :: dev_num - end subroutine - end interface - call acc_wait_device_c_impl(wait_arg,int(dev_num,kind=c_int)) - end subroutine - - subroutine acc_wait_async(wait_arg, async_arg) - implicit none - integer(acc_handle_kind) :: wait_arg, async_arg - interface - subroutine acc_wait_async_c_impl(wait_arg, async_arg) & - bind(c,name="acc_wait_async") - implicit none - integer(acc_handle_kind),value :: wait_arg, async_arg - end subroutine - end interface - call acc_wait_async_c_impl(wait_arg,async_arg) - end subroutine - - subroutine acc_wait_device_async(wait_arg, async_arg, dev_num) - implicit none - integer(acc_handle_kind) :: wait_arg, async_arg - integer :: dev_num - interface - subroutine acc_wait_device_async_c_impl(wait_arg, async_arg, dev_num) & - bind(c,name="acc_wait_device_async") - use iso_c_binding, only: c_int - implicit none - integer(acc_handle_kind),value :: wait_arg, async_arg - integer(c_int),value :: dev_num - end subroutine - end interface - call acc_wait_device_async_c_impl(wait_arg,async_arg,int(dev_num,kind=c_int)) - end subroutine - - subroutine acc_wait_all_device(dev_num) - implicit none - integer :: dev_num - interface - subroutine acc_wait_all_device_c_impl(dev_num) & - bind(c,name="acc_wait_all_device") - use iso_c_binding, only: c_int - implicit none - integer(c_int),value :: dev_num - end subroutine - end interface - call acc_wait_all_device_c_impl(int(dev_num,kind=c_int)) - end subroutine - - subroutine acc_wait_all_device_async(async_arg, dev_num) - implicit none - integer(acc_handle_kind) :: async_arg - integer :: dev_num - interface - subroutine acc_wait_all_device_async_c_impl(async_arg, dev_num) & - bind(c,name="acc_wait_all_device_async") - use iso_c_binding, only: c_int + integer(c_int) function acc_get_device_type_c_impl() & + bind(c,name="acc_get_device_type") + use iso_c_binding implicit none - integer(acc_handle_kind),value :: async_arg - integer(c_int),value :: dev_num - end subroutine - end interface - call acc_wait_all_device_async_c_impl(async_arg,int(dev_num,kind=c_int)) - end subroutine - - logical function acc_on_device(dev_type) - implicit none - integer(acc_device_kind) :: dev_type - interface - integer(c_int) function acc_on_device_c_impl(dev_type) bind(c,name="acc_on_device") - use iso_c_binding, only: c_int - implicit none - integer(acc_device_kind),value :: dev_type + ! end function end interface - acc_on_device = acc_on_device_c_impl(dev_type) > 0 + acc_get_device_type = int(acc_get_device_type_c_impl(),kind=acc_device_kind) end function - !subroutine acc_copyin(data_arg) # TODO - !subroutine acc_copyin_async(data_arg, async_arg) # TODO - subroutine acc_copyin(data_arg, bytes) - implicit none - type(*), target, dimension(..) :: data_arg - integer :: bytes - ! - type(c_ptr) :: tmp - interface - function acc_copyin_c_impl(data_arg, bytes) bind(c,name="acc_copyin") - implicit none - type(c_ptr),value :: hostptr - integer(c_size_t),value :: num_bytes - type(c_ptr) :: acc_copyin_c_impl - end function - end interface - tmp = acc_copyin_c_impl(c_loc(data_arg), int(num_bytes,kind=c_size_t)) - end subroutine - subroutine acc_copyin_async(data_arg, bytes, async_arg) - implicit none - type(*), dimension(..) :: data_arg - integer :: bytes - integer(acc_handle_kind) :: async_arg - interface - subroutine acc_copyin_async_c_impl(data_arg, bytes) bind(c,name="acc_copyin_async") - implicit none - type(c_ptr),value :: hostptr - integer(c_size_t),value :: num_bytes - integer(acc_handle_kind),value :: async_arg - end subroutine - end interface - call acc_copyin_async_c_impl(c_loc(data_arg), int(num_bytes,kind=c_size_t)) - end subroutine - - !subroutine acc_create(data_arg) # TODO - !subroutine acc_create_async(data_arg, async_arg) # TODO - subroutine acc_create(data_arg, bytes) + integer function acc_get_num_devices(dev_type) + use iso_c_binding implicit none - type(*), target, dimension(..) :: data_arg - integer :: bytes ! - type(c_ptr) :: tmp + integer(kind=acc_device_kind),value :: dev_type interface - function acc_create_c_impl(data_arg, bytes) bind(c,name="acc_create") + integer(c_int) function acc_get_num_devices_c_impl(dev_type) bind(c,name="acc_get_num_devices") + use iso_c_binding + Import::acc_device_kind implicit none - type(c_ptr),value :: hostptr - integer(c_size_t),value :: num_bytes - type(c_ptr) :: acc_create_c_impl + ! + integer(kind=acc_device_kind),value :: dev_type end function end interface - tmp = acc_create_c_impl(c_loc(data_arg), int(num_bytes,kind=c_size_t)) - end subroutine - subroutine acc_create_async(data_arg, bytes, async_arg) - implicit none - type(*), dimension(..) :: data_arg - integer :: bytes - integer(acc_handle_kind) :: async_arg - interface - subroutine acc_create_async_c_impl(data_arg, bytes) bind(c,name="acc_create_async") - implicit none - type(c_ptr),value :: hostptr - integer(c_size_t),value :: num_bytes - integer(acc_handle_kind),value :: async_arg - end subroutine - end interface - call acc_create_async_c_impl(c_loc(data_arg), int(num_bytes,kind=c_size_t)) - end subroutine - - !subroutine acc_copyout(data_arg) # TODO - !subroutine acc_copyout_async(data_arg, async_arg) # TODO - subroutine acc_copyout(data_arg, bytes) - implicit none - type(*), target, dimension(..) :: data_arg - integer :: bytes - interface - subroutine acc_copyout_c_impl(data_arg, bytes) bind(c,name="acc_copyout") - implicit none - type(c_ptr),value :: hostptr - integer(c_size_t),value :: num_bytes - end subroutine - end interface - call acc_copyout_c_impl(c_loc(data_arg), int(num_bytes,kind=c_size_t)) - end subroutine - subroutine acc_copyout_async(data_arg, bytes, async_arg) - implicit none - type(*), dimension(..) :: data_arg - integer :: bytes - integer(acc_handle_kind) :: async_arg - interface - subroutine acc_copyout_async_c_impl(data_arg, bytes) bind(c,name="acc_copyout_async") - implicit none - type(c_ptr),value :: hostptr - integer(c_size_t),value :: num_bytes - integer(acc_handle_kind),value :: async_arg - end subroutine - end interface - call acc_copyout_async_c_impl(c_loc(data_arg), int(num_bytes,kind=c_size_t)) - end subroutine - !subroutine acc_copyout_finalize(data_arg) # TODO - !subroutine acc_copyout_finalize_async(data_arg, async_arg) # TODO - subroutine acc_copyout_finalize(data_arg, bytes) - implicit none - type(*), target, dimension(..) :: data_arg - integer :: bytes - interface - subroutine acc_copyout_finalize_c_impl(data_arg, bytes) bind(c,name="acc_copyout_finalize") - implicit none - type(c_ptr),value :: hostptr - integer(c_size_t),value :: num_bytes - end subroutine - end interface - call acc_copyout_finalize_c_impl(c_loc(data_arg), int(num_bytes,kind=c_size_t)) - end subroutine - subroutine acc_copyout_finalize_async(data_arg, bytes, async_arg) - implicit none - type(*), dimension(..) :: data_arg - integer :: bytes - integer(acc_handle_kind) :: async_arg - interface - subroutine acc_copyout_finalize_async_c_impl(data_arg, bytes) bind(c,name="acc_copyout_finalize_async") - implicit none - type(c_ptr),value :: hostptr - integer(c_size_t),value :: num_bytes - integer(acc_handle_kind),value :: async_arg - end subroutine - end interface - call acc_copyout_finalize_async_c_impl(c_loc(data_arg), int(num_bytes,kind=c_size_t)) - end subroutine - - !subroutine acc_delete(data_arg) # TODO - !subroutine acc_delete_async(data_arg, async_arg) # TODO - subroutine acc_delete(data_arg, bytes) - implicit none - type(*), target, dimension(..) :: data_arg - integer :: bytes - interface - subroutine acc_delete_c_impl(data_arg, bytes) bind(c,name="acc_delete") - implicit none - type(c_ptr),value :: hostptr - integer(c_size_t),value :: num_bytes - end subroutine - end interface - call acc_delete_c_impl(c_loc(data_arg), int(num_bytes,kind=c_size_t)) - end subroutine - subroutine acc_delete_async(data_arg, bytes, async_arg) - implicit none - type(*), dimension(..) :: data_arg - integer :: bytes - integer(acc_handle_kind) :: async_arg - interface - subroutine acc_delete_async_c_impl(data_arg, bytes) bind(c,name="acc_delete_async") - implicit none - type(c_ptr),value :: hostptr - integer(c_size_t),value :: num_bytes - integer(acc_handle_kind),value :: async_arg - end subroutine - end interface - call acc_delete_async_c_impl(c_loc(data_arg), int(num_bytes,kind=c_size_t)) - end subroutine - !subroutine acc_delete_finalize(data_arg) # TODO - !subroutine acc_delete_finalize_async(data_arg, async_arg) # TODO - subroutine acc_delete_finalize(data_arg, bytes) - implicit none - type(*), target, dimension(..) :: data_arg - integer :: bytes - interface - subroutine acc_delete_finalize_c_impl(data_arg, bytes) bind(c,name="acc_delete_finalize") - implicit none - type(c_ptr),value :: hostptr - integer(c_size_t),value :: num_bytes - end subroutine - end interface - call acc_delete_finalize_c_impl(c_loc(data_arg), int(num_bytes,kind=c_size_t)) - end subroutine - subroutine acc_delete_finalize_async(data_arg, bytes, async_arg) - implicit none - type(*), dimension(..) :: data_arg - integer :: bytes - integer(acc_handle_kind) :: async_arg - interface - subroutine acc_delete_finalize_async_c_impl(data_arg, bytes) bind(c,name="acc_delete_finalize_async") - implicit none - type(c_ptr),value :: hostptr - integer(c_size_t),value :: num_bytes - integer(acc_handle_kind),value :: async_arg - end subroutine - end interface - call acc_delete_finalize_async_c_impl(c_loc(data_arg), int(num_bytes,kind=c_size_t)) - end subroutine - - !subroutine acc_update_device(data_arg) # TODO - !subroutine acc_update_device_async(data_arg, async_arg) TODO - subroutine acc_update_device(data_arg, bytes) - implicit none - type(*), dimension(..) :: data_arg - integer :: bytes - interface - subroutine acc_update_device_c_impl(data_arg, bytes) bind(c,name="acc_update_device") - implicit none - type(c_ptr),value :: data_arg - integer(c_size_t),value :: bytes - end subroutine - end interface - call acc_update_device_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t)) - end subroutine - - subroutine acc_update_device_async(data_arg, bytes, async_arg) - implicit none - type(*), dimension(..) :: data_arg - integer :: bytes - integer(acc_handle_kind) :: async_arg - interface - subroutine acc_update_device_c_impl(data_arg, bytes) bind(c,name="acc_update_device") - implicit none - type(c_ptr),value :: data_arg - integer(c_size_t),value :: bytes - integer(acc_handle_kind),value :: async_arg - end subroutine - end interface - call acc_update_device_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t),async_arg) - end subroutine - - subroutine acc_update_self_b(data_arg, bytes) - implicit none - type(*), dimension(..) :: data_arg - integer :: bytes - interface - subroutine acc_update_self_c_impl(data_arg, bytes) bind(c,name="acc_update_self") - implicit none - type(c_ptr),value :: data_arg - integer(c_size_t),value :: bytes - end subroutine - end interface - call acc_update_self_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t)) - end subroutine - - subroutine acc_update_self_async_b(data_arg, bytes, async_arg) - implicit none - type(*), dimension(..) :: data_arg - integer :: bytes - integer(acc_handle_kind) :: async_arg - interface - subroutine acc_update_self_c_impl(data_arg, bytes) bind(c,name="acc_update_self") - implicit none - type(c_ptr),value :: data_arg - integer(c_size_t),value :: bytes - integer(acc_handle_kind),value :: async_arg - end subroutine - end interface - call acc_update_self_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t),async_arg) - end subroutine + acc_get_num_devices = int(acc_get_num_devices_c_impl(dev_type)) + end function - subroutine acc_update_self_b(data_arg) - implicit none - type(*), dimension(..), contiguous :: data_arg - call acc_update_self_b(data_arg,sizeof(data_arg)) - end subroutine - subroutine acc_update_self_async_nb(data_arg, async_arg) - implicit none - type(*), dimension(..) :: data_arg - integer(acc_handle_kind) :: async_arg - call acc_update_self_async_b(data_arg,sizeof(data_arg),async_arg) - end subroutine - logical function acc_is_present_b(data_arg, bytes) + use iso_c_binding implicit none - type(*), dimension(..) :: data_arg - integer :: bytes + ! + type(*), target, dimension(..)::data_arg + integer(c_int),value,intent(in) :: bytes interface - integer(c_int) function acc_is_present_c_impl(data_arg,bytes) bind(c,name="acc_is_present") + integer(c_int) function acc_is_present_c_impl(data_arg,bytes) & + bind(c,name="acc_is_present") + use iso_c_binding implicit none - type(c_ptr),value :: data_arg - integer(c_size_t),value :: bytes + ! + type(c_ptr), value::data_arg + integer(c_size_t), value :: bytes end function end interface acc_is_present_b = acc_is_present_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t)) > 0 end function logical function acc_is_present_nb(data_arg) + use iso_c_binding implicit none - type(*), dimension(..), contiguous :: data_arg - acc_is_present_nb = acc_is_present_b(data_arg,sizeof(data_arg)) + ! + type(*), target, dimension(..), contiguous :: data_arg + acc_is_present_nb = acc_is_present_b(c_loc(data_arg),size(data_arg)) end function end module From cfd4e145283a7980a1860bac9a71eb95befd7047 Mon Sep 17 00:00:00 2001 From: monoatamd Date: Wed, 16 Nov 2022 16:33:17 +0100 Subject: [PATCH 13/33] added more high priority APIs --- runtime/gpufortrt/include/gpufortrt_api.h | 9 +- runtime/gpufortrt/include/openacc.h | 12 +- runtime/gpufortrt/src/gpufortrt_api.cpp | 33 ++++- runtime/gpufortrt/src/openacc.cpp | 19 +++ runtime/gpufortrt/src/openacc.f90 | 138 ++++++++++++++++++ runtime/gpufortrt/test/fortran/Makefile | 1 + .../test/fortran/test_acc_wait_device_00.f90 | 6 + 7 files changed, 211 insertions(+), 7 deletions(-) create mode 100644 runtime/gpufortrt/test/fortran/test_acc_wait_device_00.f90 diff --git a/runtime/gpufortrt/include/gpufortrt_api.h b/runtime/gpufortrt/include/gpufortrt_api.h index 20377410..1c22cf32 100644 --- a/runtime/gpufortrt/include/gpufortrt_api.h +++ b/runtime/gpufortrt/include/gpufortrt_api.h @@ -143,7 +143,14 @@ extern "C" { bool if_arg); void gpufortrt_wait_all_async(int* async_arg,int num_async, bool if_arg); - + void gpufortrt_wait_device(int* wait_arg, int num_wait, + int dev_num, bool if_arg); + void gpufortrt_wait_device_async(int* wait_arg, int num_wait, + int* async_arg, int num_async, + int dev_num, bool if_arg); + void gpufortrt_wait_all_device(int dev_num, bool if_arg); + void gpufortrt_wait_all_device_async(int* async_arg, int num_async, + int dev_num, bool if_arg); int gpufortrt_async_test(int wait_arg); int gpufortrt_async_test_device(int wait_arg, int dev_num); int gpufortrt_async_test_all(void); diff --git a/runtime/gpufortrt/include/openacc.h b/runtime/gpufortrt/include/openacc.h index 91b55777..152db953 100644 --- a/runtime/gpufortrt/include/openacc.h +++ b/runtime/gpufortrt/include/openacc.h @@ -71,14 +71,16 @@ int acc_async_test_all(void); int acc_async_test_all_device(int dev_num); void acc_wait(int wait_arg); -void acc_wait_device(int wait_arg, int dev_num); +void acc_wait_device(int* wait_arg, int num_wait, int dev_num, bool if_arg); void acc_wait_async(int wait_arg, int async_arg); -void acc_wait_device_async(int wait_arg, int async_arg, -int dev_num); +void acc_wait_device_async(int* wait_arg, int num_wait, + int* async_arg, int num_async, + int dev_num, bool if_arg); void acc_wait_all(void); -void acc_wait_all_device(int dev_num); +void acc_wait_all_device(int dev_num, bool if_arg); void acc_wait_all_async(int async_arg); -void acc_wait_all_device_async(int async_arg, int dev_num); +void acc_wait_all_device_async(int* async_arg, int num_async, + int dev_num, bool if_arg); int acc_get_default_async(void); void acc_set_default_async(int async_arg); diff --git a/runtime/gpufortrt/src/gpufortrt_api.cpp b/runtime/gpufortrt/src/gpufortrt_api.cpp index 982da681..424e1bb6 100644 --- a/runtime/gpufortrt/src/gpufortrt_api.cpp +++ b/runtime/gpufortrt/src/gpufortrt_api.cpp @@ -632,7 +632,38 @@ void gpufortrt_wait_all_async(int* async_arg,int num_async, } } } - + +void gpufortrt_wait_device(int* wait_arg, int num_wait, int dev_num, bool if_arg){ + const int current_device_num = gpufortrt_get_device_num(); + gpufortrt_set_device_num(dev_num); + gpufortrt_wait(wait_arg, num_wait, if_arg); + gpufortrt_set_device_num(current_device_num); +} + +void gpufortrt_wait_device_async(int* wait_arg, int num_wait, + int* async_arg, int num_async, + int dev_num, bool if_arg){ + const int current_device_num = gpufortrt_get_device_num(); + gpufortrt_set_device_num(dev_num); + gpufortrt_wait_async(wait_arg, num_wait, async_arg, num_async, if_arg); + gpufortrt_set_device_num(current_device_num); +} + +void gpufortrt_wait_all_device(int dev_num, bool if_arg){ + const int current_device_num = gpufortrt_get_device_num(); + gpufortrt_set_device_num(dev_num); + gpufortrt_wait_all(if_arg); + gpufortrt_set_device_num(current_device_num); +} + +void gpufortrt_wait_all_device_async(int* async_arg, int num_async, + int dev_num, bool if_arg){ + const int current_device_num = gpufortrt_get_device_num(); + gpufortrt_set_device_num(dev_num); + gpufortrt_wait_all_async(async_arg, num_async, if_arg); + gpufortrt_set_device_num(current_device_num); +} + int gpufortrt_async_test(int wait_arg) { gpufortrt::internal::queue_record_list.synchronize(wait_arg); } diff --git a/runtime/gpufortrt/src/openacc.cpp b/runtime/gpufortrt/src/openacc.cpp index 27d9e5a5..87b84bae 100644 --- a/runtime/gpufortrt/src/openacc.cpp +++ b/runtime/gpufortrt/src/openacc.cpp @@ -139,4 +139,23 @@ int acc_is_present(void* hostptr,std::size_t num_bytes) { return 1; else return 0; +} + +void acc_wait_device(int* wait_arg, int num_wait, int dev_num, bool if_arg){ + gpufortrt_wait_device(wait_arg, num_wait, dev_num, if_arg); +} + +void acc_wait_device_async(int* wait_arg, int num_wait, + int* async_arg, int num_async, + int dev_num, bool if_arg){ + gpufortrt_wait_device_async(wait_arg, num_wait, async_arg, num_async, dev_num, if_arg); +} + +void acc_wait_all_device(int dev_num, bool if_arg){ + gpufortrt_wait_all_device(dev_num, if_arg); +} + +void acc_wait_all_device_async(int* async_arg, int num_async, + int dev_num, bool if_arg){ + gpufortrt_wait_all_device_async(async_arg, num_async, dev_num, if_arg); } \ No newline at end of file diff --git a/runtime/gpufortrt/src/openacc.f90 b/runtime/gpufortrt/src/openacc.f90 index 4a4a2319..7df9ba3b 100644 --- a/runtime/gpufortrt/src/openacc.f90 +++ b/runtime/gpufortrt/src/openacc.f90 @@ -118,4 +118,142 @@ logical function acc_is_present_nb(data_arg) type(*), target, dimension(..), contiguous :: data_arg acc_is_present_nb = acc_is_present_b(c_loc(data_arg),size(data_arg)) end function + + subroutine acc_wait_device(wait_arg, dev_num, condition) + use iso_c_binding + implicit none + ! + integer(acc_handle_kind),dimension(..),target,intent(in),optional :: wait_arg + integer(c_int), optional :: dev_num + logical(c_bool),intent(in), optional :: condition + ! + interface + subroutine acc_wait_device_c_impl(wait_arg, num_wait_args, dev_num, condition) & + bind(c,name="acc_wait_device") + use iso_c_binding + implicit none + ! + type(c_ptr),value,intent(in) :: wait_arg + integer(c_int),value,intent(in) :: num_wait_args + integer(c_int),value,intent(in) :: dev_num + logical(c_bool),value,intent(in) :: condition + ! + end subroutine + end interface + ! + logical(c_bool) :: opt_if_arg + ! + opt_if_arg = .true._c_bool + if ( present(condition) ) opt_if_arg = logical(condition,kind=c_bool) + if ( present(wait_arg) ) then + if( present(dev_num) ) then + call acc_wait_device_c_impl(& + c_loc(wait_arg), size(wait_arg,kind=c_int), dev_num, opt_if_arg) + endif + endif + end subroutine + + subroutine acc_wait_device_async(wait_arg, async_arg, dev_num, condition) + use iso_c_binding + implicit none + ! + integer(acc_handle_kind),dimension(..),target,intent(in),optional :: wait_arg, async_arg + integer(c_int), optional :: dev_num + logical(c_bool),value,intent(in), optional :: condition + ! + interface + subroutine acc_wait_device_async_c_impl(& + wait_arg, num_wait_args, & + async_arg, num_async_args, & + dev_num, condition) & + bind(c,name="acc_wait_device_async") + use iso_c_binding + implicit none + ! + type(c_ptr),value,intent(in) :: wait_arg, async_arg + integer(c_int),value,intent(in) :: num_wait_args, num_async_args + integer(c_int),value,intent(in) :: dev_num + logical(c_bool),value,intent(in) :: condition + ! + end subroutine + end interface + ! + logical(c_bool) :: opt_if_arg + ! + opt_if_arg = .true._c_bool + if ( present(condition) ) opt_if_arg = logical(condition,kind=c_bool) + if ( present(wait_arg) ) then + if ( present(async_arg) ) then + if( present(dev_num) ) then + call acc_wait_device_async_c_impl(& + c_loc(wait_arg), size(wait_arg,kind=c_int),& + c_loc(async_arg), size(async_arg,kind=c_int), dev_num, opt_if_arg) + endif + endif + endif + end subroutine + + subroutine acc_wait_all_device(dev_num, condition) + use iso_c_binding + implicit none + ! + integer(c_int), optional :: dev_num + logical(c_bool),intent(in), optional :: condition + ! + interface + subroutine acc_wait_all_device_c_impl(dev_num, condition) & + bind(c,name="acc_wait_all_device") + use iso_c_binding + implicit none + ! + integer(c_int),value,intent(in) :: dev_num + logical(c_bool),value,intent(in) :: condition + ! + end subroutine + end interface + ! + logical(c_bool) :: opt_if_arg + ! + opt_if_arg = .true._c_bool + if ( present(condition) ) opt_if_arg = logical(condition,kind=c_bool) + if( present(dev_num) ) then + call acc_wait_all_device_c_impl(dev_num, opt_if_arg) + endif + end subroutine + + subroutine acc_wait_all_device_async(async_arg, dev_num, condition) + use iso_c_binding + implicit none + ! + integer(acc_handle_kind),dimension(..),target,intent(in),optional :: async_arg + integer(c_int), optional :: dev_num + logical(c_bool),value,intent(in), optional :: condition + ! + interface + subroutine acc_wait_all_device_async_c_impl(& + async_arg, num_async_args, & + dev_num, condition) & + bind(c,name="acc_wait_all_device_async") + use iso_c_binding + implicit none + ! + type(c_ptr),value,intent(in) :: async_arg + integer(c_int),value,intent(in) :: num_async_args + integer(c_int),value,intent(in) :: dev_num + logical(c_bool),value,intent(in) :: condition + ! + end subroutine + end interface + ! + logical(c_bool) :: opt_if_arg + ! + opt_if_arg = .true._c_bool + if ( present(condition) ) opt_if_arg = logical(condition,kind=c_bool) + if ( present(async_arg) ) then + if( present(dev_num) ) then + call acc_wait_all_device_async_c_impl(& + c_loc(async_arg), size(async_arg,kind=c_int), dev_num, opt_if_arg) + endif + endif + end subroutine end module diff --git a/runtime/gpufortrt/test/fortran/Makefile b/runtime/gpufortrt/test/fortran/Makefile index 507972d1..d4d85960 100644 --- a/runtime/gpufortrt/test/fortran/Makefile +++ b/runtime/gpufortrt/test/fortran/Makefile @@ -11,6 +11,7 @@ LDFLAGS = $(shell gpufort --print-acc-ldflags) -lgfortran # sources TEST_SRC = \ ./test_acc_is_present.f90 \ + ./test_acc_wait_device_00.f90 ./test_structured_region_00.f90 \ ./test_structured_region_01.f90 \ ./test_structured_region_02.f90 \ diff --git a/runtime/gpufortrt/test/fortran/test_acc_wait_device_00.f90 b/runtime/gpufortrt/test/fortran/test_acc_wait_device_00.f90 new file mode 100644 index 00000000..029d4b46 --- /dev/null +++ b/runtime/gpufortrt/test/fortran/test_acc_wait_device_00.f90 @@ -0,0 +1,6 @@ +program main + use openacc + implicit none + integer :: n = 0 + call acc_wait_device(n , 0) +end program \ No newline at end of file From 423d1ac1bfcb34ea7bc7f02ea221da38e80f6344 Mon Sep 17 00:00:00 2001 From: monoatamd Date: Wed, 16 Nov 2022 17:18:46 +0100 Subject: [PATCH 14/33] added more APIs --- runtime/gpufortrt/include/openacc.h | 2 + runtime/gpufortrt/src/openacc.f90 | 75 +++++++++++++++++++ runtime/gpufortrt/test/fortran/Makefile | 5 +- .../fortran/test_acc_get_device_num_00.f90 | 1 + .../fortran/test_acc_set_device_num_00.f90 | 1 + 5 files changed, 83 insertions(+), 1 deletion(-) diff --git a/runtime/gpufortrt/include/openacc.h b/runtime/gpufortrt/include/openacc.h index 152db953..f28ba687 100644 --- a/runtime/gpufortrt/include/openacc.h +++ b/runtime/gpufortrt/include/openacc.h @@ -52,7 +52,9 @@ void acc_set_device_type(acc_device_t dev_type); acc_device_t acc_get_device_type(void); void acc_set_device_num(int dev_num, acc_device_t dev_type); +void acc_set_device_num_f(int dev_num, acc_device_t dev_type); int acc_get_device_num(acc_device_t dev_type); +int acc_get_device_num_f(acc_device_t dev_type); size_t acc_get_property(int dev_num, acc_device_t dev_type, diff --git a/runtime/gpufortrt/src/openacc.f90 b/runtime/gpufortrt/src/openacc.f90 index 7df9ba3b..cef7ba3b 100644 --- a/runtime/gpufortrt/src/openacc.f90 +++ b/runtime/gpufortrt/src/openacc.f90 @@ -42,6 +42,43 @@ module openacc end interface contains + + subroutine acc_init(dev_type) + use iso_c_binding + implicit none + ! + integer(kind=acc_device_kind),value :: dev_type + interface + subroutine acc_init_c_impl(dev_type) & + bind(c,name="acc_init") + use iso_c_binding + Import::acc_device_kind + implicit none + ! + integer(kind=acc_device_kind), value, intent(in):: dev_type + end subroutine + end interface + call acc_init_c_impl(dev_type) + end subroutine + + subroutine acc_shutdown(dev_type) + use iso_c_binding + implicit none + ! + integer(kind=acc_device_kind),value :: dev_type + interface + subroutine acc_shutdown_c_impl(dev_type) & + bind(c,name="acc_shutdown") + use iso_c_binding + Import::acc_device_kind + implicit none + ! + integer(kind=acc_device_kind), value, intent(in):: dev_type + end subroutine + end interface + call acc_shutdown_c_impl(dev_type) + end subroutine + subroutine acc_set_device_type(dev_type) use iso_c_binding implicit none @@ -75,6 +112,44 @@ integer(c_int) function acc_get_device_type_c_impl() & acc_get_device_type = int(acc_get_device_type_c_impl(),kind=acc_device_kind) end function + subroutine acc_set_device_num(dev_num, dev_type) + use iso_c_binding + implicit none + ! + integer(kind=acc_device_kind),value, intent(in) :: dev_type + integer,value, intent(in) :: dev_num + interface + subroutine acc_set_device_num_c_impl(dev_num, dev_type) & + bind(c,name="acc_set_device_num_f") + use iso_c_binding + Import::acc_device_kind + implicit none + ! + integer(kind=acc_device_kind), value, intent(in):: dev_type + integer(c_int),value, intent(in) :: dev_num + end subroutine + end interface + call acc_set_device_num_c_impl(dev_num, dev_type) + end subroutine + + integer function acc_get_device_num(dev_type) + use iso_c_binding + implicit none + ! + integer(kind=acc_device_kind),value :: dev_type + interface + integer(c_int) function acc_get_device_num_c_impl(dev_type) & + bind(c,name="acc_get_device_num_f") + use iso_c_binding + Import::acc_device_kind + implicit none + ! + integer(kind=acc_device_kind),value :: dev_type + end function + end interface + acc_get_device_num = int(acc_get_device_num_c_impl(dev_type)) + end function + integer function acc_get_num_devices(dev_type) use iso_c_binding implicit none diff --git a/runtime/gpufortrt/test/fortran/Makefile b/runtime/gpufortrt/test/fortran/Makefile index d4d85960..94ccce70 100644 --- a/runtime/gpufortrt/test/fortran/Makefile +++ b/runtime/gpufortrt/test/fortran/Makefile @@ -11,7 +11,10 @@ LDFLAGS = $(shell gpufort --print-acc-ldflags) -lgfortran # sources TEST_SRC = \ ./test_acc_is_present.f90 \ - ./test_acc_wait_device_00.f90 + ./test_acc_get_device_num_00.f90 \ + ./test_acc_set_device_num_00.f90 \ + ./test_acc_init_shutdown_00.f90 \ + ./test_acc_wait_device_00.f90 \ ./test_structured_region_00.f90 \ ./test_structured_region_01.f90 \ ./test_structured_region_02.f90 \ diff --git a/runtime/gpufortrt/test/fortran/test_acc_get_device_num_00.f90 b/runtime/gpufortrt/test/fortran/test_acc_get_device_num_00.f90 index b208869b..1b04cc28 100755 --- a/runtime/gpufortrt/test/fortran/test_acc_get_device_num_00.f90 +++ b/runtime/gpufortrt/test/fortran/test_acc_get_device_num_00.f90 @@ -1,5 +1,6 @@ program main use openacc + implicit none integer(acc_device_kind) :: dev_type dev_type = acc_device_default print *, acc_get_device_num(dev_type) diff --git a/runtime/gpufortrt/test/fortran/test_acc_set_device_num_00.f90 b/runtime/gpufortrt/test/fortran/test_acc_set_device_num_00.f90 index 9cc20cb1..fb4b336b 100755 --- a/runtime/gpufortrt/test/fortran/test_acc_set_device_num_00.f90 +++ b/runtime/gpufortrt/test/fortran/test_acc_set_device_num_00.f90 @@ -1,5 +1,6 @@ program main use openacc + implicit none integer :: dev_num = 1 call acc_set_device_num(dev_num, acc_device_default) end program \ No newline at end of file From 486acd3f17747912d431fc238ef0a6c94e40e357 Mon Sep 17 00:00:00 2001 From: monoatamd Date: Thu, 17 Nov 2022 12:10:17 +0100 Subject: [PATCH 15/33] added acc_get_property --- runtime/gpufortrt/include/gpufortrt_api.h | 2 ++ runtime/gpufortrt/include/openacc.h | 20 +++++++---- runtime/gpufortrt/src/openacc.cpp | 36 ++++++++++++++----- runtime/gpufortrt/src/openacc.f90 | 28 +++++++++++++-- runtime/gpufortrt/test/fortran/Makefile | 1 + .../test/fortran/test_acc_get_property_00.f90 | 23 ++++++++++++ 6 files changed, 91 insertions(+), 19 deletions(-) create mode 100644 runtime/gpufortrt/test/fortran/test_acc_get_property_00.f90 diff --git a/runtime/gpufortrt/include/gpufortrt_api.h b/runtime/gpufortrt/include/gpufortrt_api.h index 1c22cf32..7a374033 100644 --- a/runtime/gpufortrt/include/gpufortrt_api.h +++ b/runtime/gpufortrt/include/gpufortrt_api.h @@ -18,6 +18,8 @@ extern "C" { const char* gpufortrt_get_property_string(int dev_num, gpufortrt_device_property_t property); + size_t gpufortrt_get_property_f(int dev_num, gpufortrt_device_property_t property); + const char* gpufortrt_get_property_string_f(int dev_num, gpufortrt_device_property_t property); void gpufortrt_init(); void gpufortrt_shutdown(); diff --git a/runtime/gpufortrt/include/openacc.h b/runtime/gpufortrt/include/openacc.h index f28ba687..de57be08 100644 --- a/runtime/gpufortrt/include/openacc.h +++ b/runtime/gpufortrt/include/openacc.h @@ -17,15 +17,14 @@ extern int acc_async_default; /** \note Enum values assigned according to `acc_set_device_num` description.*/ enum acc_device_t { - acc_device_default = -1, - acc_device_all = 0, - acc_device_none = 1, + acc_device_none = 0, + acc_device_default, acc_device_host, - acc_device_current, acc_device_not_host, - acc_device_hip = acc_device_not_host, - acc_device_radeon = acc_device_hip, - acc_device_nvidia = acc_device_hip + acc_device_current, + acc_device_hip, + acc_device_radeon, + acc_device_nvidia }; enum acc_device_property_t { @@ -64,6 +63,13 @@ char* acc_get_property_string(int dev_num, acc_device_t dev_type, acc_device_property_t property); +size_t acc_get_property_f(int dev_num, + acc_device_t dev_type, + acc_device_property_t property); +const +char* acc_get_property_string_f(int dev_num, + acc_device_t dev_type, + acc_device_property_t property); void acc_init(acc_device_t dev_type); void acc_shutdown(acc_device_t dev_type); diff --git a/runtime/gpufortrt/src/openacc.cpp b/runtime/gpufortrt/src/openacc.cpp index 87b84bae..a4f34af6 100644 --- a/runtime/gpufortrt/src/openacc.cpp +++ b/runtime/gpufortrt/src/openacc.cpp @@ -28,21 +28,18 @@ namespace { } } - bool check_device_type(acc_device_t dev_type,bool allow_none=true) { + acc_device_t check_device_type(acc_device_t dev_type,bool allow_none=true) { switch (dev_type) { case acc_device_default: - return ::check_device_type(::default_device); + return ::default_device; case acc_device_current: - return ::check_device_type(::current_device); + return ::current_device; case acc_device_host: return acc_device_host; case acc_device_not_host: - // According to the definition of enum acc_device_t - // the following cases are identical. So, keep one? - // case acc_device_not_host: - // case acc_device_hip: - // case acc_device_radeon: - // case acc_device_nvidia: + case acc_device_hip: + case acc_device_radeon: + case acc_device_nvidia: return acc_device_hip; case acc_device_none: if ( !allow_none ) { @@ -114,6 +111,27 @@ char* acc_get_property_string(int dev_num, } // Explicit Fortran interfaces that assume device number starts from 1 +size_t acc_get_property_f(int dev_num, + acc_device_t dev_type, + acc_device_property_t property) { + if ( ::check_device_type(dev_type) == acc_device_hip ) { + return gpufortrt_get_property_f(dev_num,check_device_property(property)); + } else { + throw std::invalid_argument("acc_get_property: only implemented for non-host device types"); + } +} + +const +char* acc_get_property_string_f(int dev_num, + acc_device_t dev_type, + acc_device_property_t property) { + if ( ::check_device_type(dev_type) == acc_device_hip ) { + return gpufortrt_get_property_string_f(dev_num,check_device_property(property)); + } else { + throw std::invalid_argument("acc_get_property_string: only implemented for non-host device types"); + } +} + void acc_set_device_num_f(int dev_num, acc_device_t dev_type) { acc_set_device_num(dev_num-1,dev_type); } diff --git a/runtime/gpufortrt/src/openacc.f90 b/runtime/gpufortrt/src/openacc.f90 index cef7ba3b..c9a84e01 100644 --- a/runtime/gpufortrt/src/openacc.f90 +++ b/runtime/gpufortrt/src/openacc.f90 @@ -16,9 +16,9 @@ module openacc enumerator :: acc_device_host enumerator :: acc_device_not_host enumerator :: acc_device_current - enumerator :: acc_device_hip = acc_device_not_host - enumerator :: acc_device_radeon = acc_device_hip - enumerator :: acc_device_nvidia = acc_device_hip + enumerator :: acc_device_hip + enumerator :: acc_device_radeon + enumerator :: acc_device_nvidia end enum integer, parameter :: acc_device_kind = kind(acc_device_none) @@ -150,6 +150,28 @@ integer(c_int) function acc_get_device_num_c_impl(dev_type) & acc_get_device_num = int(acc_get_device_num_c_impl(dev_type)) end function + integer(c_size_t) function acc_get_property(dev_num, dev_type, property) + use iso_c_binding + implicit none + ! + integer(kind=acc_device_kind),value, intent(in) :: dev_type + integer,value, intent(in) :: dev_num + integer(kind=acc_property_kind),value, intent(in) :: property + interface + integer(c_size_t) function acc_get_property_c_impl(dev_num, dev_type, property) & + bind(c,name="acc_get_property_f") + use iso_c_binding + Import::acc_device_kind, acc_property_kind + implicit none + ! + integer(kind=acc_device_kind), value, intent(in):: dev_type + integer(c_int),value, intent(in) :: dev_num + integer(kind=acc_property_kind), value, intent(in):: property + end function + end interface + acc_get_property = acc_get_property_c_impl(dev_num, dev_type, property) + end function + integer function acc_get_num_devices(dev_type) use iso_c_binding implicit none diff --git a/runtime/gpufortrt/test/fortran/Makefile b/runtime/gpufortrt/test/fortran/Makefile index 94ccce70..706ec137 100644 --- a/runtime/gpufortrt/test/fortran/Makefile +++ b/runtime/gpufortrt/test/fortran/Makefile @@ -10,6 +10,7 @@ LDFLAGS = $(shell gpufort --print-acc-ldflags) -lgfortran # sources TEST_SRC = \ + ./test_acc_get_property_00.f90 \ ./test_acc_is_present.f90 \ ./test_acc_get_device_num_00.f90 \ ./test_acc_set_device_num_00.f90 \ diff --git a/runtime/gpufortrt/test/fortran/test_acc_get_property_00.f90 b/runtime/gpufortrt/test/fortran/test_acc_get_property_00.f90 new file mode 100644 index 00000000..2eb2dd2c --- /dev/null +++ b/runtime/gpufortrt/test/fortran/test_acc_get_property_00.f90 @@ -0,0 +1,23 @@ +program main + use openacc + use iso_c_binding + implicit none + ! + integer :: dev_type = acc_device_default + integer :: dev_num + integer :: dev + integer(c_size_t) :: val + dev_num = acc_get_num_devices(dev_type) + + do dev = 0, dev_num + print *, "Device ", dev + + val = acc_get_property (dev, dev_type, acc_property_memory) + print *, " Total memory: ", val + if (val < 0) then + print *, "acc_property_memory should not be negative." + stop 1 + end if + end do +end program + \ No newline at end of file From 081b5ec0ab038b390544896b1fb5cf3a35708464 Mon Sep 17 00:00:00 2001 From: monoatamd Date: Thu, 17 Nov 2022 16:26:25 +0100 Subject: [PATCH 16/33] added wait and async APIs --- runtime/gpufortrt/include/openacc.h | 8 +- runtime/gpufortrt/src/gpufortrt_api.cpp | 9 +- runtime/gpufortrt/src/openacc.cpp | 44 +++- runtime/gpufortrt/src/openacc.f90 | 201 ++++++++++++++++++ runtime/gpufortrt/test/fortran/Makefile | 1 + .../test/fortran/test_acc_async_test_00.f90 | 23 ++ 6 files changed, 274 insertions(+), 12 deletions(-) create mode 100644 runtime/gpufortrt/test/fortran/test_acc_async_test_00.f90 diff --git a/runtime/gpufortrt/include/openacc.h b/runtime/gpufortrt/include/openacc.h index de57be08..12320641 100644 --- a/runtime/gpufortrt/include/openacc.h +++ b/runtime/gpufortrt/include/openacc.h @@ -78,15 +78,15 @@ int acc_async_test_device(int wait_arg, int dev_num); int acc_async_test_all(void); int acc_async_test_all_device(int dev_num); -void acc_wait(int wait_arg); +void acc_wait(int* wait_arg, int num_wait, bool if_arg); void acc_wait_device(int* wait_arg, int num_wait, int dev_num, bool if_arg); -void acc_wait_async(int wait_arg, int async_arg); +void acc_wait_async(int* wait_arg, int num_wait, int* async_arg, int num_async, bool if_arg); void acc_wait_device_async(int* wait_arg, int num_wait, int* async_arg, int num_async, int dev_num, bool if_arg); -void acc_wait_all(void); +void acc_wait_all(bool if_arg); void acc_wait_all_device(int dev_num, bool if_arg); -void acc_wait_all_async(int async_arg); +void acc_wait_all_async(int* async_arg, int num_async, bool if_arg); void acc_wait_all_device_async(int* async_arg, int num_async, int dev_num, bool if_arg); diff --git a/runtime/gpufortrt/src/gpufortrt_api.cpp b/runtime/gpufortrt/src/gpufortrt_api.cpp index 424e1bb6..be344efd 100644 --- a/runtime/gpufortrt/src/gpufortrt_api.cpp +++ b/runtime/gpufortrt/src/gpufortrt_api.cpp @@ -665,21 +665,24 @@ void gpufortrt_wait_all_device_async(int* async_arg, int num_async, } int gpufortrt_async_test(int wait_arg) { - gpufortrt::internal::queue_record_list.synchronize(wait_arg); + return gpufortrt::internal::queue_record_list.test(wait_arg); } int gpufortrt_async_test_device(int wait_arg, int dev_num) { const int current_device_num = gpufortrt_get_device_num(); gpufortrt_set_device_num(dev_num); - gpufortrt_async_test(wait_arg); + int result = gpufortrt_async_test(wait_arg); gpufortrt_set_device_num(current_device_num); + return result; } int gpufortrt_async_test_all() { for (size_t i = 0; i < gpufortrt::internal::queue_record_list.size(); i++) { auto& queue = gpufortrt::internal::queue_record_list[i].queue; - HIP_CHECK(hipStreamQuery(queue))// TODO backend specific, externalize + if(hipStreamQuery(queue) != hipSuccess) return 0; + // HIP_CHECK(hipStreamQuery(queue))// TODO backend specific, externalize } + return 1; } int gpufortrt_async_test_all_device(int dev_num) { diff --git a/runtime/gpufortrt/src/openacc.cpp b/runtime/gpufortrt/src/openacc.cpp index a4f34af6..b970e522 100644 --- a/runtime/gpufortrt/src/openacc.cpp +++ b/runtime/gpufortrt/src/openacc.cpp @@ -15,15 +15,15 @@ namespace { switch(property){ case acc_property_memory: return gpufortrt_property_memory; - case gpufortrt_property_free_memory: + case acc_property_free_memory: return gpufortrt_property_free_memory; - case gpufortrt_property_shared_memory_support: + case acc_property_shared_memory_support: return gpufortrt_property_shared_memory_support; - case gpufortrt_property_name: + case acc_property_name: return gpufortrt_property_name; - case gpufortrt_property_vendor: + case acc_property_vendor: return gpufortrt_property_vendor; - case gpufortrt_property_driver: + case acc_property_driver: return gpufortrt_property_driver; } } @@ -159,6 +159,24 @@ int acc_is_present(void* hostptr,std::size_t num_bytes) { return 0; } +void acc_wait(int* wait_arg, int num_wait, bool if_arg){ + gpufortrt_wait(wait_arg, num_wait, if_arg); +} + +void acc_wait_async(int* wait_arg, int num_wait, + int* async_arg, int num_async, + bool if_arg){ + gpufortrt_wait_async(wait_arg, num_wait, async_arg, num_async, if_arg); +} + +void acc_wait_all(bool if_arg){ + gpufortrt_wait_all(if_arg); +} + +void acc_wait_all_async(int* async_arg, int num_async, bool if_arg){ + gpufortrt_wait_all_async(async_arg, num_async, if_arg); +} + void acc_wait_device(int* wait_arg, int num_wait, int dev_num, bool if_arg){ gpufortrt_wait_device(wait_arg, num_wait, dev_num, if_arg); } @@ -176,4 +194,20 @@ void acc_wait_all_device(int dev_num, bool if_arg){ void acc_wait_all_device_async(int* async_arg, int num_async, int dev_num, bool if_arg){ gpufortrt_wait_all_device_async(async_arg, num_async, dev_num, if_arg); +} + +int acc_async_test(int wait_arg){ + return gpufortrt_async_test(wait_arg); +} + +int acc_async_test_device(int wait_arg, int dev_num){ + return gpufortrt_async_test_device( wait_arg, dev_num); +} + +int acc_async_test_all(void){ + return gpufortrt_async_test_all(); +} + +int acc_async_test_all_device(int dev_num){ + return gpufortrt_async_test_all_device(dev_num); } \ No newline at end of file diff --git a/runtime/gpufortrt/src/openacc.f90 b/runtime/gpufortrt/src/openacc.f90 index c9a84e01..c06bcc0a 100644 --- a/runtime/gpufortrt/src/openacc.f90 +++ b/runtime/gpufortrt/src/openacc.f90 @@ -216,6 +216,128 @@ logical function acc_is_present_nb(data_arg) acc_is_present_nb = acc_is_present_b(c_loc(data_arg),size(data_arg)) end function + subroutine acc_wait(wait_arg, condition) + use iso_c_binding + implicit none + ! + integer(acc_handle_kind),dimension(..),target,intent(in),optional :: wait_arg + logical(c_bool),intent(in), optional :: condition + ! + interface + subroutine acc_wait_c_impl(wait_arg, num_wait_args, condition) & + bind(c,name="acc_wait") + use iso_c_binding + implicit none + ! + type(c_ptr),value,intent(in) :: wait_arg + integer(c_int),value,intent(in) :: num_wait_args + logical(c_bool),value,intent(in) :: condition + ! + end subroutine + end interface + ! + logical(c_bool) :: opt_if_arg + ! + opt_if_arg = .true._c_bool + if ( present(condition) ) opt_if_arg = logical(condition,kind=c_bool) + if ( present(wait_arg) ) then + call acc_wait_c_impl(& + c_loc(wait_arg), size(wait_arg,kind=c_int), opt_if_arg) + endif + end subroutine + + subroutine acc_wait_async(wait_arg, async_arg, condition) + use iso_c_binding + implicit none + ! + integer(acc_handle_kind),dimension(..),target,intent(in),optional :: wait_arg, async_arg + logical(c_bool),value,intent(in), optional :: condition + ! + interface + subroutine acc_wait_async_c_impl(& + wait_arg, num_wait_args, & + async_arg, num_async_args, & + condition) & + bind(c,name="acc_wait_async") + use iso_c_binding + implicit none + ! + type(c_ptr),value,intent(in) :: wait_arg, async_arg + integer(c_int),value,intent(in) :: num_wait_args, num_async_args + logical(c_bool),value,intent(in) :: condition + ! + end subroutine + end interface + ! + logical(c_bool) :: opt_if_arg + ! + opt_if_arg = .true._c_bool + if ( present(condition) ) opt_if_arg = logical(condition,kind=c_bool) + if ( present(wait_arg) ) then + if ( present(async_arg) ) then + call acc_wait_async_c_impl(& + c_loc(wait_arg), size(wait_arg,kind=c_int),& + c_loc(async_arg), size(async_arg,kind=c_int), opt_if_arg) + endif + endif + end subroutine + + subroutine acc_wait_all(condition) + use iso_c_binding + implicit none + ! + logical(c_bool),intent(in), optional :: condition + ! + interface + subroutine acc_wait_all_c_impl(condition) & + bind(c,name="acc_wait_all") + use iso_c_binding + implicit none + ! + logical(c_bool),value,intent(in) :: condition + ! + end subroutine + end interface + ! + logical(c_bool) :: opt_if_arg + ! + opt_if_arg = .true._c_bool + if ( present(condition) ) opt_if_arg = logical(condition,kind=c_bool) + call acc_wait_all_c_impl(opt_if_arg) + end subroutine + + subroutine acc_wait_all_async(async_arg, condition) + use iso_c_binding + implicit none + ! + integer(acc_handle_kind),dimension(..),target,intent(in),optional :: async_arg + logical(c_bool),value,intent(in), optional :: condition + ! + interface + subroutine acc_wait_all_async_c_impl(& + async_arg, num_async_args, & + condition) & + bind(c,name="acc_wait_all_async") + use iso_c_binding + implicit none + ! + type(c_ptr),value,intent(in) :: async_arg + integer(c_int),value,intent(in) :: num_async_args + logical(c_bool),value,intent(in) :: condition + ! + end subroutine + end interface + ! + logical(c_bool) :: opt_if_arg + ! + opt_if_arg = .true._c_bool + if ( present(condition) ) opt_if_arg = logical(condition,kind=c_bool) + if ( present(async_arg) ) then + call acc_wait_all_async_c_impl(& + c_loc(async_arg), size(async_arg,kind=c_int), opt_if_arg) + endif + end subroutine + subroutine acc_wait_device(wait_arg, dev_num, condition) use iso_c_binding implicit none @@ -353,4 +475,83 @@ subroutine acc_wait_all_device_async_c_impl(& endif endif end subroutine + + logical function acc_async_test(wait_arg) + use iso_c_binding + implicit none + ! + integer(acc_handle_kind),dimension(..),target,intent(in) :: wait_arg + ! + interface + integer(c_int) function acc_async_test_c_impl(wait_arg) & + bind(c,name="acc_async_test") + use iso_c_binding + implicit none + ! + type(c_ptr),value,intent(in) :: wait_arg + ! + end function + end interface + ! + acc_async_test = acc_async_test_c_impl(c_loc(wait_arg)) > 0 + end function + + logical function acc_async_test_device(wait_arg, dev_num) + use iso_c_binding + implicit none + ! + integer(acc_handle_kind),dimension(..),target,intent(in) :: wait_arg + integer(c_int), optional :: dev_num + ! + interface + integer(c_int) function acc_async_test_device_c_impl(wait_arg, dev_num) & + bind(c,name="acc_async_test_device") + use iso_c_binding + implicit none + ! + type(c_ptr),value,intent(in) :: wait_arg + integer(c_int), optional :: dev_num + ! + end function + end interface + ! + acc_async_test_device = acc_async_test_device_c_impl(c_loc(wait_arg), dev_num) > 0 + end function + + logical function acc_async_test_all() + use iso_c_binding + implicit none + ! + interface + integer(c_int) function acc_async_test_all_c_impl() & + bind(c,name="acc_async_test_all") + use iso_c_binding + implicit none + ! + end function + end interface + ! + acc_async_test_all = acc_async_test_all_c_impl() > 0 + end function + + logical function acc_async_test_all_device(dev_num) + use iso_c_binding + implicit none + ! + integer(c_int), value, intent(in) :: dev_num + ! + interface + integer(c_int) function acc_async_test_all_device_c_impl(dev_num) & + bind(c,name="acc_async_test_all_device") + use iso_c_binding + implicit none + ! + integer(c_int), value, intent(in) :: dev_num + ! + end function + end interface + ! + acc_async_test_all_device = acc_async_test_all_device_c_impl(dev_num) > 0 + end function + end module diff --git a/runtime/gpufortrt/test/fortran/Makefile b/runtime/gpufortrt/test/fortran/Makefile index 706ec137..b8d247bb 100644 --- a/runtime/gpufortrt/test/fortran/Makefile +++ b/runtime/gpufortrt/test/fortran/Makefile @@ -10,6 +10,7 @@ LDFLAGS = $(shell gpufort --print-acc-ldflags) -lgfortran # sources TEST_SRC = \ + ./test_acc_async_test_00.f90 \ ./test_acc_get_property_00.f90 \ ./test_acc_is_present.f90 \ ./test_acc_get_device_num_00.f90 \ diff --git a/runtime/gpufortrt/test/fortran/test_acc_async_test_00.f90 b/runtime/gpufortrt/test/fortran/test_acc_async_test_00.f90 new file mode 100644 index 00000000..9d130946 --- /dev/null +++ b/runtime/gpufortrt/test/fortran/test_acc_async_test_00.f90 @@ -0,0 +1,23 @@ +program main + ! begin of program + use openacc + implicit none + integer, parameter :: N = 1000 + integer(4) :: x(N), y(N) + logical:: xPresent = .FALSE., yPresent = .FALSE. + call acc_init (acc_device_default) + + !$ACC DATA COPY(X(1:N)) + xPresent = acc_is_present(x,N) + yPresent = acc_is_present(y,N) + if ( xPresent .AND. .not. yPresent) then + print *, "FINE!" + else + ERROR STOP "Arrays is not present" + end if + + !$acc end data + if (.NOT. acc_async_test (n) ) print *, "not sync!" + call acc_shutdown (acc_device_host) + end program + From e92324d88589a480ee378f2cc23d8d17a1a64a00 Mon Sep 17 00:00:00 2001 From: monoatamd Date: Fri, 18 Nov 2022 11:28:55 +0100 Subject: [PATCH 17/33] making APIs look identical to acc --- runtime/gpufortrt/include/openacc.h | 19 ++-- runtime/gpufortrt/src/openacc.cpp | 37 ++++---- runtime/gpufortrt/src/openacc.f90 | 130 ++++++---------------------- 3 files changed, 52 insertions(+), 134 deletions(-) diff --git a/runtime/gpufortrt/include/openacc.h b/runtime/gpufortrt/include/openacc.h index 12320641..9326cda4 100644 --- a/runtime/gpufortrt/include/openacc.h +++ b/runtime/gpufortrt/include/openacc.h @@ -78,17 +78,14 @@ int acc_async_test_device(int wait_arg, int dev_num); int acc_async_test_all(void); int acc_async_test_all_device(int dev_num); -void acc_wait(int* wait_arg, int num_wait, bool if_arg); -void acc_wait_device(int* wait_arg, int num_wait, int dev_num, bool if_arg); -void acc_wait_async(int* wait_arg, int num_wait, int* async_arg, int num_async, bool if_arg); -void acc_wait_device_async(int* wait_arg, int num_wait, - int* async_arg, int num_async, - int dev_num, bool if_arg); -void acc_wait_all(bool if_arg); -void acc_wait_all_device(int dev_num, bool if_arg); -void acc_wait_all_async(int* async_arg, int num_async, bool if_arg); -void acc_wait_all_device_async(int* async_arg, int num_async, - int dev_num, bool if_arg); +void acc_wait(int wait_arg); +void acc_wait_device(int wait_arg, int dev_num); +void acc_wait_async(int wait_arg, int async_arg); +void acc_wait_device_async(int wait_arg, int async_arg, int dev_num); +void acc_wait_all(); +void acc_wait_all_device(int dev_num); +void acc_wait_all_async(int async_arg); +void acc_wait_all_device_async(int async_arg, int dev_num); int acc_get_default_async(void); void acc_set_default_async(int async_arg); diff --git a/runtime/gpufortrt/src/openacc.cpp b/runtime/gpufortrt/src/openacc.cpp index b970e522..2bded367 100644 --- a/runtime/gpufortrt/src/openacc.cpp +++ b/runtime/gpufortrt/src/openacc.cpp @@ -159,41 +159,36 @@ int acc_is_present(void* hostptr,std::size_t num_bytes) { return 0; } -void acc_wait(int* wait_arg, int num_wait, bool if_arg){ - gpufortrt_wait(wait_arg, num_wait, if_arg); +void acc_wait(int wait_arg){ + gpufortrt_wait(&wait_arg, 1, true); } -void acc_wait_async(int* wait_arg, int num_wait, - int* async_arg, int num_async, - bool if_arg){ - gpufortrt_wait_async(wait_arg, num_wait, async_arg, num_async, if_arg); +void acc_wait_async(int wait_arg, int async_arg){ + gpufortrt_wait_async(&wait_arg, 1, &async_arg, 1, true); } -void acc_wait_all(bool if_arg){ - gpufortrt_wait_all(if_arg); +void acc_wait_all(){ + gpufortrt_wait_all(true); } -void acc_wait_all_async(int* async_arg, int num_async, bool if_arg){ - gpufortrt_wait_all_async(async_arg, num_async, if_arg); +void acc_wait_all_async(int async_arg){ + gpufortrt_wait_all_async(&async_arg, 1, true); } -void acc_wait_device(int* wait_arg, int num_wait, int dev_num, bool if_arg){ - gpufortrt_wait_device(wait_arg, num_wait, dev_num, if_arg); +void acc_wait_device(int wait_arg, int dev_num){ + gpufortrt_wait_device(&wait_arg, 1, dev_num, true); } -void acc_wait_device_async(int* wait_arg, int num_wait, - int* async_arg, int num_async, - int dev_num, bool if_arg){ - gpufortrt_wait_device_async(wait_arg, num_wait, async_arg, num_async, dev_num, if_arg); +void acc_wait_device_async(int wait_arg, int async_arg, int dev_num){ + gpufortrt_wait_device_async(&wait_arg, 1, &async_arg, 1, dev_num, true); } -void acc_wait_all_device(int dev_num, bool if_arg){ - gpufortrt_wait_all_device(dev_num, if_arg); +void acc_wait_all_device(int dev_num){ + gpufortrt_wait_all_device(dev_num, true); } -void acc_wait_all_device_async(int* async_arg, int num_async, - int dev_num, bool if_arg){ - gpufortrt_wait_all_device_async(async_arg, num_async, dev_num, if_arg); +void acc_wait_all_device_async(int async_arg, int dev_num){ + gpufortrt_wait_all_device_async(&async_arg, 1, dev_num, true); } int acc_async_test(int wait_arg){ diff --git a/runtime/gpufortrt/src/openacc.f90 b/runtime/gpufortrt/src/openacc.f90 index c06bcc0a..f24d3264 100644 --- a/runtime/gpufortrt/src/openacc.f90 +++ b/runtime/gpufortrt/src/openacc.f90 @@ -216,262 +216,188 @@ logical function acc_is_present_nb(data_arg) acc_is_present_nb = acc_is_present_b(c_loc(data_arg),size(data_arg)) end function - subroutine acc_wait(wait_arg, condition) + subroutine acc_wait(wait_arg) use iso_c_binding implicit none ! integer(acc_handle_kind),dimension(..),target,intent(in),optional :: wait_arg - logical(c_bool),intent(in), optional :: condition ! interface - subroutine acc_wait_c_impl(wait_arg, num_wait_args, condition) & + subroutine acc_wait_c_impl(wait_arg) & bind(c,name="acc_wait") use iso_c_binding implicit none ! type(c_ptr),value,intent(in) :: wait_arg - integer(c_int),value,intent(in) :: num_wait_args - logical(c_bool),value,intent(in) :: condition ! end subroutine end interface ! - logical(c_bool) :: opt_if_arg - ! - opt_if_arg = .true._c_bool - if ( present(condition) ) opt_if_arg = logical(condition,kind=c_bool) if ( present(wait_arg) ) then - call acc_wait_c_impl(& - c_loc(wait_arg), size(wait_arg,kind=c_int), opt_if_arg) + call acc_wait_c_impl(c_loc(wait_arg)) endif end subroutine - subroutine acc_wait_async(wait_arg, async_arg, condition) + subroutine acc_wait_async(wait_arg, async_arg) use iso_c_binding implicit none ! integer(acc_handle_kind),dimension(..),target,intent(in),optional :: wait_arg, async_arg - logical(c_bool),value,intent(in), optional :: condition ! interface - subroutine acc_wait_async_c_impl(& - wait_arg, num_wait_args, & - async_arg, num_async_args, & - condition) & + subroutine acc_wait_async_c_impl(wait_arg, async_arg) & bind(c,name="acc_wait_async") use iso_c_binding implicit none ! type(c_ptr),value,intent(in) :: wait_arg, async_arg - integer(c_int),value,intent(in) :: num_wait_args, num_async_args - logical(c_bool),value,intent(in) :: condition ! end subroutine end interface ! - logical(c_bool) :: opt_if_arg - ! - opt_if_arg = .true._c_bool - if ( present(condition) ) opt_if_arg = logical(condition,kind=c_bool) if ( present(wait_arg) ) then if ( present(async_arg) ) then - call acc_wait_async_c_impl(& - c_loc(wait_arg), size(wait_arg,kind=c_int),& - c_loc(async_arg), size(async_arg,kind=c_int), opt_if_arg) + call acc_wait_async_c_impl(c_loc(wait_arg), c_loc(async_arg)) endif endif end subroutine - subroutine acc_wait_all(condition) + subroutine acc_wait_all() use iso_c_binding implicit none ! - logical(c_bool),intent(in), optional :: condition - ! interface - subroutine acc_wait_all_c_impl(condition) & + subroutine acc_wait_all_c_impl() & bind(c,name="acc_wait_all") use iso_c_binding implicit none ! - logical(c_bool),value,intent(in) :: condition - ! end subroutine end interface ! - logical(c_bool) :: opt_if_arg - ! - opt_if_arg = .true._c_bool - if ( present(condition) ) opt_if_arg = logical(condition,kind=c_bool) - call acc_wait_all_c_impl(opt_if_arg) + call acc_wait_all_c_impl() end subroutine - subroutine acc_wait_all_async(async_arg, condition) + subroutine acc_wait_all_async(async_arg) use iso_c_binding implicit none ! integer(acc_handle_kind),dimension(..),target,intent(in),optional :: async_arg - logical(c_bool),value,intent(in), optional :: condition ! interface - subroutine acc_wait_all_async_c_impl(& - async_arg, num_async_args, & - condition) & + subroutine acc_wait_all_async_c_impl(async_arg) & bind(c,name="acc_wait_all_async") use iso_c_binding implicit none ! type(c_ptr),value,intent(in) :: async_arg - integer(c_int),value,intent(in) :: num_async_args - logical(c_bool),value,intent(in) :: condition ! end subroutine end interface ! - logical(c_bool) :: opt_if_arg - ! - opt_if_arg = .true._c_bool - if ( present(condition) ) opt_if_arg = logical(condition,kind=c_bool) - if ( present(async_arg) ) then - call acc_wait_all_async_c_impl(& - c_loc(async_arg), size(async_arg,kind=c_int), opt_if_arg) - endif + if ( present(async_arg) ) then + call acc_wait_all_async_c_impl(c_loc(async_arg)) + endif end subroutine - subroutine acc_wait_device(wait_arg, dev_num, condition) + subroutine acc_wait_device(wait_arg, dev_num) use iso_c_binding implicit none ! integer(acc_handle_kind),dimension(..),target,intent(in),optional :: wait_arg integer(c_int), optional :: dev_num - logical(c_bool),intent(in), optional :: condition ! interface - subroutine acc_wait_device_c_impl(wait_arg, num_wait_args, dev_num, condition) & + subroutine acc_wait_device_c_impl(wait_arg, dev_num) & bind(c,name="acc_wait_device") use iso_c_binding implicit none ! type(c_ptr),value,intent(in) :: wait_arg - integer(c_int),value,intent(in) :: num_wait_args integer(c_int),value,intent(in) :: dev_num - logical(c_bool),value,intent(in) :: condition ! end subroutine end interface ! - logical(c_bool) :: opt_if_arg - ! - opt_if_arg = .true._c_bool - if ( present(condition) ) opt_if_arg = logical(condition,kind=c_bool) if ( present(wait_arg) ) then if( present(dev_num) ) then - call acc_wait_device_c_impl(& - c_loc(wait_arg), size(wait_arg,kind=c_int), dev_num, opt_if_arg) + call acc_wait_device_c_impl(c_loc(wait_arg), dev_num) endif endif end subroutine - subroutine acc_wait_device_async(wait_arg, async_arg, dev_num, condition) + subroutine acc_wait_device_async(wait_arg, async_arg, dev_num) use iso_c_binding implicit none ! integer(acc_handle_kind),dimension(..),target,intent(in),optional :: wait_arg, async_arg integer(c_int), optional :: dev_num - logical(c_bool),value,intent(in), optional :: condition ! interface - subroutine acc_wait_device_async_c_impl(& - wait_arg, num_wait_args, & - async_arg, num_async_args, & - dev_num, condition) & + subroutine acc_wait_device_async_c_impl(wait_arg, async_arg, dev_num) & bind(c,name="acc_wait_device_async") use iso_c_binding implicit none ! type(c_ptr),value,intent(in) :: wait_arg, async_arg - integer(c_int),value,intent(in) :: num_wait_args, num_async_args integer(c_int),value,intent(in) :: dev_num - logical(c_bool),value,intent(in) :: condition ! end subroutine end interface ! - logical(c_bool) :: opt_if_arg - ! - opt_if_arg = .true._c_bool - if ( present(condition) ) opt_if_arg = logical(condition,kind=c_bool) if ( present(wait_arg) ) then if ( present(async_arg) ) then if( present(dev_num) ) then - call acc_wait_device_async_c_impl(& - c_loc(wait_arg), size(wait_arg,kind=c_int),& - c_loc(async_arg), size(async_arg,kind=c_int), dev_num, opt_if_arg) + call acc_wait_device_async_c_impl(c_loc(wait_arg), c_loc(async_arg), dev_num) endif endif endif end subroutine - subroutine acc_wait_all_device(dev_num, condition) + subroutine acc_wait_all_device(dev_num) use iso_c_binding implicit none ! integer(c_int), optional :: dev_num - logical(c_bool),intent(in), optional :: condition ! interface - subroutine acc_wait_all_device_c_impl(dev_num, condition) & + subroutine acc_wait_all_device_c_impl(dev_num) & bind(c,name="acc_wait_all_device") use iso_c_binding implicit none ! integer(c_int),value,intent(in) :: dev_num - logical(c_bool),value,intent(in) :: condition ! end subroutine end interface ! - logical(c_bool) :: opt_if_arg - ! - opt_if_arg = .true._c_bool - if ( present(condition) ) opt_if_arg = logical(condition,kind=c_bool) - if( present(dev_num) ) then - call acc_wait_all_device_c_impl(dev_num, opt_if_arg) - endif + if( present(dev_num) ) then + call acc_wait_all_device_c_impl(dev_num) + endif end subroutine - subroutine acc_wait_all_device_async(async_arg, dev_num, condition) + subroutine acc_wait_all_device_async(async_arg, dev_num) use iso_c_binding implicit none ! integer(acc_handle_kind),dimension(..),target,intent(in),optional :: async_arg integer(c_int), optional :: dev_num - logical(c_bool),value,intent(in), optional :: condition ! interface - subroutine acc_wait_all_device_async_c_impl(& - async_arg, num_async_args, & - dev_num, condition) & + subroutine acc_wait_all_device_async_c_impl(async_arg, dev_num) & bind(c,name="acc_wait_all_device_async") use iso_c_binding implicit none ! type(c_ptr),value,intent(in) :: async_arg - integer(c_int),value,intent(in) :: num_async_args integer(c_int),value,intent(in) :: dev_num - logical(c_bool),value,intent(in) :: condition ! end subroutine end interface ! - logical(c_bool) :: opt_if_arg - ! - opt_if_arg = .true._c_bool - if ( present(condition) ) opt_if_arg = logical(condition,kind=c_bool) if ( present(async_arg) ) then if( present(dev_num) ) then - call acc_wait_all_device_async_c_impl(& - c_loc(async_arg), size(async_arg,kind=c_int), dev_num, opt_if_arg) + call acc_wait_all_device_async_c_impl(c_loc(async_arg), dev_num) endif endif end subroutine From 750bda9268e4f0bccfcb723bdfbb060c9b5c0766 Mon Sep 17 00:00:00 2001 From: monoatamd Date: Fri, 18 Nov 2022 17:54:05 +0100 Subject: [PATCH 18/33] added copyin and copyout --- runtime/gpufortrt/src/openacc.cpp | 24 +++ runtime/gpufortrt/src/openacc.f90 | 196 ++++++++++++++++++ runtime/gpufortrt/test/fortran/Makefile | 2 + .../test/fortran/test_acc_copyin_00.f90 | 25 +++ .../test/fortran/test_acc_copyout_00.f90 | 44 ++++ 5 files changed, 291 insertions(+) create mode 100644 runtime/gpufortrt/test/fortran/test_acc_copyin_00.f90 create mode 100644 runtime/gpufortrt/test/fortran/test_acc_copyout_00.f90 diff --git a/runtime/gpufortrt/src/openacc.cpp b/runtime/gpufortrt/src/openacc.cpp index 2bded367..0aa24297 100644 --- a/runtime/gpufortrt/src/openacc.cpp +++ b/runtime/gpufortrt/src/openacc.cpp @@ -205,4 +205,28 @@ int acc_async_test_all(void){ int acc_async_test_all_device(int dev_num){ return gpufortrt_async_test_all_device(dev_num); +} + +d_void* acc_copyin(h_void* data_arg, size_t bytes){ + return gpufortrt_copyin(data_arg, bytes, true); +} + +void acc_copyin_async(h_void* data_arg, size_t bytes, + int async_arg){ + gpufortrt_copyin_async(data_arg, bytes, async_arg, false); +} + +void acc_copyout(h_void* data_arg, size_t bytes){ + gpufortrt_copyout(data_arg, bytes); +} +void acc_copyout_async(h_void* data_arg, size_t bytes, + int async_arg){ + gpufortrt_copyout_async(data_arg, bytes, async_arg); +} +void acc_copyout_finalize(h_void* data_arg, size_t bytes){ + gpufortrt_copyout_finalize(data_arg, bytes); +} +void acc_copyout_finalize_async(h_void* data_arg, size_t bytes, + int async_arg){ + gpufortrt_copyout_finalize_async( data_arg, bytes, async_arg); } \ No newline at end of file diff --git a/runtime/gpufortrt/src/openacc.f90 b/runtime/gpufortrt/src/openacc.f90 index f24d3264..e2752e8d 100644 --- a/runtime/gpufortrt/src/openacc.f90 +++ b/runtime/gpufortrt/src/openacc.f90 @@ -41,6 +41,31 @@ module openacc module procedure :: acc_is_present_b end interface + interface acc_copyin + module procedure :: acc_copyin_nb + module procedure :: acc_copyin_b + end interface + interface acc_copyin_async + module procedure :: acc_copyin_async_nb + module procedure :: acc_copyin_async_b + end interface + + interface acc_copyout + module procedure :: acc_copyout_nb + module procedure :: acc_copyout_b + end interface + interface acc_copyout_async + module procedure :: acc_copyout_async_nb + module procedure :: acc_copyout_async_b + end interface + interface acc_copyout_finalize + module procedure :: acc_copyout_finalize_nb + module procedure :: acc_copyout_finalize_b + end interface + interface acc_copyout_finalize_async + module procedure :: acc_copyout_finalize_async_nb + module procedure :: acc_copyout_finalize_async_b + end interface contains subroutine acc_init(dev_type) @@ -480,4 +505,175 @@ integer(c_int) function acc_async_test_all_device_c_impl(dev_num) & acc_async_test_all_device = acc_async_test_all_device_c_impl(dev_num) > 0 end function + subroutine acc_copyin_b(data_arg, bytes) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer,value,intent(in) :: bytes + interface + subroutine acc_copyin_b_c_impl(data_arg,bytes) & + bind(c,name="acc_copyin") + use iso_c_binding + implicit none + ! + type(c_ptr), value::data_arg + integer(c_size_t), value :: bytes + end subroutine + end interface + call acc_copyin_b_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t)) + end subroutine + + subroutine acc_copyin_nb(data_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + call acc_copyin_b(data_arg, size(data_arg)) + end subroutine + + subroutine acc_copyin_async_b(data_arg, bytes, async_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer(c_int),value,intent(in) :: bytes + integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg + interface + subroutine acc_copyin_async_b_c_impl(data_arg,bytes, async_arg) & + bind(c,name="acc_copyin_async") + use iso_c_binding + implicit none + ! + type(c_ptr), value::data_arg + integer(c_size_t), value :: bytes + type(c_ptr),value,intent(in) :: async_arg + end subroutine + end interface + call acc_copyin_async_b_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t), c_loc(async_arg)) + end subroutine + + subroutine acc_copyin_async_nb(data_arg, async_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg + call acc_copyin_async_b(data_arg,size(data_arg), async_arg) + end subroutine + + subroutine acc_copyout_b(data_arg, bytes) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer,value,intent(in) :: bytes + interface + subroutine acc_copyout_b_c_impl(data_arg,bytes) & + bind(c,name="acc_copyout") + use iso_c_binding + implicit none + ! + type(c_ptr), value::data_arg + integer(c_size_t), value :: bytes + end subroutine + end interface + call acc_copyout_b_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t)) + end subroutine + + subroutine acc_copyout_nb(data_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + call acc_copyout_b(data_arg, size(data_arg)) + end subroutine + + subroutine acc_copyout_async_b(data_arg, bytes, async_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer(c_int),value,intent(in) :: bytes + integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg + interface + subroutine acc_copyout_async_b_c_impl(data_arg,bytes, async_arg) & + bind(c,name="acc_copyout_async") + use iso_c_binding + implicit none + ! + type(c_ptr), value::data_arg + integer(c_size_t), value :: bytes + type(c_ptr),value,intent(in) :: async_arg + end subroutine + end interface + call acc_copyout_async_b_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t), c_loc(async_arg)) + end subroutine + + subroutine acc_copyout_async_nb(data_arg, async_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg + call acc_copyout_async_b(data_arg,size(data_arg), async_arg) + end subroutine + + subroutine acc_copyout_finalize_b(data_arg, bytes) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer,value,intent(in) :: bytes + interface + subroutine acc_copyout_finalize_b_c_impl(data_arg,bytes) & + bind(c,name="acc_copyout_finalize") + use iso_c_binding + implicit none + ! + type(c_ptr), value::data_arg + integer(c_size_t), value :: bytes + end subroutine + end interface + call acc_copyout_finalize_b_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t)) + end subroutine + + subroutine acc_copyout_finalize_nb(data_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + call acc_copyout_finalize_b(data_arg, size(data_arg)) + end subroutine + + subroutine acc_copyout_finalize_async_b(data_arg, bytes, async_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer(c_int),value,intent(in) :: bytes + integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg + interface + subroutine acc_copyout_finalize_async_b_c_impl(data_arg,bytes, async_arg) & + bind(c,name="acc_copyout_finalize_async") + use iso_c_binding + implicit none + ! + type(c_ptr), value::data_arg + integer(c_size_t), value :: bytes + type(c_ptr),value,intent(in) :: async_arg + end subroutine + end interface + call acc_copyout_finalize_async_b_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t), c_loc(async_arg)) + end subroutine + + subroutine acc_copyout_finalize_async_nb(data_arg, async_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg + call acc_copyout_finalize_async_b(data_arg,size(data_arg), async_arg) + end subroutine + end module diff --git a/runtime/gpufortrt/test/fortran/Makefile b/runtime/gpufortrt/test/fortran/Makefile index b8d247bb..1c32c979 100644 --- a/runtime/gpufortrt/test/fortran/Makefile +++ b/runtime/gpufortrt/test/fortran/Makefile @@ -10,6 +10,8 @@ LDFLAGS = $(shell gpufort --print-acc-ldflags) -lgfortran # sources TEST_SRC = \ + ./test_acc_copyout_00.f90 \ + ./test_acc_copyin_00.f90 \ ./test_acc_async_test_00.f90 \ ./test_acc_get_property_00.f90 \ ./test_acc_is_present.f90 \ diff --git a/runtime/gpufortrt/test/fortran/test_acc_copyin_00.f90 b/runtime/gpufortrt/test/fortran/test_acc_copyin_00.f90 new file mode 100644 index 00000000..d11ebecb --- /dev/null +++ b/runtime/gpufortrt/test/fortran/test_acc_copyin_00.f90 @@ -0,0 +1,25 @@ +program main + ! begin of program + use openacc + implicit none + integer, parameter :: N = 100 + integer :: i + integer :: x(N), y(N) + logical:: xPresent = .FALSE., yPresent = .FALSE. + + call acc_init(acc_device_default) + do i = 1, N + y(i) = 3 + x(i) = 2 + end do + call acc_copyin(x, N) + xPresent = acc_is_present(x,N) + yPresent = acc_is_present(y,N) + if ( xPresent .AND. .not. yPresent) then + print *, "FINE!" + else + ERROR STOP "Arrays is not present" + end if + call acc_shutdown(acc_device_default) + end program + \ No newline at end of file diff --git a/runtime/gpufortrt/test/fortran/test_acc_copyout_00.f90 b/runtime/gpufortrt/test/fortran/test_acc_copyout_00.f90 new file mode 100644 index 00000000..10cf4419 --- /dev/null +++ b/runtime/gpufortrt/test/fortran/test_acc_copyout_00.f90 @@ -0,0 +1,44 @@ +program main + ! begin of program + use openacc + implicit none + integer, parameter :: N = 100 + integer :: i + integer(4) :: x(N), y(N), y_exact(N) + logical:: xPresent = .FALSE., yPresent = .FALSE. + + do i = 1, N + y_exact(i) = 3 + end do + + call acc_copyin(x, N) + call acc_copyin(y, N) + + xPresent = acc_is_present(x,N) + yPresent = acc_is_present(y,N) + + if ( .not. xPresent .OR. .not. yPresent ) ERROR STOP "Arrays are not present" + + !$acc parallel loop + ! + do i = 1, N + x(i) = 1 + y(i) = 2 + end do + + !$acc parallel loop + do i = 1, N + y(i) = x(i) + y(i) + end do + + call acc_copyout(y,N) + + do i = 1, N + if ( y_exact(i) .ne.& + y(i) ) ERROR STOP "GPU and CPU result do not match" + end do + + print *, "PASSED" + + end program + From 0797f5f7abe5824d96e5b655279bb8aba7a606bd Mon Sep 17 00:00:00 2001 From: monoatamd Date: Mon, 21 Nov 2022 13:46:08 +0100 Subject: [PATCH 19/33] Used sizeof instead of size to get num of bytes --- runtime/gpufortrt/rules.mk | 2 +- runtime/gpufortrt/src/openacc.f90 | 22 +++++----- runtime/gpufortrt/test/fortran/Makefile | 5 ++- .../test/fortran/test_acc_copyinout_00.f90 | 38 ++++++++++++++++ .../test/fortran/test_acc_copyinout_01.f90 | 38 ++++++++++++++++ .../test/fortran/test_acc_copyout_00.f90 | 44 ------------------- 6 files changed, 91 insertions(+), 58 deletions(-) create mode 100644 runtime/gpufortrt/test/fortran/test_acc_copyinout_00.f90 create mode 100644 runtime/gpufortrt/test/fortran/test_acc_copyinout_01.f90 delete mode 100644 runtime/gpufortrt/test/fortran/test_acc_copyout_00.f90 diff --git a/runtime/gpufortrt/rules.mk b/runtime/gpufortrt/rules.mk index 096b7406..26150fe6 100644 --- a/runtime/gpufortrt/rules.mk +++ b/runtime/gpufortrt/rules.mk @@ -2,7 +2,7 @@ HIP_PLATFORM ?= amd LIBGPUFORTRT = libgpufortrt_$(HIP_PLATFORM).a FC = gfortran -fmax-errors=5 -FCFLAGS ?= -std=f2018 -ffree-line-length-none -cpp +FCFLAGS ?= -ffree-line-length-none -cpp #FCFLAGS += -g -ggdb -O0 -fbacktrace -fmax-errors=5 # -DDEBUG=3 diff --git a/runtime/gpufortrt/src/openacc.f90 b/runtime/gpufortrt/src/openacc.f90 index e2752e8d..b49d7317 100644 --- a/runtime/gpufortrt/src/openacc.f90 +++ b/runtime/gpufortrt/src/openacc.f90 @@ -219,7 +219,7 @@ logical function acc_is_present_b(data_arg, bytes) implicit none ! type(*), target, dimension(..)::data_arg - integer(c_int),value,intent(in) :: bytes + integer,value,intent(in) :: bytes interface integer(c_int) function acc_is_present_c_impl(data_arg,bytes) & bind(c,name="acc_is_present") @@ -238,7 +238,7 @@ logical function acc_is_present_nb(data_arg) implicit none ! type(*), target, dimension(..), contiguous :: data_arg - acc_is_present_nb = acc_is_present_b(c_loc(data_arg),size(data_arg)) + acc_is_present_nb = acc_is_present_b(c_loc(data_arg),int(sizeof(data_arg))) end function subroutine acc_wait(wait_arg) @@ -529,7 +529,7 @@ subroutine acc_copyin_nb(data_arg) implicit none ! type(*), target, dimension(..)::data_arg - call acc_copyin_b(data_arg, size(data_arg)) + call acc_copyin_b(data_arg, int(sizeof(data_arg))) end subroutine subroutine acc_copyin_async_b(data_arg, bytes, async_arg) @@ -537,7 +537,7 @@ subroutine acc_copyin_async_b(data_arg, bytes, async_arg) implicit none ! type(*), target, dimension(..)::data_arg - integer(c_int),value,intent(in) :: bytes + integer,value,intent(in) :: bytes integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg interface subroutine acc_copyin_async_b_c_impl(data_arg,bytes, async_arg) & @@ -559,7 +559,7 @@ subroutine acc_copyin_async_nb(data_arg, async_arg) ! type(*), target, dimension(..)::data_arg integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg - call acc_copyin_async_b(data_arg,size(data_arg), async_arg) + call acc_copyin_async_b(data_arg,int(sizeof(data_arg)), async_arg) end subroutine subroutine acc_copyout_b(data_arg, bytes) @@ -586,7 +586,7 @@ subroutine acc_copyout_nb(data_arg) implicit none ! type(*), target, dimension(..)::data_arg - call acc_copyout_b(data_arg, size(data_arg)) + call acc_copyout_b(data_arg, int(sizeof(data_arg))) end subroutine subroutine acc_copyout_async_b(data_arg, bytes, async_arg) @@ -594,7 +594,7 @@ subroutine acc_copyout_async_b(data_arg, bytes, async_arg) implicit none ! type(*), target, dimension(..)::data_arg - integer(c_int),value,intent(in) :: bytes + integer,value,intent(in) :: bytes integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg interface subroutine acc_copyout_async_b_c_impl(data_arg,bytes, async_arg) & @@ -616,7 +616,7 @@ subroutine acc_copyout_async_nb(data_arg, async_arg) ! type(*), target, dimension(..)::data_arg integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg - call acc_copyout_async_b(data_arg,size(data_arg), async_arg) + call acc_copyout_async_b(data_arg,int(sizeof(data_arg)), async_arg) end subroutine subroutine acc_copyout_finalize_b(data_arg, bytes) @@ -643,7 +643,7 @@ subroutine acc_copyout_finalize_nb(data_arg) implicit none ! type(*), target, dimension(..)::data_arg - call acc_copyout_finalize_b(data_arg, size(data_arg)) + call acc_copyout_finalize_b(data_arg, int(sizeof(data_arg))) end subroutine subroutine acc_copyout_finalize_async_b(data_arg, bytes, async_arg) @@ -651,7 +651,7 @@ subroutine acc_copyout_finalize_async_b(data_arg, bytes, async_arg) implicit none ! type(*), target, dimension(..)::data_arg - integer(c_int),value,intent(in) :: bytes + integer,value,intent(in) :: bytes integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg interface subroutine acc_copyout_finalize_async_b_c_impl(data_arg,bytes, async_arg) & @@ -673,7 +673,7 @@ subroutine acc_copyout_finalize_async_nb(data_arg, async_arg) ! type(*), target, dimension(..)::data_arg integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg - call acc_copyout_finalize_async_b(data_arg,size(data_arg), async_arg) + call acc_copyout_finalize_async_b(data_arg,int(sizeof(data_arg)), async_arg) end subroutine end module diff --git a/runtime/gpufortrt/test/fortran/Makefile b/runtime/gpufortrt/test/fortran/Makefile index 1c32c979..63cbd990 100644 --- a/runtime/gpufortrt/test/fortran/Makefile +++ b/runtime/gpufortrt/test/fortran/Makefile @@ -10,8 +10,9 @@ LDFLAGS = $(shell gpufort --print-acc-ldflags) -lgfortran # sources TEST_SRC = \ - ./test_acc_copyout_00.f90 \ - ./test_acc_copyin_00.f90 \ + ./test_acc_copyinout_00.f90 \ + ./test_acc_copyinout_01.f90 \ + ./test_acc_copyin_00.f90 \ ./test_acc_async_test_00.f90 \ ./test_acc_get_property_00.f90 \ ./test_acc_is_present.f90 \ diff --git a/runtime/gpufortrt/test/fortran/test_acc_copyinout_00.f90 b/runtime/gpufortrt/test/fortran/test_acc_copyinout_00.f90 new file mode 100644 index 00000000..10711b89 --- /dev/null +++ b/runtime/gpufortrt/test/fortran/test_acc_copyinout_00.f90 @@ -0,0 +1,38 @@ +program main + ! begin of program + use openacc + implicit none + integer, parameter :: N = 1000 + integer :: i + integer(4) :: x(N), y(N), y_exact(N) + + do i = 1, N + y_exact(i) = 3 + end do + + call acc_copyin(x,N*4) + call acc_copyin(y,N*4) + + !$acc parallel loop present(x,y) + ! + do i = 1, N + x(i) = 1 + y(i) = 2 + end do + + !$acc parallel loop + do i = 1, N + y(i) = x(i) + y(i) + end do + + call acc_copyout(y,N*4) + + do i = 1, N + if ( y_exact(i) .ne.& + y(i) ) ERROR STOP "GPU and CPU result do not match" + end do + + print *, "PASSED" + + end program + \ No newline at end of file diff --git a/runtime/gpufortrt/test/fortran/test_acc_copyinout_01.f90 b/runtime/gpufortrt/test/fortran/test_acc_copyinout_01.f90 new file mode 100644 index 00000000..68c511c4 --- /dev/null +++ b/runtime/gpufortrt/test/fortran/test_acc_copyinout_01.f90 @@ -0,0 +1,38 @@ +program main + ! begin of program + use openacc + implicit none + integer, parameter :: N = 1000 + integer :: i + integer(4) :: x(N), y(N), y_exact(N) + + do i = 1, N + y_exact(i) = 3 + end do + + call acc_copyin(x) + call acc_copyin(y) + + !$acc parallel loop present(x,y) + ! + do i = 1, N + x(i) = 1 + y(i) = 2 + end do + + !$acc parallel loop + do i = 1, N + y(i) = x(i) + y(i) + end do + + call acc_copyout(y) + + do i = 1, N + if ( y_exact(i) .ne.& + y(i) ) ERROR STOP "GPU and CPU result do not match" + end do + + print *, "PASSED" + + end program + \ No newline at end of file diff --git a/runtime/gpufortrt/test/fortran/test_acc_copyout_00.f90 b/runtime/gpufortrt/test/fortran/test_acc_copyout_00.f90 deleted file mode 100644 index 10cf4419..00000000 --- a/runtime/gpufortrt/test/fortran/test_acc_copyout_00.f90 +++ /dev/null @@ -1,44 +0,0 @@ -program main - ! begin of program - use openacc - implicit none - integer, parameter :: N = 100 - integer :: i - integer(4) :: x(N), y(N), y_exact(N) - logical:: xPresent = .FALSE., yPresent = .FALSE. - - do i = 1, N - y_exact(i) = 3 - end do - - call acc_copyin(x, N) - call acc_copyin(y, N) - - xPresent = acc_is_present(x,N) - yPresent = acc_is_present(y,N) - - if ( .not. xPresent .OR. .not. yPresent ) ERROR STOP "Arrays are not present" - - !$acc parallel loop - ! - do i = 1, N - x(i) = 1 - y(i) = 2 - end do - - !$acc parallel loop - do i = 1, N - y(i) = x(i) + y(i) - end do - - call acc_copyout(y,N) - - do i = 1, N - if ( y_exact(i) .ne.& - y(i) ) ERROR STOP "GPU and CPU result do not match" - end do - - print *, "PASSED" - - end program - From aa63276b38ebd1405de19c2295c135f9c81bb9ca Mon Sep 17 00:00:00 2001 From: monoatamd Date: Mon, 21 Nov 2022 15:16:58 +0100 Subject: [PATCH 20/33] added set and get default async --- runtime/gpufortrt/src/openacc.cpp | 8 +++++ runtime/gpufortrt/src/openacc.f90 | 33 ++++++++++++++++++ runtime/gpufortrt/test/fortran/Makefile | 1 + .../test_acc_set_get_default_async_00.f90 | 34 +++++++++++++++++++ 4 files changed, 76 insertions(+) create mode 100644 runtime/gpufortrt/test/fortran/test_acc_set_get_default_async_00.f90 diff --git a/runtime/gpufortrt/src/openacc.cpp b/runtime/gpufortrt/src/openacc.cpp index 0aa24297..46be5428 100644 --- a/runtime/gpufortrt/src/openacc.cpp +++ b/runtime/gpufortrt/src/openacc.cpp @@ -229,4 +229,12 @@ void acc_copyout_finalize(h_void* data_arg, size_t bytes){ void acc_copyout_finalize_async(h_void* data_arg, size_t bytes, int async_arg){ gpufortrt_copyout_finalize_async( data_arg, bytes, async_arg); +} + +int acc_get_default_async(void){ + return gpufortrt_get_default_async(); +} + +void acc_set_default_async(int async_arg){ + gpufortrt_set_default_async(async_arg); } \ No newline at end of file diff --git a/runtime/gpufortrt/src/openacc.f90 b/runtime/gpufortrt/src/openacc.f90 index b49d7317..0fd6c7a8 100644 --- a/runtime/gpufortrt/src/openacc.f90 +++ b/runtime/gpufortrt/src/openacc.f90 @@ -676,4 +676,37 @@ subroutine acc_copyout_finalize_async_nb(data_arg, async_arg) call acc_copyout_finalize_async_b(data_arg,int(sizeof(data_arg)), async_arg) end subroutine + integer(kind=acc_handle_kind) function acc_get_default_async() + use iso_c_binding + implicit none + ! + interface + integer(c_int) function acc_get_default_async_c_impl() & + bind(c,name="acc_get_default_async") + use iso_c_binding + implicit none + ! + end function + end interface + acc_get_default_async = int(acc_get_default_async_c_impl(),kind=acc_handle_kind) + end function + + subroutine acc_set_default_async(async_arg) + use iso_c_binding + implicit none + ! + integer(kind=acc_handle_kind),value :: async_arg + interface + subroutine acc_set_default_async_c_impl(async_arg) & + bind(c,name="acc_set_default_async") + use iso_c_binding + Import::acc_handle_kind + implicit none + ! + integer(kind=acc_handle_kind), value, intent(in):: async_arg + end subroutine + end interface + call acc_set_default_async_c_impl(async_arg) +end subroutine + end module diff --git a/runtime/gpufortrt/test/fortran/Makefile b/runtime/gpufortrt/test/fortran/Makefile index 63cbd990..7e8cf0b7 100644 --- a/runtime/gpufortrt/test/fortran/Makefile +++ b/runtime/gpufortrt/test/fortran/Makefile @@ -10,6 +10,7 @@ LDFLAGS = $(shell gpufort --print-acc-ldflags) -lgfortran # sources TEST_SRC = \ + ./test_acc_set_default_async_00.f90 \ ./test_acc_copyinout_00.f90 \ ./test_acc_copyinout_01.f90 \ ./test_acc_copyin_00.f90 \ diff --git a/runtime/gpufortrt/test/fortran/test_acc_set_get_default_async_00.f90 b/runtime/gpufortrt/test/fortran/test_acc_set_get_default_async_00.f90 new file mode 100644 index 00000000..1a7296de --- /dev/null +++ b/runtime/gpufortrt/test/fortran/test_acc_set_get_default_async_00.f90 @@ -0,0 +1,34 @@ +! { dg-do run } + +program main + use openacc + implicit none + integer :: i + integer, parameter :: N = 1000 + integer(4) :: x(N) + + call acc_set_default_async(1) + call acc_copyin_async(x,N*4,acc_async_noval) + + !$acc parallel + do i = 1, N + x(i) = 1 + end do + !$acc end parallel + + call acc_wait_async (0, acc_async_noval) + + ! Test unseen async-argument. + if (acc_async_test (12) .neqv. .TRUE.) stop 1 + call acc_wait_async (12, acc_async_noval) + + call acc_wait (1) + + if (acc_async_test (0) .neqv. .TRUE.) stop 2 + if (acc_async_test (1) .neqv. .TRUE.) stop 3 + if (acc_async_test (2) .neqv. .TRUE.) stop 4 + + print *, "acc_get_default_async: ", acc_get_default_async() + + end program + \ No newline at end of file From 497afdf85b078c031cb50e8662d7f6763c9c8e3e Mon Sep 17 00:00:00 2001 From: monoatamd Date: Mon, 21 Nov 2022 15:55:45 +0100 Subject: [PATCH 21/33] added acc_create and test programs --- runtime/gpufortrt/src/gpufortrt_api.cpp | 12 +++- runtime/gpufortrt/src/openacc.cpp | 9 +++ runtime/gpufortrt/src/openacc.f90 | 67 ++++++++++++++++++- runtime/gpufortrt/test/fortran/Makefile | 2 + .../test/fortran/test_acc_create_00.f90 | 38 +++++++++++ .../test/fortran/test_acc_create_01.f90 | 38 +++++++++++ 6 files changed, 164 insertions(+), 2 deletions(-) create mode 100644 runtime/gpufortrt/test/fortran/test_acc_create_00.f90 create mode 100644 runtime/gpufortrt/test/fortran/test_acc_create_01.f90 diff --git a/runtime/gpufortrt/src/gpufortrt_api.cpp b/runtime/gpufortrt/src/gpufortrt_api.cpp index be344efd..abbb6f1e 100644 --- a/runtime/gpufortrt/src/gpufortrt_api.cpp +++ b/runtime/gpufortrt/src/gpufortrt_api.cpp @@ -407,7 +407,17 @@ void* gpufortrt_create(void* hostptr,std::size_t num_bytes,bool never_deallocate } void gpufortrt_create_async(void* hostptr,std::size_t num_bytes,int async_arg,bool never_deallocate) { - gpufortrt_create(hostptr,num_bytes,never_deallocate); + bool blocking; int async_val; + std::tie(blocking,async_val) = gpufortrt::internal::check_async_arg(async_arg); + // gpufortrt_create(hostptr,num_bytes,never_deallocate); + ::create_increment_action( + gpufortrt_counter_dynamic, + hostptr, + num_bytes, + gpufortrt_map_kind_create, + never_deallocate,/*never_deallocate*/ + blocking,/*blocking*/ + async_val); } void gpufortrt_delete(void* hostptr,std::size_t num_bytes) { diff --git a/runtime/gpufortrt/src/openacc.cpp b/runtime/gpufortrt/src/openacc.cpp index 46be5428..99d5b123 100644 --- a/runtime/gpufortrt/src/openacc.cpp +++ b/runtime/gpufortrt/src/openacc.cpp @@ -216,6 +216,15 @@ void acc_copyin_async(h_void* data_arg, size_t bytes, gpufortrt_copyin_async(data_arg, bytes, async_arg, false); } +d_void* acc_create(h_void* data_arg, size_t bytes){ + return gpufortrt_create(data_arg, bytes, false); +} + +void acc_create_async(h_void* data_arg, size_t bytes, + int async_arg){ + gpufortrt_create_async(data_arg, bytes, async_arg, false); +} + void acc_copyout(h_void* data_arg, size_t bytes){ gpufortrt_copyout(data_arg, bytes); } diff --git a/runtime/gpufortrt/src/openacc.f90 b/runtime/gpufortrt/src/openacc.f90 index 0fd6c7a8..2aa445ff 100644 --- a/runtime/gpufortrt/src/openacc.f90 +++ b/runtime/gpufortrt/src/openacc.f90 @@ -50,6 +50,15 @@ module openacc module procedure :: acc_copyin_async_b end interface + interface acc_create + module procedure :: acc_create_nb + module procedure :: acc_create_b + end interface + interface acc_create_async + module procedure :: acc_create_async_nb + module procedure :: acc_create_async_b + end interface + interface acc_copyout module procedure :: acc_copyout_nb module procedure :: acc_copyout_b @@ -707,6 +716,62 @@ subroutine acc_set_default_async_c_impl(async_arg) & end subroutine end interface call acc_set_default_async_c_impl(async_arg) -end subroutine + end subroutine + + subroutine acc_create_b(data_arg, bytes) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer,value,intent(in) :: bytes + interface + subroutine acc_create_b_c_impl(data_arg,bytes) & + bind(c,name="acc_create") + use iso_c_binding + implicit none + ! + type(c_ptr), value::data_arg + integer(c_size_t), value :: bytes + end subroutine + end interface + call acc_create_b_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t)) + end subroutine + + subroutine acc_create_nb(data_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + call acc_create_b(data_arg, int(sizeof(data_arg))) + end subroutine + + subroutine acc_create_async_b(data_arg, bytes, async_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer,value,intent(in) :: bytes + integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg + interface + subroutine acc_create_async_b_c_impl(data_arg,bytes, async_arg) & + bind(c,name="acc_create_async") + use iso_c_binding + implicit none + ! + type(c_ptr), value::data_arg + integer(c_size_t), value :: bytes + type(c_ptr),value,intent(in) :: async_arg + end subroutine + end interface + call acc_create_async_b_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t), c_loc(async_arg)) + end subroutine + subroutine acc_create_async_nb(data_arg, async_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg + call acc_create_async_b(data_arg,int(sizeof(data_arg)), async_arg) + end subroutine end module diff --git a/runtime/gpufortrt/test/fortran/Makefile b/runtime/gpufortrt/test/fortran/Makefile index 7e8cf0b7..ed783ba8 100644 --- a/runtime/gpufortrt/test/fortran/Makefile +++ b/runtime/gpufortrt/test/fortran/Makefile @@ -10,6 +10,8 @@ LDFLAGS = $(shell gpufort --print-acc-ldflags) -lgfortran # sources TEST_SRC = \ + ./test_acc_create_00.f90 \ + ./test_acc_create_01.f90 \ ./test_acc_set_default_async_00.f90 \ ./test_acc_copyinout_00.f90 \ ./test_acc_copyinout_01.f90 \ diff --git a/runtime/gpufortrt/test/fortran/test_acc_create_00.f90 b/runtime/gpufortrt/test/fortran/test_acc_create_00.f90 new file mode 100644 index 00000000..eae0aa44 --- /dev/null +++ b/runtime/gpufortrt/test/fortran/test_acc_create_00.f90 @@ -0,0 +1,38 @@ +program main + ! begin of program + use openacc + implicit none + integer, parameter :: N = 1000 + integer :: i + integer(4) :: x(N), y(N), y_exact(N) + + do i = 1, N + y_exact(i) = 3 + end do + + call acc_create(x,N*4) + call acc_create(y,N*4) + + !$acc parallel loop present(x,y) + ! + do i = 1, N + x(i) = 1 + y(i) = 2 + end do + + !$acc parallel loop + do i = 1, N + y(i) = x(i) + y(i) + end do + + call acc_copyout(y,N*4) + + do i = 1, N + if ( y_exact(i) .ne.& + y(i) ) ERROR STOP "GPU and CPU result do not match" + end do + + print *, "PASSED" + + end program + \ No newline at end of file diff --git a/runtime/gpufortrt/test/fortran/test_acc_create_01.f90 b/runtime/gpufortrt/test/fortran/test_acc_create_01.f90 new file mode 100644 index 00000000..78ba0386 --- /dev/null +++ b/runtime/gpufortrt/test/fortran/test_acc_create_01.f90 @@ -0,0 +1,38 @@ +program main + ! begin of program + use openacc + implicit none + integer, parameter :: N = 1000 + integer :: i + integer(4) :: x(N), y(N), y_exact(N) + + do i = 1, N + y_exact(i) = 3 + end do + + call acc_create_async(x,N*4, acc_async_noval) + call acc_create_async(y,N*4, acc_async_noval) + + !$acc parallel loop present(x,y) + ! + do i = 1, N + x(i) = 1 + y(i) = 2 + end do + + !$acc parallel loop + do i = 1, N + y(i) = x(i) + y(i) + end do + + call acc_copyout(y,N*4) + + do i = 1, N + if ( y_exact(i) .ne.& + y(i) ) ERROR STOP "GPU and CPU result do not match" + end do + + print *, "PASSED" + + end program + \ No newline at end of file From 927a09cec35d54a4bc87910cd9d29e9d57a6aad8 Mon Sep 17 00:00:00 2001 From: monoatamd Date: Mon, 21 Nov 2022 16:12:50 +0100 Subject: [PATCH 22/33] added acc_delete and a test program --- runtime/gpufortrt/src/openacc.cpp | 18 +++ runtime/gpufortrt/src/openacc.f90 | 132 ++++++++++++++++++ runtime/gpufortrt/test/fortran/Makefile | 1 + .../test/fortran/test_acc_delete_00.f90 | 41 ++++++ 4 files changed, 192 insertions(+) create mode 100644 runtime/gpufortrt/test/fortran/test_acc_delete_00.f90 diff --git a/runtime/gpufortrt/src/openacc.cpp b/runtime/gpufortrt/src/openacc.cpp index 99d5b123..14e2f6f1 100644 --- a/runtime/gpufortrt/src/openacc.cpp +++ b/runtime/gpufortrt/src/openacc.cpp @@ -246,4 +246,22 @@ int acc_get_default_async(void){ void acc_set_default_async(int async_arg){ gpufortrt_set_default_async(async_arg); +} + +void acc_delete(h_void* data_arg, size_t bytes){ + gpufortrt_delete( data_arg, bytes); +} + +void acc_delete_async(h_void* data_arg, size_t bytes, + int async_arg){ + gpufortrt_delete_async(data_arg, bytes, async_arg); +} + +void acc_delete_finalize(h_void* data_arg, size_t bytes){ + gpufortrt_delete_finalize( data_arg, bytes); +} + +void acc_delete_finalize_async(h_void* data_arg, + size_t bytes, int async_arg){ + gpufortrt_delete_finalize_async(data_arg, bytes, async_arg); } \ No newline at end of file diff --git a/runtime/gpufortrt/src/openacc.f90 b/runtime/gpufortrt/src/openacc.f90 index 2aa445ff..8abe6eae 100644 --- a/runtime/gpufortrt/src/openacc.f90 +++ b/runtime/gpufortrt/src/openacc.f90 @@ -75,6 +75,23 @@ module openacc module procedure :: acc_copyout_finalize_async_nb module procedure :: acc_copyout_finalize_async_b end interface + + interface acc_delete + module procedure :: acc_delete_nb + module procedure :: acc_delete_b + end interface + interface acc_delete_async + module procedure :: acc_delete_async_nb + module procedure :: acc_delete_async_b + end interface + interface acc_delete_finalize + module procedure :: acc_delete_finalize_nb + module procedure :: acc_delete_finalize_b + end interface + interface acc_delete_finalize_async + module procedure :: acc_delete_finalize_async_nb + module procedure :: acc_delete_finalize_async_b + end interface contains subroutine acc_init(dev_type) @@ -774,4 +791,119 @@ subroutine acc_create_async_nb(data_arg, async_arg) integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg call acc_create_async_b(data_arg,int(sizeof(data_arg)), async_arg) end subroutine + + subroutine acc_delete_b(data_arg, bytes) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer,value,intent(in) :: bytes + interface + subroutine acc_delete_b_c_impl(data_arg,bytes) & + bind(c,name="acc_delete") + use iso_c_binding + implicit none + ! + type(c_ptr), value::data_arg + integer(c_size_t), value :: bytes + end subroutine + end interface + call acc_delete_b_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t)) + end subroutine + + subroutine acc_delete_nb(data_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + call acc_delete_b(data_arg, int(sizeof(data_arg))) + end subroutine + + subroutine acc_delete_async_b(data_arg, bytes, async_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer,value,intent(in) :: bytes + integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg + interface + subroutine acc_delete_async_b_c_impl(data_arg,bytes, async_arg) & + bind(c,name="acc_delete_async") + use iso_c_binding + implicit none + ! + type(c_ptr), value::data_arg + integer(c_size_t), value :: bytes + type(c_ptr),value,intent(in) :: async_arg + end subroutine + end interface + call acc_delete_async_b_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t), c_loc(async_arg)) + end subroutine + + subroutine acc_delete_async_nb(data_arg, async_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg + call acc_delete_async_b(data_arg,int(sizeof(data_arg)), async_arg) + end subroutine + + subroutine acc_delete_finalize_b(data_arg, bytes) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer,value,intent(in) :: bytes + interface + subroutine acc_delete_finalize_b_c_impl(data_arg,bytes) & + bind(c,name="acc_delete_finalize") + use iso_c_binding + implicit none + ! + type(c_ptr), value::data_arg + integer(c_size_t), value :: bytes + end subroutine + end interface + call acc_delete_finalize_b_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t)) + end subroutine + + subroutine acc_delete_finalize_nb(data_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + call acc_delete_finalize_b(data_arg, int(sizeof(data_arg))) + end subroutine + + subroutine acc_delete_finalize_async_b(data_arg, bytes, async_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer,value,intent(in) :: bytes + integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg + interface + subroutine acc_delete_finalize_async_b_c_impl(data_arg,bytes, async_arg) & + bind(c,name="acc_delete_finalize_async") + use iso_c_binding + implicit none + ! + type(c_ptr), value::data_arg + integer(c_size_t), value :: bytes + type(c_ptr),value,intent(in) :: async_arg + end subroutine + end interface + call acc_delete_finalize_async_b_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t), c_loc(async_arg)) + end subroutine + + subroutine acc_delete_finalize_async_nb(data_arg, async_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg + call acc_delete_finalize_async_b(data_arg,int(sizeof(data_arg)), async_arg) + end subroutine + end module diff --git a/runtime/gpufortrt/test/fortran/Makefile b/runtime/gpufortrt/test/fortran/Makefile index ed783ba8..74ade4f5 100644 --- a/runtime/gpufortrt/test/fortran/Makefile +++ b/runtime/gpufortrt/test/fortran/Makefile @@ -10,6 +10,7 @@ LDFLAGS = $(shell gpufort --print-acc-ldflags) -lgfortran # sources TEST_SRC = \ + ./test_acc_delete_00.f90 \ ./test_acc_create_00.f90 \ ./test_acc_create_01.f90 \ ./test_acc_set_default_async_00.f90 \ diff --git a/runtime/gpufortrt/test/fortran/test_acc_delete_00.f90 b/runtime/gpufortrt/test/fortran/test_acc_delete_00.f90 new file mode 100644 index 00000000..449cfbcf --- /dev/null +++ b/runtime/gpufortrt/test/fortran/test_acc_delete_00.f90 @@ -0,0 +1,41 @@ +program main + ! begin of program + use openacc + implicit none + integer, parameter :: N = 1000 + integer :: i + integer(4) :: x(N), y(N), y_exact(N) + + do i = 1, N + y_exact(i) = 3 + end do + + call acc_create(x,N*4) + call acc_create(y,N*4) + + !$acc parallel loop present(x,y) + ! + do i = 1, N + x(i) = 1 + y(i) = 2 + end do + + !$acc parallel loop + do i = 1, N + y(i) = x(i) + y(i) + end do + + call acc_copyout(y,N*4) + + do i = 1, N + if ( y_exact(i) .ne.& + y(i) ) ERROR STOP "GPU and CPU result do not match" + end do + + call acc_delete(x,N*4) + call acc_delete_async(y, N*4, acc_async_noval) + + print *, "PASSED" + + end program + \ No newline at end of file From 71a809fa1b88a6c04dec3a53a6c43d899f948173 Mon Sep 17 00:00:00 2001 From: monoatamd Date: Mon, 21 Nov 2022 16:55:38 +0100 Subject: [PATCH 23/33] added acc_update/device and a test program --- runtime/gpufortrt/src/openacc.cpp | 18 +++ runtime/gpufortrt/src/openacc.f90 | 132 ++++++++++++++++++ runtime/gpufortrt/test/fortran/Makefile | 1 + .../test/fortran/test_acc_update_00.f90 | 56 ++++++++ 4 files changed, 207 insertions(+) create mode 100644 runtime/gpufortrt/test/fortran/test_acc_update_00.f90 diff --git a/runtime/gpufortrt/src/openacc.cpp b/runtime/gpufortrt/src/openacc.cpp index 14e2f6f1..267057bc 100644 --- a/runtime/gpufortrt/src/openacc.cpp +++ b/runtime/gpufortrt/src/openacc.cpp @@ -264,4 +264,22 @@ void acc_delete_finalize(h_void* data_arg, size_t bytes){ void acc_delete_finalize_async(h_void* data_arg, size_t bytes, int async_arg){ gpufortrt_delete_finalize_async(data_arg, bytes, async_arg); +} + +void acc_update_device(h_void* data_arg, size_t bytes){ + gpufortrt_update_device(data_arg, bytes, true, false); +} + +void acc_update_device_async(h_void* data_arg, size_t bytes, + int async_arg){ + gpufortrt_update_device_async(data_arg, bytes, true, false, async_arg); +} + +void acc_update_self(h_void* data_arg, size_t bytes){ + gpufortrt_update_self(data_arg, bytes, true, false); +} + +void acc_update_self_async(h_void* data_arg, size_t bytes, + int async_arg){ + gpufortrt_update_self_async(data_arg, bytes, true, false, async_arg); } \ No newline at end of file diff --git a/runtime/gpufortrt/src/openacc.f90 b/runtime/gpufortrt/src/openacc.f90 index 8abe6eae..12958e20 100644 --- a/runtime/gpufortrt/src/openacc.f90 +++ b/runtime/gpufortrt/src/openacc.f90 @@ -92,6 +92,24 @@ module openacc module procedure :: acc_delete_finalize_async_nb module procedure :: acc_delete_finalize_async_b end interface + + interface acc_update_device + module procedure :: acc_update_device_nb + module procedure :: acc_update_device_b + end interface + interface acc_update_device_async + module procedure :: acc_update_device_async_nb + module procedure :: acc_update_device_async_b + end interface + + interface acc_update_self + module procedure :: acc_update_self_nb + module procedure :: acc_update_self_b + end interface + interface acc_update_self_async + module procedure :: acc_update_self_async_nb + module procedure :: acc_update_self_async_b + end interface contains subroutine acc_init(dev_type) @@ -906,4 +924,118 @@ subroutine acc_delete_finalize_async_nb(data_arg, async_arg) call acc_delete_finalize_async_b(data_arg,int(sizeof(data_arg)), async_arg) end subroutine + subroutine acc_update_device_b(data_arg, bytes) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer,value,intent(in) :: bytes + interface + subroutine acc_update_device_b_c_impl(data_arg,bytes) & + bind(c,name="acc_update_device") + use iso_c_binding + implicit none + ! + type(c_ptr), value::data_arg + integer(c_size_t), value :: bytes + end subroutine + end interface + call acc_update_device_b_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t)) + end subroutine + + subroutine acc_update_device_nb(data_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + call acc_update_device_b(data_arg, int(sizeof(data_arg))) + end subroutine + + subroutine acc_update_device_async_b(data_arg, bytes, async_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer,value,intent(in) :: bytes + integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg + interface + subroutine acc_update_device_async_b_c_impl(data_arg,bytes, async_arg) & + bind(c,name="acc_update_device_async") + use iso_c_binding + implicit none + ! + type(c_ptr), value::data_arg + integer(c_size_t), value :: bytes + type(c_ptr),value,intent(in) :: async_arg + end subroutine + end interface + call acc_update_device_async_b_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t), c_loc(async_arg)) + end subroutine + + subroutine acc_update_device_async_nb(data_arg, async_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg + call acc_update_device_async_b(data_arg,int(sizeof(data_arg)), async_arg) + end subroutine + + subroutine acc_update_self_b(data_arg, bytes) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer,value,intent(in) :: bytes + interface + subroutine acc_update_self_b_c_impl(data_arg,bytes) & + bind(c,name="acc_update_self") + use iso_c_binding + implicit none + ! + type(c_ptr), value::data_arg + integer(c_size_t), value :: bytes + end subroutine + end interface + call acc_update_self_b_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t)) + end subroutine + + subroutine acc_update_self_nb(data_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + call acc_update_self_b(data_arg, int(sizeof(data_arg))) + end subroutine + + subroutine acc_update_self_async_b(data_arg, bytes, async_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer,value,intent(in) :: bytes + integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg + interface + subroutine acc_update_self_async_b_c_impl(data_arg,bytes, async_arg) & + bind(c,name="acc_update_self_async") + use iso_c_binding + implicit none + ! + type(c_ptr), value::data_arg + integer(c_size_t), value :: bytes + type(c_ptr),value,intent(in) :: async_arg + end subroutine + end interface + call acc_update_self_async_b_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t), c_loc(async_arg)) + end subroutine + + subroutine acc_update_self_async_nb(data_arg, async_arg) + use iso_c_binding + implicit none + ! + type(*), target, dimension(..)::data_arg + integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg + call acc_update_self_async_b(data_arg,int(sizeof(data_arg)), async_arg) + end subroutine + end module diff --git a/runtime/gpufortrt/test/fortran/Makefile b/runtime/gpufortrt/test/fortran/Makefile index 74ade4f5..176d3a28 100644 --- a/runtime/gpufortrt/test/fortran/Makefile +++ b/runtime/gpufortrt/test/fortran/Makefile @@ -10,6 +10,7 @@ LDFLAGS = $(shell gpufort --print-acc-ldflags) -lgfortran # sources TEST_SRC = \ + ./test_acc_update_00.f90 \ ./test_acc_delete_00.f90 \ ./test_acc_create_00.f90 \ ./test_acc_create_01.f90 \ diff --git a/runtime/gpufortrt/test/fortran/test_acc_update_00.f90 b/runtime/gpufortrt/test/fortran/test_acc_update_00.f90 new file mode 100644 index 00000000..88d482d1 --- /dev/null +++ b/runtime/gpufortrt/test/fortran/test_acc_update_00.f90 @@ -0,0 +1,56 @@ +! See also "lib-16-2.f90". +! { dg-do run } +! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } + +program main + use openacc + implicit none + + integer, parameter :: N = 1000 + integer(4) :: x(N) + integer :: i + ! integer :: async = 5 + + call acc_set_default_async(5) + + do i = 1, N + x(i) = 3 + end do + + call acc_copyin (x) + + do i = 1, N + x(i) = i + 1 + end do + + call acc_update_device_async (x, 4*N, acc_async_noval) + + ! We must wait for the update to be done. + call acc_wait (acc_async_noval) + + call acc_copyout_async (x, 4*N, acc_async_noval) + + call acc_wait (acc_async_noval) + + do i = 1, N + if (x(i) /= i + 1) stop 2 + end do + + call acc_copyin (x, 4*N) + + call acc_update_self_async (x, 4*N, acc_async_noval) + + call acc_wait (acc_async_noval) + + do i = 1, N + if (x(i) /= i + 1) stop 4 + end do + + call acc_delete_async (x, acc_async_noval) + + call acc_wait (acc_async_noval) + + print *, "PASSED" + + end program + \ No newline at end of file From 9da737812fc62d48c963f0f44c7efd5a34840db5 Mon Sep 17 00:00:00 2001 From: monoatamd Date: Tue, 22 Nov 2022 11:20:34 +0100 Subject: [PATCH 24/33] added deviceptr and updated implementation_status --- runtime/gpufortrt/openacc_library_routines.md | 270 ++++-------------- runtime/gpufortrt/src/openacc.cpp | 4 + 2 files changed, 61 insertions(+), 213 deletions(-) diff --git a/runtime/gpufortrt/openacc_library_routines.md b/runtime/gpufortrt/openacc_library_routines.md index fd277e9f..c509ae13 100644 --- a/runtime/gpufortrt/openacc_library_routines.md +++ b/runtime/gpufortrt/openacc_library_routines.md @@ -1,213 +1,57 @@ -# acc_get_num_devices - -## Status - -# acc_set_device_type - -## Status - -# acc_get_device_type - -## Status - -# acc_set_device_num - -## Status - -Exists in gpufortrt_api.cpp - -# acc_get_device_num - -## Status - -Exists in gpufortrt_api.cpp - -# acc_get_property - -## Status - -Exists in gpufortrt_api.cpp - -# acc_init - -## Status - -Exists in gpufortrt_api.cpp - -# acc_shutdown - -## Status - -Exists in gpufortrt_api.cpp - -# acc_async_test - -## Status - -Exists in gpufortrt_api.cpp - -# acc_async_test_device - -## Status - -Exists in gpufortrt_api.cpp - -# acc_async_test_all - -## Status - -Exists in gpufortrt_api.cpp - -# acc_async_test_all_device - -## Status - -Exists in gpufortrt_api.cpp - -# acc_wait - -## Status - -Exists in gpufortrt_api.cpp - -# acc_wait_device - -## Status - -# acc_wait_async - -## Status - -Exists in gpufortrt_api.cpp - -# acc_wait_device_async - -## Status - -# acc_wait_all - -## Status - -Exists in gpufortrt_api.cpp - -# acc_wait_all_device - -## Status - -# acc_wait_all_async - -## Status - -Exists in gpufortrt_api.cpp - -# acc_wait_all_device_async - -## Status - -# acc_get_default_async - -## Status - -Exists in gpufortrt_api.cpp, not tested - -# acc_set_default_async - -## Status - -Exists in gpufortrt_api.cpp, not tested - -# acc_on_device - -## Status - -# acc_malloc - -## Status - -# acc_free - -## Status - -# acc_copyin - -## Status - -Exists in gpufortrt_api.cpp - -# acc_create - -## Status - -Exists in gpufortrt_api.cpp - -# acc_copyout - -## Status - -Exists in gpufortrt_api.cpp - -# acc_delete - -## Status - -Exists in gpufortrt_api.cpp - -# acc_update_device - -## Status - -Exists in gpufortrt_api.cpp - -# acc_update_self - -## Status - -Exists in gpufortrt_api.cpp - -# acc_map_data - -## Status - -# acc_unmap_data - -## Status - -# acc_deviceptr - -## Status - -Exists in gpufortrt_api.cpp - -# acc_hostptr - -## Status - -# acc_is_present - -## Status - -Exists in gpufortrt_api.cpp - -# acc_memcpy_to_device - -## Status - -# acc_memcpy_from_device - -## Status - -# acc_memcpy_device - -## Status - -# acc_attach - -## Status - -# acc_detach - -## Status - -# acc_memcpy_d2d - -## Status +--- +geometry: margin=2cm +--- + +# Implemented API + +| API | Lang\* | OpenACC | GPUFORTRT\*\* | Priority\*\*\* | +|-----|--------|---------|-------------|----------| +|acc\_get\_num\_devices|C/C++, Fortran|implemented|implemented|high| +|acc\_set\_device\_type|C/C++, Fortran|implemented|implemented|high| +|acc\_get\_device\_type|C/C++, Fortran|implemented|implemented|high| +|acc\_set\_device\_num|C/C++, Fortran|implemented|implemented|| +|acc\_get\_device\_num|C/C++, Fortran|implemented|implemented|| +|acc\_get\_property|C/C++, Fortran|implemented|implemented|| +|acc\_init|C/C++, Fortran|implemented|implemented|| +|acc\_shutdown|C/C++, Fortran|implemented|implemented|| +|acc\_async\_test|C/C++, Fortran|implemented|implemented|| +|acc\_async\_test\_device|C/C++, Fortran|implemented|implemented|| +|acc\_async\_test\_all|C/C++, Fortran|implemented|implemented|| +|acc\_async\_test\_all\_device|C/C++, Fortran|implemented|implemented|| +|acc\_wait|C/C++, Fortran|implemented|implemented|| +|acc\_wait\_device|C/C++, Fortran|implemented|implemented|high| +|acc\_wait\_async|C/C++, Fortran|implemented|implemented|| +|acc\_wait\_device\_async|C/C++, Fortran|implemented|implemented|high| +|acc\_wait\_all|C/C++, Fortran|implemented|implemented|| +|acc\_wait\_all\_device|C/C++, Fortran|implemented|implemented|high| +|acc\_wait\_all\_async|C/C++, Fortran|implemented|implemented|| +|acc\_wait\_all\_device\_async|C/C++, Fortran|implemented|implemented|high| +|acc\_get\_default\_async|C/C++, Fortran|implemented|implemented|| +|acc\_set\_default\_async|C/C++, Fortran|implemented|implemented|| +|acc\_on\_device||||low| +|acc\_malloc||||low| +|acc\_free||||low| +|acc\_copyin|C/C++, Fortran|implemented|implemented|| +|acc\_create|C/C++, Fortran|implemented|implemented|| +|acc\_copyout|C/C++, Fortran|implemented|implemented|| +|acc\_delete|C/C++, Fortran|implemented|implemented|| +|acc\_update\_device|C/C++, Fortran|implemented|implemented|| +|acc\_update\_self|C/C++, Fortran|implemented|implemented|| +|acc\_map\_data||||low| +|acc\_unmap\_data||||low| +|acc\_deviceptr|C/C++||implemented|| +|acc\_hostptr|C/C++|||low| +|acc\_is\_present|||implemented|| +|acc\_memcpy\_to\_device||||low| +|acc\_memcpy\_from\_device||||low| +|acc\_memcpy\_device||||low| +|acc\_attach||||low| +|acc\_detach||||low| +|acc\_memcpy\_d2d||||low| + +Remarks: + +* \* While some APIs are exposed only to C according to the OpenACC standard, `GPUFORTRT` may expose some C interfaces also to Fortran. An \* indicates that this feature was exposed by the GPUFORTRT to Fortran despite the OpenACC standard not requiring this. +* \*\* `GPUFORTRT` signatures are prefixd by `gpufortrt_` instead of `acc_` and the number and meaning of +arguments may differ compared to the OpenACC signature. +* \*\*\* Current priorities for implementing missing APIs. This column will disappear as soon as all are implemented. diff --git a/runtime/gpufortrt/src/openacc.cpp b/runtime/gpufortrt/src/openacc.cpp index 267057bc..8f6169de 100644 --- a/runtime/gpufortrt/src/openacc.cpp +++ b/runtime/gpufortrt/src/openacc.cpp @@ -282,4 +282,8 @@ void acc_update_self(h_void* data_arg, size_t bytes){ void acc_update_self_async(h_void* data_arg, size_t bytes, int async_arg){ gpufortrt_update_self_async(data_arg, bytes, true, false, async_arg); +} + +d_void* acc_deviceptr(h_void* data_arg){ + return gpufortrt_deviceptr(data_arg); } \ No newline at end of file From bec80502c71205a486c2b228305029e5dcb33717 Mon Sep 17 00:00:00 2001 From: monoatamd Date: Tue, 22 Nov 2022 12:13:12 +0100 Subject: [PATCH 25/33] added acc_get_num_devices and a test program --- runtime/gpufortrt/src/gpufortrt_api.cpp | 6 ++++++ runtime/gpufortrt/src/openacc.cpp | 2 +- runtime/gpufortrt/test/fortran/Makefile | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/runtime/gpufortrt/src/gpufortrt_api.cpp b/runtime/gpufortrt/src/gpufortrt_api.cpp index abbb6f1e..62886e04 100644 --- a/runtime/gpufortrt/src/gpufortrt_api.cpp +++ b/runtime/gpufortrt/src/gpufortrt_api.cpp @@ -22,6 +22,12 @@ void gpufortrt_set_device_num(int dev_num) { HIP_CHECK(hipSetDevice(dev_num)) // TODO backend specific, externalize } +int gpufortrt_get_num_devices() { + int dev_num; + HIP_CHECK(hipGetDeviceCount(&dev_num)) + return dev_num; +} + int gpufortrt_get_device_num() { int dev_num; HIP_CHECK(hipGetDevice(&dev_num)) diff --git a/runtime/gpufortrt/src/openacc.cpp b/runtime/gpufortrt/src/openacc.cpp index 8f6169de..39652ba8 100644 --- a/runtime/gpufortrt/src/openacc.cpp +++ b/runtime/gpufortrt/src/openacc.cpp @@ -63,7 +63,7 @@ acc_device_t acc_get_device_type(void) { int acc_get_num_devices(acc_device_t dev_type) { if ( ::check_device_type(dev_type) == acc_device_hip ) { - return gpufortrt_get_device_num(); + return gpufortrt_get_num_devices(); } else { // host return 1; } diff --git a/runtime/gpufortrt/test/fortran/Makefile b/runtime/gpufortrt/test/fortran/Makefile index 176d3a28..2c939c4e 100644 --- a/runtime/gpufortrt/test/fortran/Makefile +++ b/runtime/gpufortrt/test/fortran/Makefile @@ -10,6 +10,7 @@ LDFLAGS = $(shell gpufort --print-acc-ldflags) -lgfortran # sources TEST_SRC = \ + ./test_acc_get_num_devices_00.f90 \ ./test_acc_update_00.f90 \ ./test_acc_delete_00.f90 \ ./test_acc_create_00.f90 \ From 0562abc3bf2cfa25e26d8209cec019f55fd18ca2 Mon Sep 17 00:00:00 2001 From: monoatamd Date: Wed, 23 Nov 2022 10:16:40 +0100 Subject: [PATCH 26/33] added gpufortrt_is_present and added test programs --- runtime/gpufortrt/include/gpufortrt_api.h | 4 ++ runtime/gpufortrt/src/gpufortrt_api.cpp | 16 +++++++ runtime/gpufortrt/src/openacc.cpp | 2 +- runtime/gpufortrt/test/fortran/Makefile | 7 +-- ...present.f90 => test_acc_is_present_00.f90} | 0 .../test/fortran/test_acc_is_present_01.f90 | 46 +++++++++++++++++++ 6 files changed, 71 insertions(+), 4 deletions(-) rename runtime/gpufortrt/test/fortran/{test_acc_is_present.f90 => test_acc_is_present_00.f90} (100%) create mode 100644 runtime/gpufortrt/test/fortran/test_acc_is_present_01.f90 diff --git a/runtime/gpufortrt/include/gpufortrt_api.h b/runtime/gpufortrt/include/gpufortrt_api.h index 7a374033..e07144fe 100644 --- a/runtime/gpufortrt/include/gpufortrt_api.h +++ b/runtime/gpufortrt/include/gpufortrt_api.h @@ -89,6 +89,10 @@ extern "C" { void* gpufortrt_present( void* hostptr, std::size_t num_bytes); + + bool gpufortrt_is_present( + void* hostptr, + std::size_t num_bytes); void* gpufortrt_create( void* hostptr, diff --git a/runtime/gpufortrt/src/gpufortrt_api.cpp b/runtime/gpufortrt/src/gpufortrt_api.cpp index 62886e04..a9b26b86 100644 --- a/runtime/gpufortrt/src/gpufortrt_api.cpp +++ b/runtime/gpufortrt/src/gpufortrt_api.cpp @@ -784,3 +784,19 @@ void* gpufortrt_use_device(void* hostptr,bool if_arg,bool if_present_arg) { return hostptr; } } + +bool gpufortrt_is_present(void* hostptr,std::size_t num_bytes) { + if ( !gpufortrt::internal::initialized ) LOG_ERROR("update: runtime not initialized") + if ( hostptr != nullptr ) { // nullptr means no-op + auto list_tuple/*success,loc,offset*/ = gpufortrt::internal::record_list.find_record(hostptr,num_bytes); + const bool& success = std::get<0>(list_tuple); + // const std::size_t& loc = std::get<1>(list_tuple); + if ( !success ) { + LOG_ERROR("update: no record found for hostptr="< Date: Wed, 23 Nov 2022 10:39:21 +0100 Subject: [PATCH 27/33] LOG_ERROR updated in gpufortrt_is_present --- runtime/gpufortrt/src/gpufortrt_api.cpp | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/runtime/gpufortrt/src/gpufortrt_api.cpp b/runtime/gpufortrt/src/gpufortrt_api.cpp index a9b26b86..bb3a3b43 100644 --- a/runtime/gpufortrt/src/gpufortrt_api.cpp +++ b/runtime/gpufortrt/src/gpufortrt_api.cpp @@ -786,16 +786,10 @@ void* gpufortrt_use_device(void* hostptr,bool if_arg,bool if_present_arg) { } bool gpufortrt_is_present(void* hostptr,std::size_t num_bytes) { - if ( !gpufortrt::internal::initialized ) LOG_ERROR("update: runtime not initialized") + if ( !gpufortrt::internal::initialized ) LOG_ERROR("gpufortrt_is_present: runtime not initialized") if ( hostptr != nullptr ) { // nullptr means no-op auto list_tuple/*success,loc,offset*/ = gpufortrt::internal::record_list.find_record(hostptr,num_bytes); - const bool& success = std::get<0>(list_tuple); - // const std::size_t& loc = std::get<1>(list_tuple); - if ( !success ) { - LOG_ERROR("update: no record found for hostptr="<(list_tuple); } else{ return false; } From 84fb3fe585b7712d8927f5a861162c1267d924ef Mon Sep 17 00:00:00 2001 From: monoatamd Date: Wed, 23 Nov 2022 16:10:04 +0100 Subject: [PATCH 28/33] added acc_malloc and a test program --- runtime/gpufortrt/src/openacc.cpp | 9 ++++++ runtime/gpufortrt/test/fortran/Makefile | 1 + .../test/fortran/test_acc_malloc_00.f90 | 28 +++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 runtime/gpufortrt/test/fortran/test_acc_malloc_00.f90 diff --git a/runtime/gpufortrt/src/openacc.cpp b/runtime/gpufortrt/src/openacc.cpp index 17085914..1b38801e 100644 --- a/runtime/gpufortrt/src/openacc.cpp +++ b/runtime/gpufortrt/src/openacc.cpp @@ -286,4 +286,13 @@ void acc_update_self_async(h_void* data_arg, size_t bytes, d_void* acc_deviceptr(h_void* data_arg){ return gpufortrt_deviceptr(data_arg); +} + +d_void* acc_malloc(size_t bytes){ + h_void* hostptr = nullptr; + d_void* deviceptr = nullptr; + hostptr = (h_void*) malloc(bytes); + deviceptr = gpufortrt_create(hostptr, bytes, false); + free(hostptr); + return deviceptr; } \ No newline at end of file diff --git a/runtime/gpufortrt/test/fortran/Makefile b/runtime/gpufortrt/test/fortran/Makefile index 0717d55f..343b62f5 100644 --- a/runtime/gpufortrt/test/fortran/Makefile +++ b/runtime/gpufortrt/test/fortran/Makefile @@ -10,6 +10,7 @@ LDFLAGS = $(shell gpufort --print-acc-ldflags) -lgfortran # sources TEST_SRC = \ + ./test_acc_malloc_00.f90 \ ./test_acc_get_num_devices_00.f90 \ ./test_acc_update_00.f90 \ ./test_acc_delete_00.f90 \ diff --git a/runtime/gpufortrt/test/fortran/test_acc_malloc_00.f90 b/runtime/gpufortrt/test/fortran/test_acc_malloc_00.f90 new file mode 100644 index 00000000..fc841f7d --- /dev/null +++ b/runtime/gpufortrt/test/fortran/test_acc_malloc_00.f90 @@ -0,0 +1,28 @@ +program main + use openacc + use iso_c_binding + implicit none + type (c_ptr) :: cptr + integer, parameter :: N = 1000 + integer(4), pointer :: fptr(:) + logical:: fptrPresent = .FALSE. + + interface + type (c_ptr) function acc_malloc (num_bytes) & + bind (C) + use iso_c_binding + integer (c_size_t), value :: num_bytes + end function + end interface + + cptr = acc_malloc (N * sizeof (fptr(N))) + call c_f_pointer (cptr, fptr, [N]) + + fptrPresent = acc_is_present(fptr) + if ( fptrPresent ) then + print *, "FINE!" + else + ERROR STOP "Arrays is not present" + end if + +end program main \ No newline at end of file From 487f9854304fac5cb01bd2c43a4c73d1c65e9e2d Mon Sep 17 00:00:00 2001 From: monoatamd Date: Thu, 24 Nov 2022 11:28:26 +0100 Subject: [PATCH 29/33] updated acc_malloc & test program, added acc_free --- runtime/gpufortrt/include/gpufortrt_api.h | 2 + runtime/gpufortrt/src/gpufortrt_api.cpp | 15 ++++ runtime/gpufortrt/src/openacc.cpp | 13 ++-- .../test/fortran/test_acc_malloc_00.f90 | 73 ++++++++++++------- 4 files changed, 71 insertions(+), 32 deletions(-) diff --git a/runtime/gpufortrt/include/gpufortrt_api.h b/runtime/gpufortrt/include/gpufortrt_api.h index e07144fe..81683329 100644 --- a/runtime/gpufortrt/include/gpufortrt_api.h +++ b/runtime/gpufortrt/include/gpufortrt_api.h @@ -163,6 +163,8 @@ extern "C" { int gpufortrt_async_test_all_device(int dev_num); gpufortrt_queue_t gpufortrt_get_stream(int async_arg); + void* gpufortrt_malloc(size_t bytes); + void gpufortrt_free(void* data_dev); /** \return device pointer associated with `hostptr`, or nullptr. * First searches through the structured region stack and then diff --git a/runtime/gpufortrt/src/gpufortrt_api.cpp b/runtime/gpufortrt/src/gpufortrt_api.cpp index bb3a3b43..5526abec 100644 --- a/runtime/gpufortrt/src/gpufortrt_api.cpp +++ b/runtime/gpufortrt/src/gpufortrt_api.cpp @@ -794,3 +794,18 @@ bool gpufortrt_is_present(void* hostptr,std::size_t num_bytes) { return false; } } + +void* gpufortrt_malloc(size_t bytes){ + void* deviceptr = nullptr; + hipError_t ierr = hipMalloc(&deviceptr,bytes); + if ( ierr == hipSuccess ) { + return deviceptr; + } else { + LOG_ERROR("gpufortrt_malloc: could not allocate memory on device") + return nullptr; /* terminates beforehand */ + } +} + +void gpufortrt_free(void* data_dev){ + HIP_CHECK( hipFree(data_dev) ); +} diff --git a/runtime/gpufortrt/src/openacc.cpp b/runtime/gpufortrt/src/openacc.cpp index 1b38801e..02997eaa 100644 --- a/runtime/gpufortrt/src/openacc.cpp +++ b/runtime/gpufortrt/src/openacc.cpp @@ -288,11 +288,10 @@ d_void* acc_deviceptr(h_void* data_arg){ return gpufortrt_deviceptr(data_arg); } -d_void* acc_malloc(size_t bytes){ - h_void* hostptr = nullptr; - d_void* deviceptr = nullptr; - hostptr = (h_void*) malloc(bytes); - deviceptr = gpufortrt_create(hostptr, bytes, false); - free(hostptr); - return deviceptr; +d_void* acc_malloc(size_t bytes){ + return gpufortrt_malloc(bytes); +} + +void acc_free(d_void* data_dev){ + gpufortrt_free(data_dev); } \ No newline at end of file diff --git a/runtime/gpufortrt/test/fortran/test_acc_malloc_00.f90 b/runtime/gpufortrt/test/fortran/test_acc_malloc_00.f90 index fc841f7d..8b097d0f 100644 --- a/runtime/gpufortrt/test/fortran/test_acc_malloc_00.f90 +++ b/runtime/gpufortrt/test/fortran/test_acc_malloc_00.f90 @@ -1,28 +1,51 @@ program main - use openacc - use iso_c_binding - implicit none - type (c_ptr) :: cptr - integer, parameter :: N = 1000 - integer(4), pointer :: fptr(:) - logical:: fptrPresent = .FALSE. - - interface - type (c_ptr) function acc_malloc (num_bytes) & - bind (C) - use iso_c_binding - integer (c_size_t), value :: num_bytes - end function - end interface - - cptr = acc_malloc (N * sizeof (fptr(N))) - call c_f_pointer (cptr, fptr, [N]) + use iso_c_binding + implicit none + type (c_ptr) :: cptr + integer, parameter :: N = 1000 + integer, pointer :: fptr(:) + integer :: test_array(N) + integer :: i = 0 + + interface + type (c_ptr) function acc_malloc (num_bytes) & + bind (C) + use iso_c_binding + integer (c_size_t), value :: num_bytes + end function + end interface - fptrPresent = acc_is_present(fptr) - if ( fptrPresent ) then - print *, "FINE!" - else - ERROR STOP "Arrays is not present" - end if + cptr = acc_malloc (N * sizeof (fptr(N))) + call c_f_pointer (cptr, fptr, [N]) + + call dummy_subroutine (fptr, test_array, N) + + do i = 1, N + if (test_array(i) .ne. i) ERROR STOP "Results do not match" + end do + + print *, "PASSED" + + contains + subroutine dummy_subroutine (fptr, test_array, N) + use openacc + implicit none + integer :: N + integer :: test_array(N) + integer :: fptr(N) + integer :: i = 0 + + !$acc data deviceptr (fptr) -end program main \ No newline at end of file + call acc_copyin(test_array) + !$acc parallel + do i = 1, N + fptr(i) = i + test_array(i) = fptr(i) + end do + !$acc end parallel + call acc_copyout(test_array) + + end subroutine + +end program main \ No newline at end of file From 93abafa3c10b1f304298f22ce186046adffd6ab4 Mon Sep 17 00:00:00 2001 From: monoatamd Date: Fri, 25 Nov 2022 17:59:49 +0100 Subject: [PATCH 30/33] added acc_map_data and a test program --- runtime/gpufortrt/include/gpufortrt_api.h | 2 + runtime/gpufortrt/src/gpufortrt_api.cpp | 12 ++++ runtime/gpufortrt/src/openacc.cpp | 5 ++ runtime/gpufortrt/test/fortran/Makefile | 1 + .../test/fortran/test_acc_map_data_00.f90 | 61 +++++++++++++++++++ 5 files changed, 81 insertions(+) create mode 100644 runtime/gpufortrt/test/fortran/test_acc_map_data_00.f90 diff --git a/runtime/gpufortrt/include/gpufortrt_api.h b/runtime/gpufortrt/include/gpufortrt_api.h index 81683329..703a97f5 100644 --- a/runtime/gpufortrt/include/gpufortrt_api.h +++ b/runtime/gpufortrt/include/gpufortrt_api.h @@ -165,6 +165,8 @@ extern "C" { gpufortrt_queue_t gpufortrt_get_stream(int async_arg); void* gpufortrt_malloc(size_t bytes); void gpufortrt_free(void* data_dev); + void gpufortrt_map_data(void* data_arg, void* data_dev, + size_t bytes); /** \return device pointer associated with `hostptr`, or nullptr. * First searches through the structured region stack and then diff --git a/runtime/gpufortrt/src/gpufortrt_api.cpp b/runtime/gpufortrt/src/gpufortrt_api.cpp index 5526abec..4840cbb9 100644 --- a/runtime/gpufortrt/src/gpufortrt_api.cpp +++ b/runtime/gpufortrt/src/gpufortrt_api.cpp @@ -809,3 +809,15 @@ void* gpufortrt_malloc(size_t bytes){ void gpufortrt_free(void* data_dev){ HIP_CHECK( hipFree(data_dev) ); } + +void gpufortrt_map_data(void* data_arg, void* data_dev, + size_t bytes){ + // TODO: Check wether data_arg is sub_section of host memory + if ( data_arg != nullptr ) { + HIP_CHECK(hipMemcpy( + data_arg, + data_dev, + bytes, + hipMemcpyDeviceToHost)); + } +} \ No newline at end of file diff --git a/runtime/gpufortrt/src/openacc.cpp b/runtime/gpufortrt/src/openacc.cpp index 02997eaa..719b7875 100644 --- a/runtime/gpufortrt/src/openacc.cpp +++ b/runtime/gpufortrt/src/openacc.cpp @@ -294,4 +294,9 @@ d_void* acc_malloc(size_t bytes){ void acc_free(d_void* data_dev){ gpufortrt_free(data_dev); +} + +void acc_map_data(h_void* data_arg, d_void* data_dev, + size_t bytes){ + gpufortrt_map_data(data_arg, data_dev, bytes); } \ No newline at end of file diff --git a/runtime/gpufortrt/test/fortran/Makefile b/runtime/gpufortrt/test/fortran/Makefile index 343b62f5..1a66342e 100644 --- a/runtime/gpufortrt/test/fortran/Makefile +++ b/runtime/gpufortrt/test/fortran/Makefile @@ -10,6 +10,7 @@ LDFLAGS = $(shell gpufort --print-acc-ldflags) -lgfortran # sources TEST_SRC = \ + ./test_acc_map_data_00.f90 \ ./test_acc_malloc_00.f90 \ ./test_acc_get_num_devices_00.f90 \ ./test_acc_update_00.f90 \ diff --git a/runtime/gpufortrt/test/fortran/test_acc_map_data_00.f90 b/runtime/gpufortrt/test/fortran/test_acc_map_data_00.f90 new file mode 100644 index 00000000..75059c26 --- /dev/null +++ b/runtime/gpufortrt/test/fortran/test_acc_map_data_00.f90 @@ -0,0 +1,61 @@ +program main + use iso_c_binding + implicit none + type (c_ptr), target :: cptr + integer, parameter :: N = 5 + integer, pointer :: fptr(:) + integer, target :: data_arg(N) + integer :: i = 0 + + interface + function acc_malloc (num_bytes) result(res) & + bind (C) + use iso_c_binding + integer (c_size_t), value :: num_bytes + ! + type(c_ptr) :: res + end function + end interface + + interface + subroutine acc_map_data (data_arg, data_dev, num_bytes) & + bind (C) + use iso_c_binding + type (c_ptr), value:: data_arg + type (c_ptr), value:: data_dev + integer (c_size_t), value :: num_bytes + end subroutine + end interface + + cptr = acc_malloc (N * sizeof (fptr(N))) + call c_f_pointer (cptr, fptr, [N]) + + call initialize_device_memory (fptr, N) + + call acc_map_data (c_loc(data_arg), cptr, N * sizeof (fptr(N))) + + do i = 1, N + if (data_arg(i) .ne. i * 2) ERROR STOP "Results do not match" + end do + + print *, "PASSED" + + contains + subroutine initialize_device_memory (fptr, N) + use openacc + implicit none + integer :: N + integer :: fptr(N) + integer :: i = 0 + + !$acc data deviceptr (fptr) + + !$acc parallel + do i = 1, N + fptr(i) = i * 2 + end do + !$acc end parallel + + end subroutine + + end program main \ No newline at end of file From 3cad2b61b231f87cf8980228000f7aef25630983 Mon Sep 17 00:00:00 2001 From: monoatamd Date: Tue, 6 Dec 2022 11:34:52 +0100 Subject: [PATCH 31/33] Remved templats & macros. use_device needs revison --- runtime/gpufortrt/Makefile | 4 +- runtime/gpufortrt/src/gpufortrt_api.f90 | 21557 +--------------- .../gpufortrt/src/gpufortrt_api.macros.f90 | 496 - .../gpufortrt/src/gpufortrt_api.template.f90 | 42 - runtime/gpufortrt/src/gpufortrt_api_core.f90 | 315 - runtime/gpufortrt/src/obj.mk | 2 +- runtime/gpufortrt/test/fortran/Makefile | 2 +- 7 files changed, 679 insertions(+), 21739 deletions(-) delete mode 100644 runtime/gpufortrt/src/gpufortrt_api.macros.f90 delete mode 100644 runtime/gpufortrt/src/gpufortrt_api.template.f90 delete mode 100644 runtime/gpufortrt/src/gpufortrt_api_core.f90 diff --git a/runtime/gpufortrt/Makefile b/runtime/gpufortrt/Makefile index eb647625..f38dc86a 100644 --- a/runtime/gpufortrt/Makefile +++ b/runtime/gpufortrt/Makefile @@ -31,8 +31,8 @@ $(CXX_OBJ): %.cpp.o: %.cpp $(F_OBJ): %.o: %.f90 $(FC) -c $< $(FCFLAGS) -codegen: - python3 codegen.py src/gpufortrt_api.template.f90 -d 7 +# codegen: +# python3 codegen.py src/gpufortrt_api.template.f90 -d 7 clean_all: rm -f *.o *.mod *.a diff --git a/runtime/gpufortrt/src/gpufortrt_api.f90 b/runtime/gpufortrt/src/gpufortrt_api.f90 index 06659f58..e341dbbd 100644 --- a/runtime/gpufortrt/src/gpufortrt_api.f90 +++ b/runtime/gpufortrt/src/gpufortrt_api.f90 @@ -1,21057 +1,850 @@ ! SPDX-License-Identifier: MIT ! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. module gpufortrt_api - use gpufortrt_api_core - interface gpufortrt_map_present - module procedure :: gpufortrt_map_present_b - module procedure :: gpufortrt_map_present0_l1 - module procedure :: gpufortrt_map_present1_l1 - module procedure :: gpufortrt_map_present2_l1 - module procedure :: gpufortrt_map_present3_l1 - module procedure :: gpufortrt_map_present4_l1 - module procedure :: gpufortrt_map_present5_l1 - module procedure :: gpufortrt_map_present6_l1 - module procedure :: gpufortrt_map_present7_l1 - module procedure :: gpufortrt_map_present0_l4 - module procedure :: gpufortrt_map_present1_l4 - module procedure :: gpufortrt_map_present2_l4 - module procedure :: gpufortrt_map_present3_l4 - module procedure :: gpufortrt_map_present4_l4 - module procedure :: gpufortrt_map_present5_l4 - module procedure :: gpufortrt_map_present6_l4 - module procedure :: gpufortrt_map_present7_l4 - module procedure :: gpufortrt_map_present0_ch1 - module procedure :: gpufortrt_map_present1_ch1 - module procedure :: gpufortrt_map_present2_ch1 - module procedure :: gpufortrt_map_present3_ch1 - module procedure :: gpufortrt_map_present4_ch1 - module procedure :: gpufortrt_map_present5_ch1 - module procedure :: gpufortrt_map_present6_ch1 - module procedure :: gpufortrt_map_present7_ch1 - module procedure :: gpufortrt_map_present0_i1 - module procedure :: gpufortrt_map_present1_i1 - module procedure :: gpufortrt_map_present2_i1 - module procedure :: gpufortrt_map_present3_i1 - module procedure :: gpufortrt_map_present4_i1 - module procedure :: gpufortrt_map_present5_i1 - module procedure :: gpufortrt_map_present6_i1 - module procedure :: gpufortrt_map_present7_i1 - module procedure :: gpufortrt_map_present0_i2 - module procedure :: gpufortrt_map_present1_i2 - module procedure :: gpufortrt_map_present2_i2 - module procedure :: gpufortrt_map_present3_i2 - module procedure :: gpufortrt_map_present4_i2 - module procedure :: gpufortrt_map_present5_i2 - module procedure :: gpufortrt_map_present6_i2 - module procedure :: gpufortrt_map_present7_i2 - module procedure :: gpufortrt_map_present0_i4 - module procedure :: gpufortrt_map_present1_i4 - module procedure :: gpufortrt_map_present2_i4 - module procedure :: gpufortrt_map_present3_i4 - module procedure :: gpufortrt_map_present4_i4 - module procedure :: gpufortrt_map_present5_i4 - module procedure :: gpufortrt_map_present6_i4 - module procedure :: gpufortrt_map_present7_i4 - module procedure :: gpufortrt_map_present0_i8 - module procedure :: gpufortrt_map_present1_i8 - module procedure :: gpufortrt_map_present2_i8 - module procedure :: gpufortrt_map_present3_i8 - module procedure :: gpufortrt_map_present4_i8 - module procedure :: gpufortrt_map_present5_i8 - module procedure :: gpufortrt_map_present6_i8 - module procedure :: gpufortrt_map_present7_i8 - module procedure :: gpufortrt_map_present0_r4 - module procedure :: gpufortrt_map_present1_r4 - module procedure :: gpufortrt_map_present2_r4 - module procedure :: gpufortrt_map_present3_r4 - module procedure :: gpufortrt_map_present4_r4 - module procedure :: gpufortrt_map_present5_r4 - module procedure :: gpufortrt_map_present6_r4 - module procedure :: gpufortrt_map_present7_r4 - module procedure :: gpufortrt_map_present0_r8 - module procedure :: gpufortrt_map_present1_r8 - module procedure :: gpufortrt_map_present2_r8 - module procedure :: gpufortrt_map_present3_r8 - module procedure :: gpufortrt_map_present4_r8 - module procedure :: gpufortrt_map_present5_r8 - module procedure :: gpufortrt_map_present6_r8 - module procedure :: gpufortrt_map_present7_r8 - module procedure :: gpufortrt_map_present0_c4 - module procedure :: gpufortrt_map_present1_c4 - module procedure :: gpufortrt_map_present2_c4 - module procedure :: gpufortrt_map_present3_c4 - module procedure :: gpufortrt_map_present4_c4 - module procedure :: gpufortrt_map_present5_c4 - module procedure :: gpufortrt_map_present6_c4 - module procedure :: gpufortrt_map_present7_c4 - module procedure :: gpufortrt_map_present0_c8 - module procedure :: gpufortrt_map_present1_c8 - module procedure :: gpufortrt_map_present2_c8 - module procedure :: gpufortrt_map_present3_c8 - module procedure :: gpufortrt_map_present4_c8 - module procedure :: gpufortrt_map_present5_c8 - module procedure :: gpufortrt_map_present6_c8 - module procedure :: gpufortrt_map_present7_c8 - end interface - - interface gpufortrt_map_no_create - module procedure :: gpufortrt_map_no_create_b - module procedure :: gpufortrt_map_no_create0_l1 - module procedure :: gpufortrt_map_no_create1_l1 - module procedure :: gpufortrt_map_no_create2_l1 - module procedure :: gpufortrt_map_no_create3_l1 - module procedure :: gpufortrt_map_no_create4_l1 - module procedure :: gpufortrt_map_no_create5_l1 - module procedure :: gpufortrt_map_no_create6_l1 - module procedure :: gpufortrt_map_no_create7_l1 - module procedure :: gpufortrt_map_no_create0_l4 - module procedure :: gpufortrt_map_no_create1_l4 - module procedure :: gpufortrt_map_no_create2_l4 - module procedure :: gpufortrt_map_no_create3_l4 - module procedure :: gpufortrt_map_no_create4_l4 - module procedure :: gpufortrt_map_no_create5_l4 - module procedure :: gpufortrt_map_no_create6_l4 - module procedure :: gpufortrt_map_no_create7_l4 - module procedure :: gpufortrt_map_no_create0_ch1 - module procedure :: gpufortrt_map_no_create1_ch1 - module procedure :: gpufortrt_map_no_create2_ch1 - module procedure :: gpufortrt_map_no_create3_ch1 - module procedure :: gpufortrt_map_no_create4_ch1 - module procedure :: gpufortrt_map_no_create5_ch1 - module procedure :: gpufortrt_map_no_create6_ch1 - module procedure :: gpufortrt_map_no_create7_ch1 - module procedure :: gpufortrt_map_no_create0_i1 - module procedure :: gpufortrt_map_no_create1_i1 - module procedure :: gpufortrt_map_no_create2_i1 - module procedure :: gpufortrt_map_no_create3_i1 - module procedure :: gpufortrt_map_no_create4_i1 - module procedure :: gpufortrt_map_no_create5_i1 - module procedure :: gpufortrt_map_no_create6_i1 - module procedure :: gpufortrt_map_no_create7_i1 - module procedure :: gpufortrt_map_no_create0_i2 - module procedure :: gpufortrt_map_no_create1_i2 - module procedure :: gpufortrt_map_no_create2_i2 - module procedure :: gpufortrt_map_no_create3_i2 - module procedure :: gpufortrt_map_no_create4_i2 - module procedure :: gpufortrt_map_no_create5_i2 - module procedure :: gpufortrt_map_no_create6_i2 - module procedure :: gpufortrt_map_no_create7_i2 - module procedure :: gpufortrt_map_no_create0_i4 - module procedure :: gpufortrt_map_no_create1_i4 - module procedure :: gpufortrt_map_no_create2_i4 - module procedure :: gpufortrt_map_no_create3_i4 - module procedure :: gpufortrt_map_no_create4_i4 - module procedure :: gpufortrt_map_no_create5_i4 - module procedure :: gpufortrt_map_no_create6_i4 - module procedure :: gpufortrt_map_no_create7_i4 - module procedure :: gpufortrt_map_no_create0_i8 - module procedure :: gpufortrt_map_no_create1_i8 - module procedure :: gpufortrt_map_no_create2_i8 - module procedure :: gpufortrt_map_no_create3_i8 - module procedure :: gpufortrt_map_no_create4_i8 - module procedure :: gpufortrt_map_no_create5_i8 - module procedure :: gpufortrt_map_no_create6_i8 - module procedure :: gpufortrt_map_no_create7_i8 - module procedure :: gpufortrt_map_no_create0_r4 - module procedure :: gpufortrt_map_no_create1_r4 - module procedure :: gpufortrt_map_no_create2_r4 - module procedure :: gpufortrt_map_no_create3_r4 - module procedure :: gpufortrt_map_no_create4_r4 - module procedure :: gpufortrt_map_no_create5_r4 - module procedure :: gpufortrt_map_no_create6_r4 - module procedure :: gpufortrt_map_no_create7_r4 - module procedure :: gpufortrt_map_no_create0_r8 - module procedure :: gpufortrt_map_no_create1_r8 - module procedure :: gpufortrt_map_no_create2_r8 - module procedure :: gpufortrt_map_no_create3_r8 - module procedure :: gpufortrt_map_no_create4_r8 - module procedure :: gpufortrt_map_no_create5_r8 - module procedure :: gpufortrt_map_no_create6_r8 - module procedure :: gpufortrt_map_no_create7_r8 - module procedure :: gpufortrt_map_no_create0_c4 - module procedure :: gpufortrt_map_no_create1_c4 - module procedure :: gpufortrt_map_no_create2_c4 - module procedure :: gpufortrt_map_no_create3_c4 - module procedure :: gpufortrt_map_no_create4_c4 - module procedure :: gpufortrt_map_no_create5_c4 - module procedure :: gpufortrt_map_no_create6_c4 - module procedure :: gpufortrt_map_no_create7_c4 - module procedure :: gpufortrt_map_no_create0_c8 - module procedure :: gpufortrt_map_no_create1_c8 - module procedure :: gpufortrt_map_no_create2_c8 - module procedure :: gpufortrt_map_no_create3_c8 - module procedure :: gpufortrt_map_no_create4_c8 - module procedure :: gpufortrt_map_no_create5_c8 - module procedure :: gpufortrt_map_no_create6_c8 - module procedure :: gpufortrt_map_no_create7_c8 - end interface - - interface gpufortrt_map_create - module procedure :: gpufortrt_map_create_b - module procedure :: gpufortrt_map_create0_l1 - module procedure :: gpufortrt_map_create1_l1 - module procedure :: gpufortrt_map_create2_l1 - module procedure :: gpufortrt_map_create3_l1 - module procedure :: gpufortrt_map_create4_l1 - module procedure :: gpufortrt_map_create5_l1 - module procedure :: gpufortrt_map_create6_l1 - module procedure :: gpufortrt_map_create7_l1 - module procedure :: gpufortrt_map_create0_l4 - module procedure :: gpufortrt_map_create1_l4 - module procedure :: gpufortrt_map_create2_l4 - module procedure :: gpufortrt_map_create3_l4 - module procedure :: gpufortrt_map_create4_l4 - module procedure :: gpufortrt_map_create5_l4 - module procedure :: gpufortrt_map_create6_l4 - module procedure :: gpufortrt_map_create7_l4 - module procedure :: gpufortrt_map_create0_ch1 - module procedure :: gpufortrt_map_create1_ch1 - module procedure :: gpufortrt_map_create2_ch1 - module procedure :: gpufortrt_map_create3_ch1 - module procedure :: gpufortrt_map_create4_ch1 - module procedure :: gpufortrt_map_create5_ch1 - module procedure :: gpufortrt_map_create6_ch1 - module procedure :: gpufortrt_map_create7_ch1 - module procedure :: gpufortrt_map_create0_i1 - module procedure :: gpufortrt_map_create1_i1 - module procedure :: gpufortrt_map_create2_i1 - module procedure :: gpufortrt_map_create3_i1 - module procedure :: gpufortrt_map_create4_i1 - module procedure :: gpufortrt_map_create5_i1 - module procedure :: gpufortrt_map_create6_i1 - module procedure :: gpufortrt_map_create7_i1 - module procedure :: gpufortrt_map_create0_i2 - module procedure :: gpufortrt_map_create1_i2 - module procedure :: gpufortrt_map_create2_i2 - module procedure :: gpufortrt_map_create3_i2 - module procedure :: gpufortrt_map_create4_i2 - module procedure :: gpufortrt_map_create5_i2 - module procedure :: gpufortrt_map_create6_i2 - module procedure :: gpufortrt_map_create7_i2 - module procedure :: gpufortrt_map_create0_i4 - module procedure :: gpufortrt_map_create1_i4 - module procedure :: gpufortrt_map_create2_i4 - module procedure :: gpufortrt_map_create3_i4 - module procedure :: gpufortrt_map_create4_i4 - module procedure :: gpufortrt_map_create5_i4 - module procedure :: gpufortrt_map_create6_i4 - module procedure :: gpufortrt_map_create7_i4 - module procedure :: gpufortrt_map_create0_i8 - module procedure :: gpufortrt_map_create1_i8 - module procedure :: gpufortrt_map_create2_i8 - module procedure :: gpufortrt_map_create3_i8 - module procedure :: gpufortrt_map_create4_i8 - module procedure :: gpufortrt_map_create5_i8 - module procedure :: gpufortrt_map_create6_i8 - module procedure :: gpufortrt_map_create7_i8 - module procedure :: gpufortrt_map_create0_r4 - module procedure :: gpufortrt_map_create1_r4 - module procedure :: gpufortrt_map_create2_r4 - module procedure :: gpufortrt_map_create3_r4 - module procedure :: gpufortrt_map_create4_r4 - module procedure :: gpufortrt_map_create5_r4 - module procedure :: gpufortrt_map_create6_r4 - module procedure :: gpufortrt_map_create7_r4 - module procedure :: gpufortrt_map_create0_r8 - module procedure :: gpufortrt_map_create1_r8 - module procedure :: gpufortrt_map_create2_r8 - module procedure :: gpufortrt_map_create3_r8 - module procedure :: gpufortrt_map_create4_r8 - module procedure :: gpufortrt_map_create5_r8 - module procedure :: gpufortrt_map_create6_r8 - module procedure :: gpufortrt_map_create7_r8 - module procedure :: gpufortrt_map_create0_c4 - module procedure :: gpufortrt_map_create1_c4 - module procedure :: gpufortrt_map_create2_c4 - module procedure :: gpufortrt_map_create3_c4 - module procedure :: gpufortrt_map_create4_c4 - module procedure :: gpufortrt_map_create5_c4 - module procedure :: gpufortrt_map_create6_c4 - module procedure :: gpufortrt_map_create7_c4 - module procedure :: gpufortrt_map_create0_c8 - module procedure :: gpufortrt_map_create1_c8 - module procedure :: gpufortrt_map_create2_c8 - module procedure :: gpufortrt_map_create3_c8 - module procedure :: gpufortrt_map_create4_c8 - module procedure :: gpufortrt_map_create5_c8 - module procedure :: gpufortrt_map_create6_c8 - module procedure :: gpufortrt_map_create7_c8 - end interface - - interface gpufortrt_map_copyin - module procedure :: gpufortrt_map_copyin_b - module procedure :: gpufortrt_map_copyin0_l1 - module procedure :: gpufortrt_map_copyin1_l1 - module procedure :: gpufortrt_map_copyin2_l1 - module procedure :: gpufortrt_map_copyin3_l1 - module procedure :: gpufortrt_map_copyin4_l1 - module procedure :: gpufortrt_map_copyin5_l1 - module procedure :: gpufortrt_map_copyin6_l1 - module procedure :: gpufortrt_map_copyin7_l1 - module procedure :: gpufortrt_map_copyin0_l4 - module procedure :: gpufortrt_map_copyin1_l4 - module procedure :: gpufortrt_map_copyin2_l4 - module procedure :: gpufortrt_map_copyin3_l4 - module procedure :: gpufortrt_map_copyin4_l4 - module procedure :: gpufortrt_map_copyin5_l4 - module procedure :: gpufortrt_map_copyin6_l4 - module procedure :: gpufortrt_map_copyin7_l4 - module procedure :: gpufortrt_map_copyin0_ch1 - module procedure :: gpufortrt_map_copyin1_ch1 - module procedure :: gpufortrt_map_copyin2_ch1 - module procedure :: gpufortrt_map_copyin3_ch1 - module procedure :: gpufortrt_map_copyin4_ch1 - module procedure :: gpufortrt_map_copyin5_ch1 - module procedure :: gpufortrt_map_copyin6_ch1 - module procedure :: gpufortrt_map_copyin7_ch1 - module procedure :: gpufortrt_map_copyin0_i1 - module procedure :: gpufortrt_map_copyin1_i1 - module procedure :: gpufortrt_map_copyin2_i1 - module procedure :: gpufortrt_map_copyin3_i1 - module procedure :: gpufortrt_map_copyin4_i1 - module procedure :: gpufortrt_map_copyin5_i1 - module procedure :: gpufortrt_map_copyin6_i1 - module procedure :: gpufortrt_map_copyin7_i1 - module procedure :: gpufortrt_map_copyin0_i2 - module procedure :: gpufortrt_map_copyin1_i2 - module procedure :: gpufortrt_map_copyin2_i2 - module procedure :: gpufortrt_map_copyin3_i2 - module procedure :: gpufortrt_map_copyin4_i2 - module procedure :: gpufortrt_map_copyin5_i2 - module procedure :: gpufortrt_map_copyin6_i2 - module procedure :: gpufortrt_map_copyin7_i2 - module procedure :: gpufortrt_map_copyin0_i4 - module procedure :: gpufortrt_map_copyin1_i4 - module procedure :: gpufortrt_map_copyin2_i4 - module procedure :: gpufortrt_map_copyin3_i4 - module procedure :: gpufortrt_map_copyin4_i4 - module procedure :: gpufortrt_map_copyin5_i4 - module procedure :: gpufortrt_map_copyin6_i4 - module procedure :: gpufortrt_map_copyin7_i4 - module procedure :: gpufortrt_map_copyin0_i8 - module procedure :: gpufortrt_map_copyin1_i8 - module procedure :: gpufortrt_map_copyin2_i8 - module procedure :: gpufortrt_map_copyin3_i8 - module procedure :: gpufortrt_map_copyin4_i8 - module procedure :: gpufortrt_map_copyin5_i8 - module procedure :: gpufortrt_map_copyin6_i8 - module procedure :: gpufortrt_map_copyin7_i8 - module procedure :: gpufortrt_map_copyin0_r4 - module procedure :: gpufortrt_map_copyin1_r4 - module procedure :: gpufortrt_map_copyin2_r4 - module procedure :: gpufortrt_map_copyin3_r4 - module procedure :: gpufortrt_map_copyin4_r4 - module procedure :: gpufortrt_map_copyin5_r4 - module procedure :: gpufortrt_map_copyin6_r4 - module procedure :: gpufortrt_map_copyin7_r4 - module procedure :: gpufortrt_map_copyin0_r8 - module procedure :: gpufortrt_map_copyin1_r8 - module procedure :: gpufortrt_map_copyin2_r8 - module procedure :: gpufortrt_map_copyin3_r8 - module procedure :: gpufortrt_map_copyin4_r8 - module procedure :: gpufortrt_map_copyin5_r8 - module procedure :: gpufortrt_map_copyin6_r8 - module procedure :: gpufortrt_map_copyin7_r8 - module procedure :: gpufortrt_map_copyin0_c4 - module procedure :: gpufortrt_map_copyin1_c4 - module procedure :: gpufortrt_map_copyin2_c4 - module procedure :: gpufortrt_map_copyin3_c4 - module procedure :: gpufortrt_map_copyin4_c4 - module procedure :: gpufortrt_map_copyin5_c4 - module procedure :: gpufortrt_map_copyin6_c4 - module procedure :: gpufortrt_map_copyin7_c4 - module procedure :: gpufortrt_map_copyin0_c8 - module procedure :: gpufortrt_map_copyin1_c8 - module procedure :: gpufortrt_map_copyin2_c8 - module procedure :: gpufortrt_map_copyin3_c8 - module procedure :: gpufortrt_map_copyin4_c8 - module procedure :: gpufortrt_map_copyin5_c8 - module procedure :: gpufortrt_map_copyin6_c8 - module procedure :: gpufortrt_map_copyin7_c8 - end interface - - interface gpufortrt_map_copy - module procedure :: gpufortrt_map_copy_b - module procedure :: gpufortrt_map_copy0_l1 - module procedure :: gpufortrt_map_copy1_l1 - module procedure :: gpufortrt_map_copy2_l1 - module procedure :: gpufortrt_map_copy3_l1 - module procedure :: gpufortrt_map_copy4_l1 - module procedure :: gpufortrt_map_copy5_l1 - module procedure :: gpufortrt_map_copy6_l1 - module procedure :: gpufortrt_map_copy7_l1 - module procedure :: gpufortrt_map_copy0_l4 - module procedure :: gpufortrt_map_copy1_l4 - module procedure :: gpufortrt_map_copy2_l4 - module procedure :: gpufortrt_map_copy3_l4 - module procedure :: gpufortrt_map_copy4_l4 - module procedure :: gpufortrt_map_copy5_l4 - module procedure :: gpufortrt_map_copy6_l4 - module procedure :: gpufortrt_map_copy7_l4 - module procedure :: gpufortrt_map_copy0_ch1 - module procedure :: gpufortrt_map_copy1_ch1 - module procedure :: gpufortrt_map_copy2_ch1 - module procedure :: gpufortrt_map_copy3_ch1 - module procedure :: gpufortrt_map_copy4_ch1 - module procedure :: gpufortrt_map_copy5_ch1 - module procedure :: gpufortrt_map_copy6_ch1 - module procedure :: gpufortrt_map_copy7_ch1 - module procedure :: gpufortrt_map_copy0_i1 - module procedure :: gpufortrt_map_copy1_i1 - module procedure :: gpufortrt_map_copy2_i1 - module procedure :: gpufortrt_map_copy3_i1 - module procedure :: gpufortrt_map_copy4_i1 - module procedure :: gpufortrt_map_copy5_i1 - module procedure :: gpufortrt_map_copy6_i1 - module procedure :: gpufortrt_map_copy7_i1 - module procedure :: gpufortrt_map_copy0_i2 - module procedure :: gpufortrt_map_copy1_i2 - module procedure :: gpufortrt_map_copy2_i2 - module procedure :: gpufortrt_map_copy3_i2 - module procedure :: gpufortrt_map_copy4_i2 - module procedure :: gpufortrt_map_copy5_i2 - module procedure :: gpufortrt_map_copy6_i2 - module procedure :: gpufortrt_map_copy7_i2 - module procedure :: gpufortrt_map_copy0_i4 - module procedure :: gpufortrt_map_copy1_i4 - module procedure :: gpufortrt_map_copy2_i4 - module procedure :: gpufortrt_map_copy3_i4 - module procedure :: gpufortrt_map_copy4_i4 - module procedure :: gpufortrt_map_copy5_i4 - module procedure :: gpufortrt_map_copy6_i4 - module procedure :: gpufortrt_map_copy7_i4 - module procedure :: gpufortrt_map_copy0_i8 - module procedure :: gpufortrt_map_copy1_i8 - module procedure :: gpufortrt_map_copy2_i8 - module procedure :: gpufortrt_map_copy3_i8 - module procedure :: gpufortrt_map_copy4_i8 - module procedure :: gpufortrt_map_copy5_i8 - module procedure :: gpufortrt_map_copy6_i8 - module procedure :: gpufortrt_map_copy7_i8 - module procedure :: gpufortrt_map_copy0_r4 - module procedure :: gpufortrt_map_copy1_r4 - module procedure :: gpufortrt_map_copy2_r4 - module procedure :: gpufortrt_map_copy3_r4 - module procedure :: gpufortrt_map_copy4_r4 - module procedure :: gpufortrt_map_copy5_r4 - module procedure :: gpufortrt_map_copy6_r4 - module procedure :: gpufortrt_map_copy7_r4 - module procedure :: gpufortrt_map_copy0_r8 - module procedure :: gpufortrt_map_copy1_r8 - module procedure :: gpufortrt_map_copy2_r8 - module procedure :: gpufortrt_map_copy3_r8 - module procedure :: gpufortrt_map_copy4_r8 - module procedure :: gpufortrt_map_copy5_r8 - module procedure :: gpufortrt_map_copy6_r8 - module procedure :: gpufortrt_map_copy7_r8 - module procedure :: gpufortrt_map_copy0_c4 - module procedure :: gpufortrt_map_copy1_c4 - module procedure :: gpufortrt_map_copy2_c4 - module procedure :: gpufortrt_map_copy3_c4 - module procedure :: gpufortrt_map_copy4_c4 - module procedure :: gpufortrt_map_copy5_c4 - module procedure :: gpufortrt_map_copy6_c4 - module procedure :: gpufortrt_map_copy7_c4 - module procedure :: gpufortrt_map_copy0_c8 - module procedure :: gpufortrt_map_copy1_c8 - module procedure :: gpufortrt_map_copy2_c8 - module procedure :: gpufortrt_map_copy3_c8 - module procedure :: gpufortrt_map_copy4_c8 - module procedure :: gpufortrt_map_copy5_c8 - module procedure :: gpufortrt_map_copy6_c8 - module procedure :: gpufortrt_map_copy7_c8 - end interface - - interface gpufortrt_map_copyout - module procedure :: gpufortrt_map_copyout_b - module procedure :: gpufortrt_map_copyout0_l1 - module procedure :: gpufortrt_map_copyout1_l1 - module procedure :: gpufortrt_map_copyout2_l1 - module procedure :: gpufortrt_map_copyout3_l1 - module procedure :: gpufortrt_map_copyout4_l1 - module procedure :: gpufortrt_map_copyout5_l1 - module procedure :: gpufortrt_map_copyout6_l1 - module procedure :: gpufortrt_map_copyout7_l1 - module procedure :: gpufortrt_map_copyout0_l4 - module procedure :: gpufortrt_map_copyout1_l4 - module procedure :: gpufortrt_map_copyout2_l4 - module procedure :: gpufortrt_map_copyout3_l4 - module procedure :: gpufortrt_map_copyout4_l4 - module procedure :: gpufortrt_map_copyout5_l4 - module procedure :: gpufortrt_map_copyout6_l4 - module procedure :: gpufortrt_map_copyout7_l4 - module procedure :: gpufortrt_map_copyout0_ch1 - module procedure :: gpufortrt_map_copyout1_ch1 - module procedure :: gpufortrt_map_copyout2_ch1 - module procedure :: gpufortrt_map_copyout3_ch1 - module procedure :: gpufortrt_map_copyout4_ch1 - module procedure :: gpufortrt_map_copyout5_ch1 - module procedure :: gpufortrt_map_copyout6_ch1 - module procedure :: gpufortrt_map_copyout7_ch1 - module procedure :: gpufortrt_map_copyout0_i1 - module procedure :: gpufortrt_map_copyout1_i1 - module procedure :: gpufortrt_map_copyout2_i1 - module procedure :: gpufortrt_map_copyout3_i1 - module procedure :: gpufortrt_map_copyout4_i1 - module procedure :: gpufortrt_map_copyout5_i1 - module procedure :: gpufortrt_map_copyout6_i1 - module procedure :: gpufortrt_map_copyout7_i1 - module procedure :: gpufortrt_map_copyout0_i2 - module procedure :: gpufortrt_map_copyout1_i2 - module procedure :: gpufortrt_map_copyout2_i2 - module procedure :: gpufortrt_map_copyout3_i2 - module procedure :: gpufortrt_map_copyout4_i2 - module procedure :: gpufortrt_map_copyout5_i2 - module procedure :: gpufortrt_map_copyout6_i2 - module procedure :: gpufortrt_map_copyout7_i2 - module procedure :: gpufortrt_map_copyout0_i4 - module procedure :: gpufortrt_map_copyout1_i4 - module procedure :: gpufortrt_map_copyout2_i4 - module procedure :: gpufortrt_map_copyout3_i4 - module procedure :: gpufortrt_map_copyout4_i4 - module procedure :: gpufortrt_map_copyout5_i4 - module procedure :: gpufortrt_map_copyout6_i4 - module procedure :: gpufortrt_map_copyout7_i4 - module procedure :: gpufortrt_map_copyout0_i8 - module procedure :: gpufortrt_map_copyout1_i8 - module procedure :: gpufortrt_map_copyout2_i8 - module procedure :: gpufortrt_map_copyout3_i8 - module procedure :: gpufortrt_map_copyout4_i8 - module procedure :: gpufortrt_map_copyout5_i8 - module procedure :: gpufortrt_map_copyout6_i8 - module procedure :: gpufortrt_map_copyout7_i8 - module procedure :: gpufortrt_map_copyout0_r4 - module procedure :: gpufortrt_map_copyout1_r4 - module procedure :: gpufortrt_map_copyout2_r4 - module procedure :: gpufortrt_map_copyout3_r4 - module procedure :: gpufortrt_map_copyout4_r4 - module procedure :: gpufortrt_map_copyout5_r4 - module procedure :: gpufortrt_map_copyout6_r4 - module procedure :: gpufortrt_map_copyout7_r4 - module procedure :: gpufortrt_map_copyout0_r8 - module procedure :: gpufortrt_map_copyout1_r8 - module procedure :: gpufortrt_map_copyout2_r8 - module procedure :: gpufortrt_map_copyout3_r8 - module procedure :: gpufortrt_map_copyout4_r8 - module procedure :: gpufortrt_map_copyout5_r8 - module procedure :: gpufortrt_map_copyout6_r8 - module procedure :: gpufortrt_map_copyout7_r8 - module procedure :: gpufortrt_map_copyout0_c4 - module procedure :: gpufortrt_map_copyout1_c4 - module procedure :: gpufortrt_map_copyout2_c4 - module procedure :: gpufortrt_map_copyout3_c4 - module procedure :: gpufortrt_map_copyout4_c4 - module procedure :: gpufortrt_map_copyout5_c4 - module procedure :: gpufortrt_map_copyout6_c4 - module procedure :: gpufortrt_map_copyout7_c4 - module procedure :: gpufortrt_map_copyout0_c8 - module procedure :: gpufortrt_map_copyout1_c8 - module procedure :: gpufortrt_map_copyout2_c8 - module procedure :: gpufortrt_map_copyout3_c8 - module procedure :: gpufortrt_map_copyout4_c8 - module procedure :: gpufortrt_map_copyout5_c8 - module procedure :: gpufortrt_map_copyout6_c8 - module procedure :: gpufortrt_map_copyout7_c8 - end interface + use gpufortrt_types - interface gpufortrt_map_delete - module procedure :: gpufortrt_map_delete_b - module procedure :: gpufortrt_map_delete0_l1 - module procedure :: gpufortrt_map_delete1_l1 - module procedure :: gpufortrt_map_delete2_l1 - module procedure :: gpufortrt_map_delete3_l1 - module procedure :: gpufortrt_map_delete4_l1 - module procedure :: gpufortrt_map_delete5_l1 - module procedure :: gpufortrt_map_delete6_l1 - module procedure :: gpufortrt_map_delete7_l1 - module procedure :: gpufortrt_map_delete0_l4 - module procedure :: gpufortrt_map_delete1_l4 - module procedure :: gpufortrt_map_delete2_l4 - module procedure :: gpufortrt_map_delete3_l4 - module procedure :: gpufortrt_map_delete4_l4 - module procedure :: gpufortrt_map_delete5_l4 - module procedure :: gpufortrt_map_delete6_l4 - module procedure :: gpufortrt_map_delete7_l4 - module procedure :: gpufortrt_map_delete0_ch1 - module procedure :: gpufortrt_map_delete1_ch1 - module procedure :: gpufortrt_map_delete2_ch1 - module procedure :: gpufortrt_map_delete3_ch1 - module procedure :: gpufortrt_map_delete4_ch1 - module procedure :: gpufortrt_map_delete5_ch1 - module procedure :: gpufortrt_map_delete6_ch1 - module procedure :: gpufortrt_map_delete7_ch1 - module procedure :: gpufortrt_map_delete0_i1 - module procedure :: gpufortrt_map_delete1_i1 - module procedure :: gpufortrt_map_delete2_i1 - module procedure :: gpufortrt_map_delete3_i1 - module procedure :: gpufortrt_map_delete4_i1 - module procedure :: gpufortrt_map_delete5_i1 - module procedure :: gpufortrt_map_delete6_i1 - module procedure :: gpufortrt_map_delete7_i1 - module procedure :: gpufortrt_map_delete0_i2 - module procedure :: gpufortrt_map_delete1_i2 - module procedure :: gpufortrt_map_delete2_i2 - module procedure :: gpufortrt_map_delete3_i2 - module procedure :: gpufortrt_map_delete4_i2 - module procedure :: gpufortrt_map_delete5_i2 - module procedure :: gpufortrt_map_delete6_i2 - module procedure :: gpufortrt_map_delete7_i2 - module procedure :: gpufortrt_map_delete0_i4 - module procedure :: gpufortrt_map_delete1_i4 - module procedure :: gpufortrt_map_delete2_i4 - module procedure :: gpufortrt_map_delete3_i4 - module procedure :: gpufortrt_map_delete4_i4 - module procedure :: gpufortrt_map_delete5_i4 - module procedure :: gpufortrt_map_delete6_i4 - module procedure :: gpufortrt_map_delete7_i4 - module procedure :: gpufortrt_map_delete0_i8 - module procedure :: gpufortrt_map_delete1_i8 - module procedure :: gpufortrt_map_delete2_i8 - module procedure :: gpufortrt_map_delete3_i8 - module procedure :: gpufortrt_map_delete4_i8 - module procedure :: gpufortrt_map_delete5_i8 - module procedure :: gpufortrt_map_delete6_i8 - module procedure :: gpufortrt_map_delete7_i8 - module procedure :: gpufortrt_map_delete0_r4 - module procedure :: gpufortrt_map_delete1_r4 - module procedure :: gpufortrt_map_delete2_r4 - module procedure :: gpufortrt_map_delete3_r4 - module procedure :: gpufortrt_map_delete4_r4 - module procedure :: gpufortrt_map_delete5_r4 - module procedure :: gpufortrt_map_delete6_r4 - module procedure :: gpufortrt_map_delete7_r4 - module procedure :: gpufortrt_map_delete0_r8 - module procedure :: gpufortrt_map_delete1_r8 - module procedure :: gpufortrt_map_delete2_r8 - module procedure :: gpufortrt_map_delete3_r8 - module procedure :: gpufortrt_map_delete4_r8 - module procedure :: gpufortrt_map_delete5_r8 - module procedure :: gpufortrt_map_delete6_r8 - module procedure :: gpufortrt_map_delete7_r8 - module procedure :: gpufortrt_map_delete0_c4 - module procedure :: gpufortrt_map_delete1_c4 - module procedure :: gpufortrt_map_delete2_c4 - module procedure :: gpufortrt_map_delete3_c4 - module procedure :: gpufortrt_map_delete4_c4 - module procedure :: gpufortrt_map_delete5_c4 - module procedure :: gpufortrt_map_delete6_c4 - module procedure :: gpufortrt_map_delete7_c4 - module procedure :: gpufortrt_map_delete0_c8 - module procedure :: gpufortrt_map_delete1_c8 - module procedure :: gpufortrt_map_delete2_c8 - module procedure :: gpufortrt_map_delete3_c8 - module procedure :: gpufortrt_map_delete4_c8 - module procedure :: gpufortrt_map_delete5_c8 - module procedure :: gpufortrt_map_delete6_c8 - module procedure :: gpufortrt_map_delete7_c8 + interface + subroutine gpufortrt_init() bind(c,name="gpufortrt_init") + implicit none + end subroutine + + subroutine gpufortrt_shutdown() bind(c,name="gpufortrt_shutdown") + implicit none + end subroutine + + function gpufortrt_get_stream(async_arg) & + bind(c,name="gpufortrt_get_stream") & + result(stream) + use iso_c_binding, only: c_ptr + use gpufortrt_types, only: gpufortrt_handle_kind + implicit none + integer(gpufortrt_handle_kind),value,intent(in) :: async_arg + ! + type(c_ptr) :: stream + end function end interface - - - + interface gpufortrt_present - module procedure :: gpufortrt_present0_l1 - module procedure :: gpufortrt_present1_l1 - module procedure :: gpufortrt_present2_l1 - module procedure :: gpufortrt_present3_l1 - module procedure :: gpufortrt_present4_l1 - module procedure :: gpufortrt_present5_l1 - module procedure :: gpufortrt_present6_l1 - module procedure :: gpufortrt_present7_l1 - module procedure :: gpufortrt_present0_l4 - module procedure :: gpufortrt_present1_l4 - module procedure :: gpufortrt_present2_l4 - module procedure :: gpufortrt_present3_l4 - module procedure :: gpufortrt_present4_l4 - module procedure :: gpufortrt_present5_l4 - module procedure :: gpufortrt_present6_l4 - module procedure :: gpufortrt_present7_l4 - module procedure :: gpufortrt_present0_ch1 - module procedure :: gpufortrt_present1_ch1 - module procedure :: gpufortrt_present2_ch1 - module procedure :: gpufortrt_present3_ch1 - module procedure :: gpufortrt_present4_ch1 - module procedure :: gpufortrt_present5_ch1 - module procedure :: gpufortrt_present6_ch1 - module procedure :: gpufortrt_present7_ch1 - module procedure :: gpufortrt_present0_i1 - module procedure :: gpufortrt_present1_i1 - module procedure :: gpufortrt_present2_i1 - module procedure :: gpufortrt_present3_i1 - module procedure :: gpufortrt_present4_i1 - module procedure :: gpufortrt_present5_i1 - module procedure :: gpufortrt_present6_i1 - module procedure :: gpufortrt_present7_i1 - module procedure :: gpufortrt_present0_i2 - module procedure :: gpufortrt_present1_i2 - module procedure :: gpufortrt_present2_i2 - module procedure :: gpufortrt_present3_i2 - module procedure :: gpufortrt_present4_i2 - module procedure :: gpufortrt_present5_i2 - module procedure :: gpufortrt_present6_i2 - module procedure :: gpufortrt_present7_i2 - module procedure :: gpufortrt_present0_i4 - module procedure :: gpufortrt_present1_i4 - module procedure :: gpufortrt_present2_i4 - module procedure :: gpufortrt_present3_i4 - module procedure :: gpufortrt_present4_i4 - module procedure :: gpufortrt_present5_i4 - module procedure :: gpufortrt_present6_i4 - module procedure :: gpufortrt_present7_i4 - module procedure :: gpufortrt_present0_i8 - module procedure :: gpufortrt_present1_i8 - module procedure :: gpufortrt_present2_i8 - module procedure :: gpufortrt_present3_i8 - module procedure :: gpufortrt_present4_i8 - module procedure :: gpufortrt_present5_i8 - module procedure :: gpufortrt_present6_i8 - module procedure :: gpufortrt_present7_i8 - module procedure :: gpufortrt_present0_r4 - module procedure :: gpufortrt_present1_r4 - module procedure :: gpufortrt_present2_r4 - module procedure :: gpufortrt_present3_r4 - module procedure :: gpufortrt_present4_r4 - module procedure :: gpufortrt_present5_r4 - module procedure :: gpufortrt_present6_r4 - module procedure :: gpufortrt_present7_r4 - module procedure :: gpufortrt_present0_r8 - module procedure :: gpufortrt_present1_r8 - module procedure :: gpufortrt_present2_r8 - module procedure :: gpufortrt_present3_r8 - module procedure :: gpufortrt_present4_r8 - module procedure :: gpufortrt_present5_r8 - module procedure :: gpufortrt_present6_r8 - module procedure :: gpufortrt_present7_r8 - module procedure :: gpufortrt_present0_c4 - module procedure :: gpufortrt_present1_c4 - module procedure :: gpufortrt_present2_c4 - module procedure :: gpufortrt_present3_c4 - module procedure :: gpufortrt_present4_c4 - module procedure :: gpufortrt_present5_c4 - module procedure :: gpufortrt_present6_c4 - module procedure :: gpufortrt_present7_c4 - module procedure :: gpufortrt_present0_c8 - module procedure :: gpufortrt_present1_c8 - module procedure :: gpufortrt_present2_c8 - module procedure :: gpufortrt_present3_c8 - module procedure :: gpufortrt_present4_c8 - module procedure :: gpufortrt_present5_c8 - module procedure :: gpufortrt_present6_c8 - module procedure :: gpufortrt_present7_c8 - end interface - - - interface gpufortrt_create - module procedure :: gpufortrt_create_b - module procedure :: gpufortrt_create0_l1 - module procedure :: gpufortrt_create1_l1 - module procedure :: gpufortrt_create2_l1 - module procedure :: gpufortrt_create3_l1 - module procedure :: gpufortrt_create4_l1 - module procedure :: gpufortrt_create5_l1 - module procedure :: gpufortrt_create6_l1 - module procedure :: gpufortrt_create7_l1 - module procedure :: gpufortrt_create0_l4 - module procedure :: gpufortrt_create1_l4 - module procedure :: gpufortrt_create2_l4 - module procedure :: gpufortrt_create3_l4 - module procedure :: gpufortrt_create4_l4 - module procedure :: gpufortrt_create5_l4 - module procedure :: gpufortrt_create6_l4 - module procedure :: gpufortrt_create7_l4 - module procedure :: gpufortrt_create0_ch1 - module procedure :: gpufortrt_create1_ch1 - module procedure :: gpufortrt_create2_ch1 - module procedure :: gpufortrt_create3_ch1 - module procedure :: gpufortrt_create4_ch1 - module procedure :: gpufortrt_create5_ch1 - module procedure :: gpufortrt_create6_ch1 - module procedure :: gpufortrt_create7_ch1 - module procedure :: gpufortrt_create0_i1 - module procedure :: gpufortrt_create1_i1 - module procedure :: gpufortrt_create2_i1 - module procedure :: gpufortrt_create3_i1 - module procedure :: gpufortrt_create4_i1 - module procedure :: gpufortrt_create5_i1 - module procedure :: gpufortrt_create6_i1 - module procedure :: gpufortrt_create7_i1 - module procedure :: gpufortrt_create0_i2 - module procedure :: gpufortrt_create1_i2 - module procedure :: gpufortrt_create2_i2 - module procedure :: gpufortrt_create3_i2 - module procedure :: gpufortrt_create4_i2 - module procedure :: gpufortrt_create5_i2 - module procedure :: gpufortrt_create6_i2 - module procedure :: gpufortrt_create7_i2 - module procedure :: gpufortrt_create0_i4 - module procedure :: gpufortrt_create1_i4 - module procedure :: gpufortrt_create2_i4 - module procedure :: gpufortrt_create3_i4 - module procedure :: gpufortrt_create4_i4 - module procedure :: gpufortrt_create5_i4 - module procedure :: gpufortrt_create6_i4 - module procedure :: gpufortrt_create7_i4 - module procedure :: gpufortrt_create0_i8 - module procedure :: gpufortrt_create1_i8 - module procedure :: gpufortrt_create2_i8 - module procedure :: gpufortrt_create3_i8 - module procedure :: gpufortrt_create4_i8 - module procedure :: gpufortrt_create5_i8 - module procedure :: gpufortrt_create6_i8 - module procedure :: gpufortrt_create7_i8 - module procedure :: gpufortrt_create0_r4 - module procedure :: gpufortrt_create1_r4 - module procedure :: gpufortrt_create2_r4 - module procedure :: gpufortrt_create3_r4 - module procedure :: gpufortrt_create4_r4 - module procedure :: gpufortrt_create5_r4 - module procedure :: gpufortrt_create6_r4 - module procedure :: gpufortrt_create7_r4 - module procedure :: gpufortrt_create0_r8 - module procedure :: gpufortrt_create1_r8 - module procedure :: gpufortrt_create2_r8 - module procedure :: gpufortrt_create3_r8 - module procedure :: gpufortrt_create4_r8 - module procedure :: gpufortrt_create5_r8 - module procedure :: gpufortrt_create6_r8 - module procedure :: gpufortrt_create7_r8 - module procedure :: gpufortrt_create0_c4 - module procedure :: gpufortrt_create1_c4 - module procedure :: gpufortrt_create2_c4 - module procedure :: gpufortrt_create3_c4 - module procedure :: gpufortrt_create4_c4 - module procedure :: gpufortrt_create5_c4 - module procedure :: gpufortrt_create6_c4 - module procedure :: gpufortrt_create7_c4 - module procedure :: gpufortrt_create0_c8 - module procedure :: gpufortrt_create1_c8 - module procedure :: gpufortrt_create2_c8 - module procedure :: gpufortrt_create3_c8 - module procedure :: gpufortrt_create4_c8 - module procedure :: gpufortrt_create5_c8 - module procedure :: gpufortrt_create6_c8 - module procedure :: gpufortrt_create7_c8 - end interface - - - interface gpufortrt_copyin - module procedure :: gpufortrt_copyin_b - module procedure :: gpufortrt_copyin0_l1 - module procedure :: gpufortrt_copyin1_l1 - module procedure :: gpufortrt_copyin2_l1 - module procedure :: gpufortrt_copyin3_l1 - module procedure :: gpufortrt_copyin4_l1 - module procedure :: gpufortrt_copyin5_l1 - module procedure :: gpufortrt_copyin6_l1 - module procedure :: gpufortrt_copyin7_l1 - module procedure :: gpufortrt_copyin0_l4 - module procedure :: gpufortrt_copyin1_l4 - module procedure :: gpufortrt_copyin2_l4 - module procedure :: gpufortrt_copyin3_l4 - module procedure :: gpufortrt_copyin4_l4 - module procedure :: gpufortrt_copyin5_l4 - module procedure :: gpufortrt_copyin6_l4 - module procedure :: gpufortrt_copyin7_l4 - module procedure :: gpufortrt_copyin0_ch1 - module procedure :: gpufortrt_copyin1_ch1 - module procedure :: gpufortrt_copyin2_ch1 - module procedure :: gpufortrt_copyin3_ch1 - module procedure :: gpufortrt_copyin4_ch1 - module procedure :: gpufortrt_copyin5_ch1 - module procedure :: gpufortrt_copyin6_ch1 - module procedure :: gpufortrt_copyin7_ch1 - module procedure :: gpufortrt_copyin0_i1 - module procedure :: gpufortrt_copyin1_i1 - module procedure :: gpufortrt_copyin2_i1 - module procedure :: gpufortrt_copyin3_i1 - module procedure :: gpufortrt_copyin4_i1 - module procedure :: gpufortrt_copyin5_i1 - module procedure :: gpufortrt_copyin6_i1 - module procedure :: gpufortrt_copyin7_i1 - module procedure :: gpufortrt_copyin0_i2 - module procedure :: gpufortrt_copyin1_i2 - module procedure :: gpufortrt_copyin2_i2 - module procedure :: gpufortrt_copyin3_i2 - module procedure :: gpufortrt_copyin4_i2 - module procedure :: gpufortrt_copyin5_i2 - module procedure :: gpufortrt_copyin6_i2 - module procedure :: gpufortrt_copyin7_i2 - module procedure :: gpufortrt_copyin0_i4 - module procedure :: gpufortrt_copyin1_i4 - module procedure :: gpufortrt_copyin2_i4 - module procedure :: gpufortrt_copyin3_i4 - module procedure :: gpufortrt_copyin4_i4 - module procedure :: gpufortrt_copyin5_i4 - module procedure :: gpufortrt_copyin6_i4 - module procedure :: gpufortrt_copyin7_i4 - module procedure :: gpufortrt_copyin0_i8 - module procedure :: gpufortrt_copyin1_i8 - module procedure :: gpufortrt_copyin2_i8 - module procedure :: gpufortrt_copyin3_i8 - module procedure :: gpufortrt_copyin4_i8 - module procedure :: gpufortrt_copyin5_i8 - module procedure :: gpufortrt_copyin6_i8 - module procedure :: gpufortrt_copyin7_i8 - module procedure :: gpufortrt_copyin0_r4 - module procedure :: gpufortrt_copyin1_r4 - module procedure :: gpufortrt_copyin2_r4 - module procedure :: gpufortrt_copyin3_r4 - module procedure :: gpufortrt_copyin4_r4 - module procedure :: gpufortrt_copyin5_r4 - module procedure :: gpufortrt_copyin6_r4 - module procedure :: gpufortrt_copyin7_r4 - module procedure :: gpufortrt_copyin0_r8 - module procedure :: gpufortrt_copyin1_r8 - module procedure :: gpufortrt_copyin2_r8 - module procedure :: gpufortrt_copyin3_r8 - module procedure :: gpufortrt_copyin4_r8 - module procedure :: gpufortrt_copyin5_r8 - module procedure :: gpufortrt_copyin6_r8 - module procedure :: gpufortrt_copyin7_r8 - module procedure :: gpufortrt_copyin0_c4 - module procedure :: gpufortrt_copyin1_c4 - module procedure :: gpufortrt_copyin2_c4 - module procedure :: gpufortrt_copyin3_c4 - module procedure :: gpufortrt_copyin4_c4 - module procedure :: gpufortrt_copyin5_c4 - module procedure :: gpufortrt_copyin6_c4 - module procedure :: gpufortrt_copyin7_c4 - module procedure :: gpufortrt_copyin0_c8 - module procedure :: gpufortrt_copyin1_c8 - module procedure :: gpufortrt_copyin2_c8 - module procedure :: gpufortrt_copyin3_c8 - module procedure :: gpufortrt_copyin4_c8 - module procedure :: gpufortrt_copyin5_c8 - module procedure :: gpufortrt_copyin6_c8 - module procedure :: gpufortrt_copyin7_c8 - end interface - - - - interface gpufortrt_delete - module procedure :: gpufortrt_delete_b - module procedure :: gpufortrt_delete0_l1 - module procedure :: gpufortrt_delete1_l1 - module procedure :: gpufortrt_delete2_l1 - module procedure :: gpufortrt_delete3_l1 - module procedure :: gpufortrt_delete4_l1 - module procedure :: gpufortrt_delete5_l1 - module procedure :: gpufortrt_delete6_l1 - module procedure :: gpufortrt_delete7_l1 - module procedure :: gpufortrt_delete0_l4 - module procedure :: gpufortrt_delete1_l4 - module procedure :: gpufortrt_delete2_l4 - module procedure :: gpufortrt_delete3_l4 - module procedure :: gpufortrt_delete4_l4 - module procedure :: gpufortrt_delete5_l4 - module procedure :: gpufortrt_delete6_l4 - module procedure :: gpufortrt_delete7_l4 - module procedure :: gpufortrt_delete0_ch1 - module procedure :: gpufortrt_delete1_ch1 - module procedure :: gpufortrt_delete2_ch1 - module procedure :: gpufortrt_delete3_ch1 - module procedure :: gpufortrt_delete4_ch1 - module procedure :: gpufortrt_delete5_ch1 - module procedure :: gpufortrt_delete6_ch1 - module procedure :: gpufortrt_delete7_ch1 - module procedure :: gpufortrt_delete0_i1 - module procedure :: gpufortrt_delete1_i1 - module procedure :: gpufortrt_delete2_i1 - module procedure :: gpufortrt_delete3_i1 - module procedure :: gpufortrt_delete4_i1 - module procedure :: gpufortrt_delete5_i1 - module procedure :: gpufortrt_delete6_i1 - module procedure :: gpufortrt_delete7_i1 - module procedure :: gpufortrt_delete0_i2 - module procedure :: gpufortrt_delete1_i2 - module procedure :: gpufortrt_delete2_i2 - module procedure :: gpufortrt_delete3_i2 - module procedure :: gpufortrt_delete4_i2 - module procedure :: gpufortrt_delete5_i2 - module procedure :: gpufortrt_delete6_i2 - module procedure :: gpufortrt_delete7_i2 - module procedure :: gpufortrt_delete0_i4 - module procedure :: gpufortrt_delete1_i4 - module procedure :: gpufortrt_delete2_i4 - module procedure :: gpufortrt_delete3_i4 - module procedure :: gpufortrt_delete4_i4 - module procedure :: gpufortrt_delete5_i4 - module procedure :: gpufortrt_delete6_i4 - module procedure :: gpufortrt_delete7_i4 - module procedure :: gpufortrt_delete0_i8 - module procedure :: gpufortrt_delete1_i8 - module procedure :: gpufortrt_delete2_i8 - module procedure :: gpufortrt_delete3_i8 - module procedure :: gpufortrt_delete4_i8 - module procedure :: gpufortrt_delete5_i8 - module procedure :: gpufortrt_delete6_i8 - module procedure :: gpufortrt_delete7_i8 - module procedure :: gpufortrt_delete0_r4 - module procedure :: gpufortrt_delete1_r4 - module procedure :: gpufortrt_delete2_r4 - module procedure :: gpufortrt_delete3_r4 - module procedure :: gpufortrt_delete4_r4 - module procedure :: gpufortrt_delete5_r4 - module procedure :: gpufortrt_delete6_r4 - module procedure :: gpufortrt_delete7_r4 - module procedure :: gpufortrt_delete0_r8 - module procedure :: gpufortrt_delete1_r8 - module procedure :: gpufortrt_delete2_r8 - module procedure :: gpufortrt_delete3_r8 - module procedure :: gpufortrt_delete4_r8 - module procedure :: gpufortrt_delete5_r8 - module procedure :: gpufortrt_delete6_r8 - module procedure :: gpufortrt_delete7_r8 - module procedure :: gpufortrt_delete0_c4 - module procedure :: gpufortrt_delete1_c4 - module procedure :: gpufortrt_delete2_c4 - module procedure :: gpufortrt_delete3_c4 - module procedure :: gpufortrt_delete4_c4 - module procedure :: gpufortrt_delete5_c4 - module procedure :: gpufortrt_delete6_c4 - module procedure :: gpufortrt_delete7_c4 - module procedure :: gpufortrt_delete0_c8 - module procedure :: gpufortrt_delete1_c8 - module procedure :: gpufortrt_delete2_c8 - module procedure :: gpufortrt_delete3_c8 - module procedure :: gpufortrt_delete4_c8 - module procedure :: gpufortrt_delete5_c8 - module procedure :: gpufortrt_delete6_c8 - module procedure :: gpufortrt_delete7_c8 + module procedure :: gpufortrt_present_b + module procedure :: gpufortrt_present_nb end interface - interface gpufortrt_copyout - module procedure :: gpufortrt_copyout_b - module procedure :: gpufortrt_copyout0_l1 - module procedure :: gpufortrt_copyout1_l1 - module procedure :: gpufortrt_copyout2_l1 - module procedure :: gpufortrt_copyout3_l1 - module procedure :: gpufortrt_copyout4_l1 - module procedure :: gpufortrt_copyout5_l1 - module procedure :: gpufortrt_copyout6_l1 - module procedure :: gpufortrt_copyout7_l1 - module procedure :: gpufortrt_copyout0_l4 - module procedure :: gpufortrt_copyout1_l4 - module procedure :: gpufortrt_copyout2_l4 - module procedure :: gpufortrt_copyout3_l4 - module procedure :: gpufortrt_copyout4_l4 - module procedure :: gpufortrt_copyout5_l4 - module procedure :: gpufortrt_copyout6_l4 - module procedure :: gpufortrt_copyout7_l4 - module procedure :: gpufortrt_copyout0_ch1 - module procedure :: gpufortrt_copyout1_ch1 - module procedure :: gpufortrt_copyout2_ch1 - module procedure :: gpufortrt_copyout3_ch1 - module procedure :: gpufortrt_copyout4_ch1 - module procedure :: gpufortrt_copyout5_ch1 - module procedure :: gpufortrt_copyout6_ch1 - module procedure :: gpufortrt_copyout7_ch1 - module procedure :: gpufortrt_copyout0_i1 - module procedure :: gpufortrt_copyout1_i1 - module procedure :: gpufortrt_copyout2_i1 - module procedure :: gpufortrt_copyout3_i1 - module procedure :: gpufortrt_copyout4_i1 - module procedure :: gpufortrt_copyout5_i1 - module procedure :: gpufortrt_copyout6_i1 - module procedure :: gpufortrt_copyout7_i1 - module procedure :: gpufortrt_copyout0_i2 - module procedure :: gpufortrt_copyout1_i2 - module procedure :: gpufortrt_copyout2_i2 - module procedure :: gpufortrt_copyout3_i2 - module procedure :: gpufortrt_copyout4_i2 - module procedure :: gpufortrt_copyout5_i2 - module procedure :: gpufortrt_copyout6_i2 - module procedure :: gpufortrt_copyout7_i2 - module procedure :: gpufortrt_copyout0_i4 - module procedure :: gpufortrt_copyout1_i4 - module procedure :: gpufortrt_copyout2_i4 - module procedure :: gpufortrt_copyout3_i4 - module procedure :: gpufortrt_copyout4_i4 - module procedure :: gpufortrt_copyout5_i4 - module procedure :: gpufortrt_copyout6_i4 - module procedure :: gpufortrt_copyout7_i4 - module procedure :: gpufortrt_copyout0_i8 - module procedure :: gpufortrt_copyout1_i8 - module procedure :: gpufortrt_copyout2_i8 - module procedure :: gpufortrt_copyout3_i8 - module procedure :: gpufortrt_copyout4_i8 - module procedure :: gpufortrt_copyout5_i8 - module procedure :: gpufortrt_copyout6_i8 - module procedure :: gpufortrt_copyout7_i8 - module procedure :: gpufortrt_copyout0_r4 - module procedure :: gpufortrt_copyout1_r4 - module procedure :: gpufortrt_copyout2_r4 - module procedure :: gpufortrt_copyout3_r4 - module procedure :: gpufortrt_copyout4_r4 - module procedure :: gpufortrt_copyout5_r4 - module procedure :: gpufortrt_copyout6_r4 - module procedure :: gpufortrt_copyout7_r4 - module procedure :: gpufortrt_copyout0_r8 - module procedure :: gpufortrt_copyout1_r8 - module procedure :: gpufortrt_copyout2_r8 - module procedure :: gpufortrt_copyout3_r8 - module procedure :: gpufortrt_copyout4_r8 - module procedure :: gpufortrt_copyout5_r8 - module procedure :: gpufortrt_copyout6_r8 - module procedure :: gpufortrt_copyout7_r8 - module procedure :: gpufortrt_copyout0_c4 - module procedure :: gpufortrt_copyout1_c4 - module procedure :: gpufortrt_copyout2_c4 - module procedure :: gpufortrt_copyout3_c4 - module procedure :: gpufortrt_copyout4_c4 - module procedure :: gpufortrt_copyout5_c4 - module procedure :: gpufortrt_copyout6_c4 - module procedure :: gpufortrt_copyout7_c4 - module procedure :: gpufortrt_copyout0_c8 - module procedure :: gpufortrt_copyout1_c8 - module procedure :: gpufortrt_copyout2_c8 - module procedure :: gpufortrt_copyout3_c8 - module procedure :: gpufortrt_copyout4_c8 - module procedure :: gpufortrt_copyout5_c8 - module procedure :: gpufortrt_copyout6_c8 - module procedure :: gpufortrt_copyout7_c8 - end interface - - - interface gpufortrt_update_self - module procedure :: gpufortrt_update_self_b - module procedure :: gpufortrt_update_self0_l1 - module procedure :: gpufortrt_update_self1_l1 - module procedure :: gpufortrt_update_self2_l1 - module procedure :: gpufortrt_update_self3_l1 - module procedure :: gpufortrt_update_self4_l1 - module procedure :: gpufortrt_update_self5_l1 - module procedure :: gpufortrt_update_self6_l1 - module procedure :: gpufortrt_update_self7_l1 - module procedure :: gpufortrt_update_self0_l4 - module procedure :: gpufortrt_update_self1_l4 - module procedure :: gpufortrt_update_self2_l4 - module procedure :: gpufortrt_update_self3_l4 - module procedure :: gpufortrt_update_self4_l4 - module procedure :: gpufortrt_update_self5_l4 - module procedure :: gpufortrt_update_self6_l4 - module procedure :: gpufortrt_update_self7_l4 - module procedure :: gpufortrt_update_self0_ch1 - module procedure :: gpufortrt_update_self1_ch1 - module procedure :: gpufortrt_update_self2_ch1 - module procedure :: gpufortrt_update_self3_ch1 - module procedure :: gpufortrt_update_self4_ch1 - module procedure :: gpufortrt_update_self5_ch1 - module procedure :: gpufortrt_update_self6_ch1 - module procedure :: gpufortrt_update_self7_ch1 - module procedure :: gpufortrt_update_self0_i1 - module procedure :: gpufortrt_update_self1_i1 - module procedure :: gpufortrt_update_self2_i1 - module procedure :: gpufortrt_update_self3_i1 - module procedure :: gpufortrt_update_self4_i1 - module procedure :: gpufortrt_update_self5_i1 - module procedure :: gpufortrt_update_self6_i1 - module procedure :: gpufortrt_update_self7_i1 - module procedure :: gpufortrt_update_self0_i2 - module procedure :: gpufortrt_update_self1_i2 - module procedure :: gpufortrt_update_self2_i2 - module procedure :: gpufortrt_update_self3_i2 - module procedure :: gpufortrt_update_self4_i2 - module procedure :: gpufortrt_update_self5_i2 - module procedure :: gpufortrt_update_self6_i2 - module procedure :: gpufortrt_update_self7_i2 - module procedure :: gpufortrt_update_self0_i4 - module procedure :: gpufortrt_update_self1_i4 - module procedure :: gpufortrt_update_self2_i4 - module procedure :: gpufortrt_update_self3_i4 - module procedure :: gpufortrt_update_self4_i4 - module procedure :: gpufortrt_update_self5_i4 - module procedure :: gpufortrt_update_self6_i4 - module procedure :: gpufortrt_update_self7_i4 - module procedure :: gpufortrt_update_self0_i8 - module procedure :: gpufortrt_update_self1_i8 - module procedure :: gpufortrt_update_self2_i8 - module procedure :: gpufortrt_update_self3_i8 - module procedure :: gpufortrt_update_self4_i8 - module procedure :: gpufortrt_update_self5_i8 - module procedure :: gpufortrt_update_self6_i8 - module procedure :: gpufortrt_update_self7_i8 - module procedure :: gpufortrt_update_self0_r4 - module procedure :: gpufortrt_update_self1_r4 - module procedure :: gpufortrt_update_self2_r4 - module procedure :: gpufortrt_update_self3_r4 - module procedure :: gpufortrt_update_self4_r4 - module procedure :: gpufortrt_update_self5_r4 - module procedure :: gpufortrt_update_self6_r4 - module procedure :: gpufortrt_update_self7_r4 - module procedure :: gpufortrt_update_self0_r8 - module procedure :: gpufortrt_update_self1_r8 - module procedure :: gpufortrt_update_self2_r8 - module procedure :: gpufortrt_update_self3_r8 - module procedure :: gpufortrt_update_self4_r8 - module procedure :: gpufortrt_update_self5_r8 - module procedure :: gpufortrt_update_self6_r8 - module procedure :: gpufortrt_update_self7_r8 - module procedure :: gpufortrt_update_self0_c4 - module procedure :: gpufortrt_update_self1_c4 - module procedure :: gpufortrt_update_self2_c4 - module procedure :: gpufortrt_update_self3_c4 - module procedure :: gpufortrt_update_self4_c4 - module procedure :: gpufortrt_update_self5_c4 - module procedure :: gpufortrt_update_self6_c4 - module procedure :: gpufortrt_update_self7_c4 - module procedure :: gpufortrt_update_self0_c8 - module procedure :: gpufortrt_update_self1_c8 - module procedure :: gpufortrt_update_self2_c8 - module procedure :: gpufortrt_update_self3_c8 - module procedure :: gpufortrt_update_self4_c8 - module procedure :: gpufortrt_update_self5_c8 - module procedure :: gpufortrt_update_self6_c8 - module procedure :: gpufortrt_update_self7_c8 - end interface - - interface gpufortrt_update_device - module procedure :: gpufortrt_update_device_b - module procedure :: gpufortrt_update_device0_l1 - module procedure :: gpufortrt_update_device1_l1 - module procedure :: gpufortrt_update_device2_l1 - module procedure :: gpufortrt_update_device3_l1 - module procedure :: gpufortrt_update_device4_l1 - module procedure :: gpufortrt_update_device5_l1 - module procedure :: gpufortrt_update_device6_l1 - module procedure :: gpufortrt_update_device7_l1 - module procedure :: gpufortrt_update_device0_l4 - module procedure :: gpufortrt_update_device1_l4 - module procedure :: gpufortrt_update_device2_l4 - module procedure :: gpufortrt_update_device3_l4 - module procedure :: gpufortrt_update_device4_l4 - module procedure :: gpufortrt_update_device5_l4 - module procedure :: gpufortrt_update_device6_l4 - module procedure :: gpufortrt_update_device7_l4 - module procedure :: gpufortrt_update_device0_ch1 - module procedure :: gpufortrt_update_device1_ch1 - module procedure :: gpufortrt_update_device2_ch1 - module procedure :: gpufortrt_update_device3_ch1 - module procedure :: gpufortrt_update_device4_ch1 - module procedure :: gpufortrt_update_device5_ch1 - module procedure :: gpufortrt_update_device6_ch1 - module procedure :: gpufortrt_update_device7_ch1 - module procedure :: gpufortrt_update_device0_i1 - module procedure :: gpufortrt_update_device1_i1 - module procedure :: gpufortrt_update_device2_i1 - module procedure :: gpufortrt_update_device3_i1 - module procedure :: gpufortrt_update_device4_i1 - module procedure :: gpufortrt_update_device5_i1 - module procedure :: gpufortrt_update_device6_i1 - module procedure :: gpufortrt_update_device7_i1 - module procedure :: gpufortrt_update_device0_i2 - module procedure :: gpufortrt_update_device1_i2 - module procedure :: gpufortrt_update_device2_i2 - module procedure :: gpufortrt_update_device3_i2 - module procedure :: gpufortrt_update_device4_i2 - module procedure :: gpufortrt_update_device5_i2 - module procedure :: gpufortrt_update_device6_i2 - module procedure :: gpufortrt_update_device7_i2 - module procedure :: gpufortrt_update_device0_i4 - module procedure :: gpufortrt_update_device1_i4 - module procedure :: gpufortrt_update_device2_i4 - module procedure :: gpufortrt_update_device3_i4 - module procedure :: gpufortrt_update_device4_i4 - module procedure :: gpufortrt_update_device5_i4 - module procedure :: gpufortrt_update_device6_i4 - module procedure :: gpufortrt_update_device7_i4 - module procedure :: gpufortrt_update_device0_i8 - module procedure :: gpufortrt_update_device1_i8 - module procedure :: gpufortrt_update_device2_i8 - module procedure :: gpufortrt_update_device3_i8 - module procedure :: gpufortrt_update_device4_i8 - module procedure :: gpufortrt_update_device5_i8 - module procedure :: gpufortrt_update_device6_i8 - module procedure :: gpufortrt_update_device7_i8 - module procedure :: gpufortrt_update_device0_r4 - module procedure :: gpufortrt_update_device1_r4 - module procedure :: gpufortrt_update_device2_r4 - module procedure :: gpufortrt_update_device3_r4 - module procedure :: gpufortrt_update_device4_r4 - module procedure :: gpufortrt_update_device5_r4 - module procedure :: gpufortrt_update_device6_r4 - module procedure :: gpufortrt_update_device7_r4 - module procedure :: gpufortrt_update_device0_r8 - module procedure :: gpufortrt_update_device1_r8 - module procedure :: gpufortrt_update_device2_r8 - module procedure :: gpufortrt_update_device3_r8 - module procedure :: gpufortrt_update_device4_r8 - module procedure :: gpufortrt_update_device5_r8 - module procedure :: gpufortrt_update_device6_r8 - module procedure :: gpufortrt_update_device7_r8 - module procedure :: gpufortrt_update_device0_c4 - module procedure :: gpufortrt_update_device1_c4 - module procedure :: gpufortrt_update_device2_c4 - module procedure :: gpufortrt_update_device3_c4 - module procedure :: gpufortrt_update_device4_c4 - module procedure :: gpufortrt_update_device5_c4 - module procedure :: gpufortrt_update_device6_c4 - module procedure :: gpufortrt_update_device7_c4 - module procedure :: gpufortrt_update_device0_c8 - module procedure :: gpufortrt_update_device1_c8 - module procedure :: gpufortrt_update_device2_c8 - module procedure :: gpufortrt_update_device3_c8 - module procedure :: gpufortrt_update_device4_c8 - module procedure :: gpufortrt_update_device5_c8 - module procedure :: gpufortrt_update_device6_c8 - module procedure :: gpufortrt_update_device7_c8 - end interface - - - interface gpufortrt_use_device - module procedure :: gpufortrt_use_device0_l1 - module procedure :: gpufortrt_use_device0_l4 - module procedure :: gpufortrt_use_device0_ch1 - module procedure :: gpufortrt_use_device0_i1 - module procedure :: gpufortrt_use_device0_i2 - module procedure :: gpufortrt_use_device0_i4 - module procedure :: gpufortrt_use_device0_i8 - module procedure :: gpufortrt_use_device0_r4 - module procedure :: gpufortrt_use_device0_r8 - module procedure :: gpufortrt_use_device0_c4 - module procedure :: gpufortrt_use_device0_c8 - module procedure :: gpufortrt_use_device1_l1 - module procedure :: gpufortrt_use_device1_l4 - module procedure :: gpufortrt_use_device1_ch1 - module procedure :: gpufortrt_use_device1_i1 - module procedure :: gpufortrt_use_device1_i2 - module procedure :: gpufortrt_use_device1_i4 - module procedure :: gpufortrt_use_device1_i8 - module procedure :: gpufortrt_use_device1_r4 - module procedure :: gpufortrt_use_device1_r8 - module procedure :: gpufortrt_use_device1_c4 - module procedure :: gpufortrt_use_device1_c8 - module procedure :: gpufortrt_use_device2_l1 - module procedure :: gpufortrt_use_device2_l4 - module procedure :: gpufortrt_use_device2_ch1 - module procedure :: gpufortrt_use_device2_i1 - module procedure :: gpufortrt_use_device2_i2 - module procedure :: gpufortrt_use_device2_i4 - module procedure :: gpufortrt_use_device2_i8 - module procedure :: gpufortrt_use_device2_r4 - module procedure :: gpufortrt_use_device2_r8 - module procedure :: gpufortrt_use_device2_c4 - module procedure :: gpufortrt_use_device2_c8 - module procedure :: gpufortrt_use_device3_l1 - module procedure :: gpufortrt_use_device3_l4 - module procedure :: gpufortrt_use_device3_ch1 - module procedure :: gpufortrt_use_device3_i1 - module procedure :: gpufortrt_use_device3_i2 - module procedure :: gpufortrt_use_device3_i4 - module procedure :: gpufortrt_use_device3_i8 - module procedure :: gpufortrt_use_device3_r4 - module procedure :: gpufortrt_use_device3_r8 - module procedure :: gpufortrt_use_device3_c4 - module procedure :: gpufortrt_use_device3_c8 - module procedure :: gpufortrt_use_device4_l1 - module procedure :: gpufortrt_use_device4_l4 - module procedure :: gpufortrt_use_device4_ch1 - module procedure :: gpufortrt_use_device4_i1 - module procedure :: gpufortrt_use_device4_i2 - module procedure :: gpufortrt_use_device4_i4 - module procedure :: gpufortrt_use_device4_i8 - module procedure :: gpufortrt_use_device4_r4 - module procedure :: gpufortrt_use_device4_r8 - module procedure :: gpufortrt_use_device4_c4 - module procedure :: gpufortrt_use_device4_c8 - module procedure :: gpufortrt_use_device5_l1 - module procedure :: gpufortrt_use_device5_l4 - module procedure :: gpufortrt_use_device5_ch1 - module procedure :: gpufortrt_use_device5_i1 - module procedure :: gpufortrt_use_device5_i2 - module procedure :: gpufortrt_use_device5_i4 - module procedure :: gpufortrt_use_device5_i8 - module procedure :: gpufortrt_use_device5_r4 - module procedure :: gpufortrt_use_device5_r8 - module procedure :: gpufortrt_use_device5_c4 - module procedure :: gpufortrt_use_device5_c8 - module procedure :: gpufortrt_use_device6_l1 - module procedure :: gpufortrt_use_device6_l4 - module procedure :: gpufortrt_use_device6_ch1 - module procedure :: gpufortrt_use_device6_i1 - module procedure :: gpufortrt_use_device6_i2 - module procedure :: gpufortrt_use_device6_i4 - module procedure :: gpufortrt_use_device6_i8 - module procedure :: gpufortrt_use_device6_r4 - module procedure :: gpufortrt_use_device6_r8 - module procedure :: gpufortrt_use_device6_c4 - module procedure :: gpufortrt_use_device6_c8 - module procedure :: gpufortrt_use_device7_l1 - module procedure :: gpufortrt_use_device7_l4 - module procedure :: gpufortrt_use_device7_ch1 - module procedure :: gpufortrt_use_device7_i1 - module procedure :: gpufortrt_use_device7_i2 - module procedure :: gpufortrt_use_device7_i4 - module procedure :: gpufortrt_use_device7_i8 - module procedure :: gpufortrt_use_device7_r4 - module procedure :: gpufortrt_use_device7_r8 - module procedure :: gpufortrt_use_device7_c4 - module procedure :: gpufortrt_use_device7_c8 - end interface - - - interface gpufortrt_deviceptr - module procedure :: gpufortrt_deviceptr0_l1 - module procedure :: gpufortrt_deviceptr1_l1 - module procedure :: gpufortrt_deviceptr2_l1 - module procedure :: gpufortrt_deviceptr3_l1 - module procedure :: gpufortrt_deviceptr4_l1 - module procedure :: gpufortrt_deviceptr5_l1 - module procedure :: gpufortrt_deviceptr6_l1 - module procedure :: gpufortrt_deviceptr7_l1 - module procedure :: gpufortrt_deviceptr0_l4 - module procedure :: gpufortrt_deviceptr1_l4 - module procedure :: gpufortrt_deviceptr2_l4 - module procedure :: gpufortrt_deviceptr3_l4 - module procedure :: gpufortrt_deviceptr4_l4 - module procedure :: gpufortrt_deviceptr5_l4 - module procedure :: gpufortrt_deviceptr6_l4 - module procedure :: gpufortrt_deviceptr7_l4 - module procedure :: gpufortrt_deviceptr0_ch1 - module procedure :: gpufortrt_deviceptr1_ch1 - module procedure :: gpufortrt_deviceptr2_ch1 - module procedure :: gpufortrt_deviceptr3_ch1 - module procedure :: gpufortrt_deviceptr4_ch1 - module procedure :: gpufortrt_deviceptr5_ch1 - module procedure :: gpufortrt_deviceptr6_ch1 - module procedure :: gpufortrt_deviceptr7_ch1 - module procedure :: gpufortrt_deviceptr0_i1 - module procedure :: gpufortrt_deviceptr1_i1 - module procedure :: gpufortrt_deviceptr2_i1 - module procedure :: gpufortrt_deviceptr3_i1 - module procedure :: gpufortrt_deviceptr4_i1 - module procedure :: gpufortrt_deviceptr5_i1 - module procedure :: gpufortrt_deviceptr6_i1 - module procedure :: gpufortrt_deviceptr7_i1 - module procedure :: gpufortrt_deviceptr0_i2 - module procedure :: gpufortrt_deviceptr1_i2 - module procedure :: gpufortrt_deviceptr2_i2 - module procedure :: gpufortrt_deviceptr3_i2 - module procedure :: gpufortrt_deviceptr4_i2 - module procedure :: gpufortrt_deviceptr5_i2 - module procedure :: gpufortrt_deviceptr6_i2 - module procedure :: gpufortrt_deviceptr7_i2 - module procedure :: gpufortrt_deviceptr0_i4 - module procedure :: gpufortrt_deviceptr1_i4 - module procedure :: gpufortrt_deviceptr2_i4 - module procedure :: gpufortrt_deviceptr3_i4 - module procedure :: gpufortrt_deviceptr4_i4 - module procedure :: gpufortrt_deviceptr5_i4 - module procedure :: gpufortrt_deviceptr6_i4 - module procedure :: gpufortrt_deviceptr7_i4 - module procedure :: gpufortrt_deviceptr0_i8 - module procedure :: gpufortrt_deviceptr1_i8 - module procedure :: gpufortrt_deviceptr2_i8 - module procedure :: gpufortrt_deviceptr3_i8 - module procedure :: gpufortrt_deviceptr4_i8 - module procedure :: gpufortrt_deviceptr5_i8 - module procedure :: gpufortrt_deviceptr6_i8 - module procedure :: gpufortrt_deviceptr7_i8 - module procedure :: gpufortrt_deviceptr0_r4 - module procedure :: gpufortrt_deviceptr1_r4 - module procedure :: gpufortrt_deviceptr2_r4 - module procedure :: gpufortrt_deviceptr3_r4 - module procedure :: gpufortrt_deviceptr4_r4 - module procedure :: gpufortrt_deviceptr5_r4 - module procedure :: gpufortrt_deviceptr6_r4 - module procedure :: gpufortrt_deviceptr7_r4 - module procedure :: gpufortrt_deviceptr0_r8 - module procedure :: gpufortrt_deviceptr1_r8 - module procedure :: gpufortrt_deviceptr2_r8 - module procedure :: gpufortrt_deviceptr3_r8 - module procedure :: gpufortrt_deviceptr4_r8 - module procedure :: gpufortrt_deviceptr5_r8 - module procedure :: gpufortrt_deviceptr6_r8 - module procedure :: gpufortrt_deviceptr7_r8 - module procedure :: gpufortrt_deviceptr0_c4 - module procedure :: gpufortrt_deviceptr1_c4 - module procedure :: gpufortrt_deviceptr2_c4 - module procedure :: gpufortrt_deviceptr3_c4 - module procedure :: gpufortrt_deviceptr4_c4 - module procedure :: gpufortrt_deviceptr5_c4 - module procedure :: gpufortrt_deviceptr6_c4 - module procedure :: gpufortrt_deviceptr7_c4 - module procedure :: gpufortrt_deviceptr0_c8 - module procedure :: gpufortrt_deviceptr1_c8 - module procedure :: gpufortrt_deviceptr2_c8 - module procedure :: gpufortrt_deviceptr3_c8 - module procedure :: gpufortrt_deviceptr4_c8 - module procedure :: gpufortrt_deviceptr5_c8 - module procedure :: gpufortrt_deviceptr6_c8 - module procedure :: gpufortrt_deviceptr7_c8 - end interface - - contains - - function gpufortrt_map_present_b(hostptr,num_bytes,never_deallocate) result(retval) + + type(c_ptr) function gpufortrt_deviceptr(hostptr) use iso_c_binding - use gpufortrt_types implicit none - type(c_ptr),intent(in) :: hostptr - integer(c_size_t),intent(in),optional :: num_bytes - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval ! - call gpufortrt_mapping_init(retval,hostptr,num_bytes,& - gpufortrt_map_kind_present,never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present0_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate + type(*), dimension(..), target, intent(in) :: hostptr ! - type(gpufortrt_mapping_t) :: retval + interface + type(c_ptr) function gpufortrt_deviceptr_c_impl(hostptr) & + bind(c,name="gpufortrt_deviceptr") + use iso_c_binding + implicit none + ! + type(c_ptr),value,intent(in) :: hostptr + end function + end interface ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) + gpufortrt_deviceptr = gpufortrt_deviceptr_c_impl(c_loc(hostptr)) end function - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present1_l1(hostptr,never_deallocate) result(retval) + type(c_ptr) function gpufortrt_present_b(hostptr,num_bytes) use iso_c_binding - use gpufortrt_types implicit none - logical(c_bool),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate ! - type(gpufortrt_mapping_t) :: retval + type(*), dimension(..), target, intent(in) :: hostptr + integer(c_size_t), value,intent(in) :: num_bytes ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + interface + type(c_ptr) function gpufortrt_present_b_c_impl(hostptr,num_bytes) & + bind(c,name="gpufortrt_present") + use iso_c_binding + implicit none + ! + type(c_ptr), value::hostptr + integer(c_size_t), value :: num_bytes + end function + end interface + gpufortrt_present_b = gpufortrt_present_b_c_impl(c_loc(hostptr),int(num_bytes,kind=c_size_t)) end function - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present2_l1(hostptr,never_deallocate) result(retval) + type(c_ptr) function gpufortrt_present_nb(hostptr) use iso_c_binding - use gpufortrt_types implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + type(*), target, dimension(..), contiguous :: hostptr + gpufortrt_present_nb = gpufortrt_present_b(c_loc(hostptr),int(sizeof(hostptr), kind = c_size_t)) end function - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present3_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types + !> Ignore the result of a mapping routine. + !> \param[in] deviceptr a device pointer. + subroutine gpufortrt_ignore(deviceptr) + use iso_c_binding, only: c_ptr implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function + type(c_ptr),intent(in) :: deviceptr + ! nop + end subroutine - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present4_l1(hostptr,never_deallocate) result(retval) + subroutine gpufortrt_wait(wait_arg,async_arg,condition) use iso_c_binding - use gpufortrt_types implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),dimension(:),target,intent(in),optional :: wait_arg,async_arg + logical,intent(in),optional :: condition ! - type(gpufortrt_mapping_t) :: retval + interface + subroutine gpufortrt_wait_all_c_impl(condition) & + bind(c,name="gpufortrt_wait_all") + use iso_c_binding + implicit none + logical(c_bool),value,intent(in):: condition + end subroutine + subroutine gpufortrt_wait_all_async_c_impl(async_arg,num_async_args,condition) & + bind(c,name="gpufortrt_wait_all_async") + use iso_c_binding + implicit none + type(c_ptr),value,intent(in) :: async_arg + integer(c_int),value,intent(in) :: num_async_args + logical(c_bool),value,intent(in) :: condition + end subroutine + subroutine gpufortrt_wait_c_impl(wait_arg,num_wait_args,condition) & + bind(c,name="gpufortrt_wait") + use iso_c_binding + implicit none + type(c_ptr),value,intent(in) :: wait_arg + integer(c_int),value,intent(in) :: num_wait_args + logical(c_bool),value,intent(in) :: condition + end subroutine + subroutine gpufortrt_wait_async_c_impl(wait_arg,num_wait_args,& + async_arg,num_async_args,& + condition) & + bind(c,name="gpufortrt_wait_async") + use iso_c_binding + implicit none + type(c_ptr),value,intent(in) :: wait_arg, async_arg + integer(c_int),value,intent(in) :: num_wait_args, num_async_args + logical(c_bool),value,intent(in) :: condition + end subroutine + end interface ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present5_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate + logical(c_bool) :: opt_if_arg ! - type(gpufortrt_mapping_t) :: retval + opt_if_arg = .true._c_bool + if ( present(condition) ) opt_if_arg = logical(condition,kind=c_bool) ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function + if ( present(wait_arg) ) then + if ( present(async_arg) ) then + call gpufortrt_wait_async_c_impl(& + c_loc(wait_arg),size(wait_arg,kind=c_int),& + c_loc(async_arg),size(async_arg,kind=c_int),& + opt_if_arg) + else + call gpufortrt_wait_c_impl(& + c_loc(wait_arg),size(wait_arg,kind=c_int),& + opt_if_arg) + endif + else + if ( present(async_arg) ) then + call gpufortrt_wait_all_async_c_impl(& + c_loc(async_arg),size(async_arg,kind=c_int),& + opt_if_arg) + else + call gpufortrt_wait_all_c_impl(opt_if_arg) + endif + endif + end subroutine - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present6_l1(hostptr,never_deallocate) result(retval) + subroutine gpufortrt_data_start(mappings,async_arg) + !subroutine gpufortrt_data_start(device_kind,mappings,async_arg) use iso_c_binding - use gpufortrt_types implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate + !integer,intent(in) :: device_kind + type(gpufortrt_mapping_t),dimension(:),target,intent(in),optional :: mappings + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg ! - type(gpufortrt_mapping_t) :: retval + interface + subroutine gpufortrt_data_start_c_impl(mappings,num_mappings) bind(c,name="gpufortrt_data_start") + use iso_c_binding + implicit none + type(c_ptr),intent(in),value :: mappings + integer(c_int),intent(in),value :: num_mappings + end subroutine + subroutine gpufortrt_data_start_async_c_impl(mappings,num_mappings,async_arg) bind(c,name="gpufortrt_data_start_async") + use iso_c_binding + use gpufortrt_types, only: gpufortrt_handle_kind + implicit none + type(c_ptr),intent(in),value :: mappings + integer(c_int),intent(in),value :: num_mappings + integer(gpufortrt_handle_kind),intent(in),value :: async_arg + end subroutine + end interface ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present7_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types + if ( present(async_arg) ) then + if ( present(mappings) ) then + call gpufortrt_data_start_async_c_impl(c_loc(mappings),size(mappings),& + int(async_arg,kind=c_int)) + else + call gpufortrt_data_start_async_c_impl(c_null_ptr,0_c_int,& + int(async_arg,kind=c_int)) + endif + else + if ( present(mappings) ) then + call gpufortrt_data_start_c_impl(c_loc(mappings),size(mappings)) + else + call gpufortrt_data_start_c_impl(c_null_ptr,0_c_int) + endif + endif + end subroutine + + subroutine gpufortrt_data_end(async_arg) implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg ! - type(gpufortrt_mapping_t) :: retval + interface + subroutine gpufortrt_data_end_c_impl() bind(c,name="gpufortrt_data_end") + use iso_c_binding + use gpufortrt_types, only: gpufortrt_handle_kind + implicit none + end subroutine + subroutine gpufortrt_data_end_async_c_impl(async_arg) bind(c,name="gpufortrt_data_end_async") + use iso_c_binding + use gpufortrt_types, only: gpufortrt_handle_kind + implicit none + integer(gpufortrt_handle_kind),intent(in),value :: async_arg + end subroutine + end interface ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function + if ( present(async_arg) ) then + call gpufortrt_data_end_async_c_impl(async_arg) + else + call gpufortrt_data_end_c_impl() + endif + end subroutine - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present0_l4(hostptr,never_deallocate) result(retval) + subroutine gpufortrt_enter_exit_data(mappings,async_arg,finalize) use iso_c_binding - use gpufortrt_types implicit none - logical,target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present1_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate + !integer,intent(in) :: device_kind + type(gpufortrt_mapping_t),dimension(:),target,intent(in),optional :: mappings + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize ! - type(gpufortrt_mapping_t) :: retval + interface + subroutine gpufortrt_enter_exit_data_c_impl(mappings,num_mappings,finalize) bind(c,name="gpufortrt_enter_exit_data") + use iso_c_binding + implicit none + type(c_ptr),value,intent(in) :: mappings + integer(c_int),value,intent(in) :: num_mappings + logical(c_bool),value,intent(in) :: finalize + end subroutine + subroutine gpufortrt_enter_exit_data_async_c_impl(mappings,num_mappings,async_arg,finalize) bind(c,name="gpufortrt_enter_exit_data_async") + use iso_c_binding + use gpufortrt_types, only: gpufortrt_handle_kind + implicit none + type(c_ptr),value,intent(in) :: mappings + integer(c_int),value,intent(in) :: num_mappings + integer(gpufortrt_handle_kind),value,intent(in) :: async_arg + logical(c_bool),value,intent(in) :: finalize + end subroutine + end interface ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present2_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate + logical(c_bool) :: opt_finalize ! - type(gpufortrt_mapping_t) :: retval + opt_finalize = .false._c_bool + if ( present(finalize) ) opt_finalize = logical(finalize,kind=c_bool) ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function + if ( present(async_arg) ) then + if ( present(mappings) ) then + call gpufortrt_enter_exit_data_async_c_impl(& + c_loc(mappings),& + size(mappings,kind=c_int),& + async_arg,& + opt_finalize) + else + call gpufortrt_enter_exit_data_async_c_impl(& + c_null_ptr,& + 0_c_int,& + async_arg,& + opt_finalize) + endif + else + if ( present(mappings) ) then + call gpufortrt_enter_exit_data_c_impl(& + c_loc(mappings),& + size(mappings,kind=c_int),& + opt_finalize) + else + call gpufortrt_enter_exit_data_c_impl(& + c_null_ptr,& + 0_c_int,& + opt_finalize) + endif + endif + end subroutine - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present3_l4(hostptr,never_deallocate) result(retval) + !> Lookup device pointer for given host pointer. + !> \param[in] condition condition that must be met, otherwise host pointer is returned. Defaults to '.true.'. + !> \param[in] if_present Only return device pointer if one could be found for the host pointer. + !> otherwise host pointer is returned. Defaults to '.false.'. + !> \note Returns a c_null_ptr if the host pointer is invalid, i.e. not C associated. + subroutine gpufortrt_use_device(resultptr, hostptr,sizes,lbounds,if_arg,if_present) use iso_c_binding - use gpufortrt_types implicit none - logical,target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate + type(*), dimension(..),target, intent(inout) :: resultptr + type(*), dimension(..),target,intent(in) :: hostptr + integer,intent(in),optional :: sizes, lbounds + logical,intent(in),optional :: if_arg, if_present ! - type(gpufortrt_mapping_t) :: retval + interface + function gpufortrt_use_device_c_impl(hostptr,condition,if_present) & + bind(c,name="gpufortrt_use_device") result(deviceptr) + use iso_c_binding + implicit none + type(c_ptr),value,intent(in) :: hostptr + logical(c_bool),value,intent(in) :: condition, if_present + ! + type(c_ptr) :: deviceptr + end function + end interface ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present4_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate + integer :: opt_sizes, opt_lbounds + logical(c_bool) :: opt_if_arg, opt_if_present_arg + type(c_ptr):: tmp_cptr ! - type(gpufortrt_mapping_t) :: retval + opt_sizes = 1 + opt_lbounds = 1 + opt_if_arg = .true._c_bool + opt_if_present_arg = .false._c_bool + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + if ( present(if_arg) ) opt_if_arg = logical(if_arg,kind=c_bool) + if ( present(if_present) ) opt_if_present_arg = logical(if_present,kind=c_bool) ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function + tmp_cptr = gpufortrt_use_device_c_impl(c_loc(hostptr),opt_if_arg,opt_if_present_arg) + ! call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + ! Convert tmp_cptr to resultptr? + end subroutine - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present5_l4(hostptr,never_deallocate) result(retval) + logical function gpufortrt_is_present(data_arg, bytes) use iso_c_binding - use gpufortrt_types implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate ! - type(gpufortrt_mapping_t) :: retval + type(*), target, dimension(..)::data_arg + integer(c_int),value,intent(in) :: bytes ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + interface + type(c_ptr) function gpufortrt_is_present_c_impl(data_arg, bytes) & + bind(c,name="gpufortrt_present") + use iso_c_binding + implicit none + ! + type(c_ptr), value::data_arg + integer(c_size_t), value :: bytes + end function + end interface + gpufortrt_is_present = c_associated(gpufortrt_is_present_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t))) end function - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present6_l4(hostptr,never_deallocate) result(retval) + function gpufortrt_map_present(hostptr,num_bytes,never_deallocate) result(retval) use iso_c_binding use gpufortrt_types implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:) + type(*),dimension(..), target, intent(in) :: hostptr + integer(c_size_t),intent(in),optional :: num_bytes logical,intent(in),optional :: never_deallocate ! type(gpufortrt_mapping_t) :: retval ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present7_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval + logical :: opt_never_deallocate = .false._c_bool + integer(c_size_t) :: opt_num_bytes ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) + if( present( never_deallocate )) opt_never_deallocate = never_deallocate + if( present( num_bytes )) then + opt_num_bytes = num_bytes + else + opt_num_bytes = int(sizeof(hostptr),kind=c_size_t) + endif + + call gpufortrt_mapping_init(retval,c_loc(hostptr),opt_num_bytes,& + gpufortrt_map_kind_present,opt_never_deallocate) end function - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present0_ch1(hostptr,never_deallocate) result(retval) + function gpufortrt_map_no_create(hostptr,num_bytes,never_deallocate) result(retval) use iso_c_binding use gpufortrt_types implicit none - character(c_char),target,intent(in) :: hostptr + type(*), dimension(..), target, intent(in) :: hostptr + integer(c_size_t),intent(in),optional :: num_bytes logical,intent(in),optional :: never_deallocate ! type(gpufortrt_mapping_t) :: retval ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) + logical :: opt_never_deallocate = .false._c_bool + integer(c_size_t) :: opt_num_bytes + ! + if( present( never_deallocate )) opt_never_deallocate = never_deallocate + if( present( num_bytes )) then + opt_num_bytes = num_bytes + else + opt_num_bytes = int(sizeof(hostptr),kind=c_size_t) + endif + + call gpufortrt_mapping_init(retval,c_loc(hostptr),opt_num_bytes,& + gpufortrt_map_kind_no_create,opt_never_deallocate) end function - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present1_ch1(hostptr,never_deallocate) result(retval) + function gpufortrt_map_create(hostptr,num_bytes,never_deallocate) result(retval) use iso_c_binding use gpufortrt_types implicit none - character(c_char),target,intent(in) :: hostptr(:) + type(*), dimension(..), target, intent(in) :: hostptr + integer(c_size_t),intent(in),optional :: num_bytes logical,intent(in),optional :: never_deallocate ! type(gpufortrt_mapping_t) :: retval ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + logical :: opt_never_deallocate = .false._c_bool + integer(c_size_t) :: opt_num_bytes + ! + if( present( never_deallocate )) opt_never_deallocate = never_deallocate + if( present( num_bytes )) then + opt_num_bytes = num_bytes + else + opt_num_bytes = int(sizeof(hostptr),kind=c_size_t) + endif + call gpufortrt_mapping_init(retval,c_loc(hostptr),opt_num_bytes,& + gpufortrt_map_kind_create,opt_never_deallocate) end function - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present2_ch1(hostptr,never_deallocate) result(retval) + function gpufortrt_map_copyin(hostptr,num_bytes,never_deallocate) result(retval) use iso_c_binding use gpufortrt_types implicit none - character(c_char),target,intent(in) :: hostptr(:,:) + type(*), dimension(..), target, intent(in) :: hostptr + integer(c_size_t),intent(in),optional :: num_bytes logical,intent(in),optional :: never_deallocate ! type(gpufortrt_mapping_t) :: retval ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + logical :: opt_never_deallocate = .false._c_bool + integer(c_size_t) :: opt_num_bytes + ! + if( present( never_deallocate )) opt_never_deallocate = never_deallocate + if( present( num_bytes )) then + opt_num_bytes = num_bytes + else + opt_num_bytes = int(sizeof(hostptr),kind=c_size_t) + endif + + call gpufortrt_mapping_init(retval,c_loc(hostptr),opt_num_bytes,& + gpufortrt_map_kind_copyin,opt_never_deallocate) end function - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present3_ch1(hostptr,never_deallocate) result(retval) + function gpufortrt_map_copy(hostptr,num_bytes,never_deallocate) result(retval) use iso_c_binding use gpufortrt_types implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:) + type(*), dimension(..), target, intent(in) :: hostptr + integer(c_size_t),intent(in),optional :: num_bytes logical,intent(in),optional :: never_deallocate ! type(gpufortrt_mapping_t) :: retval ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + logical :: opt_never_deallocate = .false._c_bool + integer(c_size_t) :: opt_num_bytes + ! + if( present( never_deallocate )) opt_never_deallocate = never_deallocate + if( present( num_bytes )) then + opt_num_bytes = num_bytes + else + opt_num_bytes = int(sizeof(hostptr),kind=c_size_t) + endif + + call gpufortrt_mapping_init(retval,c_loc(hostptr),opt_num_bytes,& + gpufortrt_map_kind_copy,opt_never_deallocate) end function - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present4_ch1(hostptr,never_deallocate) result(retval) + function gpufortrt_map_copyout(hostptr,num_bytes,never_deallocate) result(retval) use iso_c_binding use gpufortrt_types implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:) + type(*),dimension(..), target, intent(in) :: hostptr + integer(c_size_t),intent(in),optional :: num_bytes logical,intent(in),optional :: never_deallocate ! type(gpufortrt_mapping_t) :: retval ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + logical :: opt_never_deallocate = .false._c_bool + integer(c_size_t) :: opt_num_bytes + ! + if( present( never_deallocate )) opt_never_deallocate = never_deallocate + if( present( num_bytes )) then + opt_num_bytes = num_bytes + else + opt_num_bytes = int(sizeof(hostptr),kind=c_size_t) + endif + + call gpufortrt_mapping_init(retval,c_loc(hostptr),opt_num_bytes,& + gpufortrt_map_kind_copyout,opt_never_deallocate) end function - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present5_ch1(hostptr,never_deallocate) result(retval) + function gpufortrt_map_delete(hostptr,num_bytes,never_deallocate) result(retval) use iso_c_binding use gpufortrt_types implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) + type(*), dimension(..), target, intent(in) :: hostptr + integer(c_size_t),intent(in),optional :: num_bytes logical,intent(in),optional :: never_deallocate ! type(gpufortrt_mapping_t) :: retval ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) + logical :: opt_never_deallocate = .false._c_bool + integer(c_size_t) :: opt_num_bytes + ! + if( present( never_deallocate )) opt_never_deallocate = never_deallocate + if( present( num_bytes )) then + opt_num_bytes = num_bytes + else + opt_num_bytes = int(sizeof(hostptr),kind=c_size_t) + endif + + call gpufortrt_mapping_init(retval,c_loc(hostptr),opt_num_bytes,& + gpufortrt_map_kind_delete,opt_never_deallocate) end function - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present6_ch1(hostptr,never_deallocate) result(retval) + function gpufortrt_create(hostptr,num_bytes,never_deallocate,async_arg) result(deviceptr) use iso_c_binding use gpufortrt_types implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present7_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present0_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present1_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present2_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present3_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present4_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present5_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present6_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present7_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present0_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present1_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present2_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present3_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present4_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present5_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present6_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present7_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present0_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present1_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present2_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present3_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present4_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present5_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present6_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present7_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present0_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present1_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present2_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present3_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present4_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present5_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present6_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present7_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present0_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present1_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present2_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present3_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present4_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present5_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present6_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present7_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present0_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present1_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present2_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present3_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present4_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present5_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present6_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present7_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present0_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present1_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present2_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present3_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present4_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present5_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present6_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present7_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present0_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*8,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present1_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present2_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present3_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present4_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present5_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present6_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_present7_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_present_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - function gpufortrt_map_no_create_b(hostptr,num_bytes,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),intent(in) :: hostptr - integer(c_size_t),intent(in),optional :: num_bytes - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - call gpufortrt_mapping_init(retval,hostptr,num_bytes,& - gpufortrt_map_kind_no_create,never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create0_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create1_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create2_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create3_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create4_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create5_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create6_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create7_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create0_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create1_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create2_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create3_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create4_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create5_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create6_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create7_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create0_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create1_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create2_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create3_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create4_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create5_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create6_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create7_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create0_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create1_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create2_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create3_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create4_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create5_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create6_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create7_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create0_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create1_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create2_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create3_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create4_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create5_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create6_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create7_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create0_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create1_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create2_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create3_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create4_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create5_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create6_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create7_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create0_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create1_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create2_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create3_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create4_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create5_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create6_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create7_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create0_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create1_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create2_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create3_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create4_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create5_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create6_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create7_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create0_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create1_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create2_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create3_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create4_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create5_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create6_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create7_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create0_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create1_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create2_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create3_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create4_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create5_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create6_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create7_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create0_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*8,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create1_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create2_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create3_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create4_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create5_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create6_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_no_create7_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_no_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - function gpufortrt_map_create_b(hostptr,num_bytes,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),intent(in) :: hostptr - integer(c_size_t),intent(in),optional :: num_bytes - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - call gpufortrt_mapping_init(retval,hostptr,num_bytes,& - gpufortrt_map_kind_create,never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create0_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create1_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create2_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create3_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create4_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create5_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create6_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create7_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create0_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create1_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create2_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create3_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create4_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create5_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create6_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create7_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create0_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create1_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create2_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create3_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create4_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create5_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create6_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create7_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create0_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create1_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create2_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create3_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create4_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create5_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create6_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create7_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create0_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create1_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create2_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create3_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create4_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create5_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create6_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create7_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create0_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create1_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create2_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create3_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create4_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create5_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create6_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create7_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create0_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create1_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create2_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create3_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create4_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create5_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create6_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create7_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create0_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create1_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create2_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create3_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create4_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create5_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create6_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create7_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create0_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create1_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create2_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create3_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create4_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create5_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create6_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create7_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create0_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create1_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create2_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create3_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create4_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create5_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create6_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create7_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create0_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*8,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create1_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create2_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create3_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create4_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create5_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create6_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_create7_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_create_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - function gpufortrt_map_copyin_b(hostptr,num_bytes,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),intent(in) :: hostptr - integer(c_size_t),intent(in),optional :: num_bytes - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - call gpufortrt_mapping_init(retval,hostptr,num_bytes,& - gpufortrt_map_kind_copyin,never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin0_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin1_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin2_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin3_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin4_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin5_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin6_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin7_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin0_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin1_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin2_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin3_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin4_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin5_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin6_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin7_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin0_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin1_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin2_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin3_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin4_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin5_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin6_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin7_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin0_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin1_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin2_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin3_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin4_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin5_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin6_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin7_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin0_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin1_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin2_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin3_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin4_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin5_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin6_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin7_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin0_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin1_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin2_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin3_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin4_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin5_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin6_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin7_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin0_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin1_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin2_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin3_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin4_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin5_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin6_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin7_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin0_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin1_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin2_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin3_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin4_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin5_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin6_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin7_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin0_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin1_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin2_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin3_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin4_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin5_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin6_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin7_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin0_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin1_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin2_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin3_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin4_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin5_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin6_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin7_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin0_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*8,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin1_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin2_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin3_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin4_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin5_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin6_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyin7_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyin_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - function gpufortrt_map_copy_b(hostptr,num_bytes,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),intent(in) :: hostptr - integer(c_size_t),intent(in),optional :: num_bytes - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - call gpufortrt_mapping_init(retval,hostptr,num_bytes,& - gpufortrt_map_kind_copy,never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy0_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy1_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy2_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy3_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy4_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy5_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy6_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy7_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy0_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy1_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy2_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy3_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy4_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy5_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy6_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy7_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy0_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy1_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy2_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy3_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy4_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy5_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy6_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy7_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy0_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy1_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy2_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy3_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy4_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy5_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy6_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy7_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy0_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy1_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy2_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy3_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy4_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy5_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy6_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy7_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy0_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy1_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy2_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy3_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy4_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy5_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy6_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy7_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy0_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy1_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy2_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy3_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy4_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy5_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy6_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy7_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy0_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy1_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy2_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy3_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy4_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy5_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy6_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy7_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy0_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy1_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy2_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy3_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy4_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy5_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy6_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy7_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy0_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy1_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy2_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy3_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy4_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy5_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy6_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy7_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy0_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*8,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy1_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy2_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy3_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy4_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy5_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy6_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copy7_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copy_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - function gpufortrt_map_copyout_b(hostptr,num_bytes,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),intent(in) :: hostptr - integer(c_size_t),intent(in),optional :: num_bytes - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - call gpufortrt_mapping_init(retval,hostptr,num_bytes,& - gpufortrt_map_kind_copyout,never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout0_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout1_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout2_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout3_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout4_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout5_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout6_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout7_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout0_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout1_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout2_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout3_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout4_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout5_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout6_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout7_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout0_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout1_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout2_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout3_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout4_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout5_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout6_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout7_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout0_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout1_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout2_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout3_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout4_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout5_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout6_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout7_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout0_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout1_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout2_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout3_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout4_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout5_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout6_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout7_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout0_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout1_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout2_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout3_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout4_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout5_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout6_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout7_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout0_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout1_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout2_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout3_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout4_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout5_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout6_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout7_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout0_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout1_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout2_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout3_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout4_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout5_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout6_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout7_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout0_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout1_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout2_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout3_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout4_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout5_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout6_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout7_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout0_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout1_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout2_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout3_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout4_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout5_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout6_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout7_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout0_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*8,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout1_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout2_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout3_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout4_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout5_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout6_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_copyout7_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_copyout_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - function gpufortrt_map_delete_b(hostptr,num_bytes,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),intent(in) :: hostptr - integer(c_size_t),intent(in),optional :: num_bytes - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - call gpufortrt_mapping_init(retval,hostptr,num_bytes,& - gpufortrt_map_kind_delete,never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete0_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete1_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete2_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete3_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete4_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete5_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete6_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete7_l1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete0_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete1_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete2_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete3_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete4_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete5_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete6_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete7_l4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete0_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete1_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete2_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete3_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete4_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete5_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete6_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete7_ch1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete0_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete1_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete2_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete3_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete4_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete5_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete6_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete7_i1(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete0_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete1_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete2_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete3_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete4_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete5_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete6_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete7_i2(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete0_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete1_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete2_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete3_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete4_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete5_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete6_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete7_i4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete0_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete1_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete2_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete3_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete4_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete5_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete6_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete7_i8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete0_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete1_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete2_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete3_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete4_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete5_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete6_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete7_r4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete0_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete1_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete2_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete3_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete4_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete5_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete6_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete7_r8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete0_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*4,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete1_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete2_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete3_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete4_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete5_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete6_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete7_c4(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete0_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*8,c_size_t),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete1_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete2_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete3_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete4_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete5_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete6_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - !> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. - function gpufortrt_map_delete7_c8(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = gpufortrt_map_delete_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),never_deallocate) - end function - - - - !> Map and directly return the corresponding deviceptr. - function gpufortrt_create_b(hostptr,num_bytes,never_deallocate,& - async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),intent(in) :: hostptr - integer(c_size_t),intent(in) :: num_bytes - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - interface - function gpufortrt_create_c_impl(hostptr,num_bytes,never_deallocate) & - bind(c,name="gpufortrt_create") result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - logical(c_bool),value,intent(in) :: never_deallocate - ! - type(c_ptr) :: deviceptr - end function - function gpufortrt_create_async_c_impl(hostptr,num_bytes,never_deallocate,async_arg) & - bind(c,name="gpufortrt_create_async") result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - logical(c_bool),value,intent(in) :: never_deallocate - integer(gpufortrt_handle_kind),value,intent(in) :: async_arg - ! - type(c_ptr) :: deviceptr - end function - end interface - ! - logical(c_bool) :: opt_never_deallocate - ! - opt_never_deallocate = .false._c_bool - if ( present(never_deallocate) ) opt_never_deallocate = never_deallocate - if ( present(async_arg) ) then - deviceptr = gpufortrt_create_async_c_impl(hostptr,num_bytes,opt_never_deallocate,async_arg) - else - deviceptr = gpufortrt_create_c_impl(hostptr,num_bytes,opt_never_deallocate) - endif - end function - - !> Map and directly return the corresponding deviceptr. - function gpufortrt_copyin_b(hostptr,num_bytes,never_deallocate,& - async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),intent(in) :: hostptr - integer(c_size_t),intent(in) :: num_bytes - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - interface - function gpufortrt_copyin_c_impl(hostptr,num_bytes,never_deallocate) & - bind(c,name="gpufortrt_copyin") result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - logical(c_bool),value,intent(in) :: never_deallocate - ! - type(c_ptr) :: deviceptr - end function - function gpufortrt_copyin_async_c_impl(hostptr,num_bytes,never_deallocate,async_arg) & - bind(c,name="gpufortrt_copyin_async") result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - logical(c_bool),value,intent(in) :: never_deallocate - integer(gpufortrt_handle_kind),value,intent(in) :: async_arg - ! - type(c_ptr) :: deviceptr - end function - end interface - ! - logical(c_bool) :: opt_never_deallocate - ! - opt_never_deallocate = .false._c_bool - if ( present(never_deallocate) ) opt_never_deallocate = never_deallocate - if ( present(async_arg) ) then - deviceptr = gpufortrt_copyin_async_c_impl(hostptr,num_bytes,opt_never_deallocate,async_arg) - else - deviceptr = gpufortrt_copyin_c_impl(hostptr,num_bytes,opt_never_deallocate) - endif - end function - - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_create0_l1(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create1_l1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create2_l1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create3_l1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create4_l1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create5_l1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create6_l1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create7_l1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_create0_l4(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create1_l4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create2_l4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create3_l4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create4_l4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create5_l4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create6_l4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create7_l4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_create0_ch1(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create1_ch1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create2_ch1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create3_ch1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create4_ch1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create5_ch1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create6_ch1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create7_ch1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_create0_i1(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create1_i1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create2_i1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create3_i1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create4_i1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create5_i1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create6_i1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create7_i1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_create0_i2(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create1_i2(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create2_i2(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create3_i2(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create4_i2(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create5_i2(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create6_i2(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create7_i2(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_create0_i4(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create1_i4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create2_i4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create3_i4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create4_i4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create5_i4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create6_i4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create7_i4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_create0_i8(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create1_i8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create2_i8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create3_i8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create4_i8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create5_i8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create6_i8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create7_i8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_create0_r4(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create1_r4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create2_r4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create3_r4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create4_r4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create5_r4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create6_r4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create7_r4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_create0_r8(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create1_r8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create2_r8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create3_r8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create4_r8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create5_r8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create6_r8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create7_r8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_create0_c4(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*4,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create1_c4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create2_c4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create3_c4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create4_c4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create5_c4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create6_c4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create7_c4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_create0_c8(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*8,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create1_c8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create2_c8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create3_c8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create4_c8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create5_c8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create6_c8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_create7_c8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_create_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_copyin0_l1(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin1_l1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin2_l1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin3_l1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin4_l1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin5_l1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin6_l1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin7_l1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_copyin0_l4(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin1_l4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin2_l4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin3_l4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin4_l4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin5_l4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin6_l4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin7_l4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_copyin0_ch1(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin1_ch1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin2_ch1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin3_ch1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin4_ch1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin5_ch1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin6_ch1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin7_ch1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_copyin0_i1(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin1_i1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin2_i1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin3_i1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin4_i1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin5_i1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin6_i1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin7_i1(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_copyin0_i2(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin1_i2(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin2_i2(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin3_i2(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin4_i2(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin5_i2(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin6_i2(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin7_i2(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_copyin0_i4(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin1_i4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin2_i4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin3_i4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin4_i4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin5_i4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin6_i4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin7_i4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_copyin0_i8(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin1_i8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin2_i8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin3_i8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin4_i8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin5_i8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin6_i8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin7_i8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_copyin0_r4(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin1_r4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin2_r4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin3_r4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin4_r4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin5_r4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin6_r4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin7_r4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_copyin0_r8(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin1_r8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin2_r8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin3_r8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin4_r8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin5_r8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin6_r8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin7_r8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_copyin0_c4(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*4,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin1_c4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin2_c4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin3_c4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin4_c4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin5_c4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin6_c4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin7_c4(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran scalar arguments) - function gpufortrt_copyin0_c8(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*8,kind=c_size_t),& - never_deallocate,async_arg) - end function - - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin1_c8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin2_c8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin3_c8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin4_c8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin5_c8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin6_c8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - !> Map and directly return the corresponding deviceptr. - !> (Specialized version for Fortran array arguments) - function gpufortrt_copyin7_c8(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_copyin_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) - end function - - function gpufortrt_present0_l1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)) - end function - - function gpufortrt_present1_l1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present2_l1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present3_l1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present4_l1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present5_l1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present6_l1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present7_l1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present0_l4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)) - end function - - function gpufortrt_present1_l4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present2_l4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present3_l4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present4_l4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present5_l4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present6_l4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present7_l4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present0_ch1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)) - end function - - function gpufortrt_present1_ch1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present2_ch1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present3_ch1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present4_ch1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present5_ch1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present6_ch1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present7_ch1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present0_i1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)) - end function - - function gpufortrt_present1_i1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present2_i1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present3_i1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present4_i1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present5_i1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present6_i1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present7_i1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present0_i2(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2,kind=c_size_t)) - end function - - function gpufortrt_present1_i2(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present2_i2(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present3_i2(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present4_i2(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present5_i2(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present6_i2(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present7_i2(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present0_i4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)) - end function - - function gpufortrt_present1_i4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present2_i4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present3_i4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present4_i4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present5_i4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present6_i4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present7_i4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present0_i8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)) - end function - - function gpufortrt_present1_i8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present2_i8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present3_i8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present4_i8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present5_i8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present6_i8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present7_i8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present0_r4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)) - end function - - function gpufortrt_present1_r4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present2_r4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present3_r4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present4_r4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present5_r4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present6_r4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present7_r4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present0_r8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)) - end function - - function gpufortrt_present1_r8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present2_r8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present3_r8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present4_r8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present5_r8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present6_r8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present7_r8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present0_c4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*4,kind=c_size_t)) - end function - - function gpufortrt_present1_c4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present2_c4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present3_c4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present4_c4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present5_c4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present6_c4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present7_c4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present0_c8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*8,kind=c_size_t)) - end function - - function gpufortrt_present1_c8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present2_c8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present3_c8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present4_c8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present5_c8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present6_c8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr)) - end function - - function gpufortrt_present7_c8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_present_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr)) - end function - - - subroutine gpufortrt_delete_b(hostptr,num_bytes,async_arg,finalize) - use iso_c_binding - use gpufortrt_types, only: gpufortrt_handle_kind - implicit none - type(c_ptr), intent(in) :: hostptr - integer(c_size_t),intent(in),optional :: num_bytes - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - interface - subroutine gpufortrt_delete_c_impl(hostptr,num_bytes) & - bind(c,name="gpufortrt_delete") - use iso_c_binding - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - end subroutine - subroutine gpufortrt_delete_finalize_c_impl(hostptr,num_bytes) & - bind(c,name="gpufortrt_delete_finalize") - use iso_c_binding - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - end subroutine - subroutine gpufortrt_delete_async_c_impl(hostptr,num_bytes,async_arg) & - bind(c,name="gpufortrt_delete_async") - use iso_c_binding - use gpufortrt_types, only: gpufortrt_handle_kind - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - integer(gpufortrt_handle_kind),value,intent(in) :: async_arg - end subroutine - subroutine gpufortrt_delete_finalize_async_c_impl(hostptr,num_bytes,async_arg) & - bind(c,name="gpufortrt_delete_finalize_async") - use iso_c_binding - use gpufortrt_types, only: gpufortrt_handle_kind - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - integer(gpufortrt_handle_kind),value,intent(in) :: async_arg - end subroutine - end interface - ! - if ( present(async_arg) ) then - if ( present(finalize) ) then - call gpufortrt_delete_finalize_async_c_impl(hostptr,num_bytes,async_arg) - else - call gpufortrt_delete_async_c_impl(hostptr,num_bytes,async_arg) - endif - else - if ( present(finalize) ) then - call gpufortrt_delete_finalize_c_impl(hostptr,num_bytes) - else - call gpufortrt_delete_c_impl(hostptr,num_bytes) - endif - endif - end subroutine - - subroutine gpufortrt_copyout_b(hostptr,num_bytes,async_arg,finalize) - use iso_c_binding - use gpufortrt_types, only: gpufortrt_handle_kind - implicit none - type(c_ptr), intent(in) :: hostptr - integer(c_size_t),intent(in),optional :: num_bytes - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - interface - subroutine gpufortrt_copyout_c_impl(hostptr,num_bytes) & - bind(c,name="gpufortrt_copyout") - use iso_c_binding - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - end subroutine - subroutine gpufortrt_copyout_finalize_c_impl(hostptr,num_bytes) & - bind(c,name="gpufortrt_copyout_finalize") - use iso_c_binding - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - end subroutine - subroutine gpufortrt_copyout_async_c_impl(hostptr,num_bytes,async_arg) & - bind(c,name="gpufortrt_copyout_async") - use iso_c_binding - use gpufortrt_types, only: gpufortrt_handle_kind - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - integer(gpufortrt_handle_kind),value,intent(in) :: async_arg - end subroutine - subroutine gpufortrt_copyout_finalize_async_c_impl(hostptr,num_bytes,async_arg) & - bind(c,name="gpufortrt_copyout_finalize_async") - use iso_c_binding - use gpufortrt_types, only: gpufortrt_handle_kind - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - integer(gpufortrt_handle_kind),value,intent(in) :: async_arg - end subroutine - end interface - ! - if ( present(async_arg) ) then - if ( present(finalize) ) then - call gpufortrt_copyout_finalize_async_c_impl(hostptr,num_bytes,async_arg) - else - call gpufortrt_copyout_async_c_impl(hostptr,num_bytes,async_arg) - endif - else - if ( present(finalize) ) then - call gpufortrt_copyout_finalize_c_impl(hostptr,num_bytes) - else - call gpufortrt_copyout_c_impl(hostptr,num_bytes) - endif - endif - end subroutine - - - !> (Specialized version for Fortran scalar arguments) - subroutine gpufortrt_delete0_l1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete1_l1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete2_l1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete3_l1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete4_l1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete5_l1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete6_l1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete7_l1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran scalar arguments) - subroutine gpufortrt_delete0_l4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete1_l4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete2_l4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete3_l4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete4_l4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete5_l4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete6_l4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete7_l4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran scalar arguments) - subroutine gpufortrt_delete0_ch1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete1_ch1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete2_ch1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete3_ch1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete4_ch1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete5_ch1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete6_ch1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete7_ch1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran scalar arguments) - subroutine gpufortrt_delete0_i1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete1_i1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete2_i1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete3_i1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete4_i1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete5_i1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete6_i1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete7_i1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran scalar arguments) - subroutine gpufortrt_delete0_i2(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2,kind=c_size_t),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete1_i2(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete2_i2(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete3_i2(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete4_i2(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete5_i2(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete6_i2(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete7_i2(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran scalar arguments) - subroutine gpufortrt_delete0_i4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete1_i4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete2_i4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete3_i4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete4_i4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete5_i4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete6_i4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete7_i4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran scalar arguments) - subroutine gpufortrt_delete0_i8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete1_i8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete2_i8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete3_i8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete4_i8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete5_i8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete6_i8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete7_i8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran scalar arguments) - subroutine gpufortrt_delete0_r4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete1_r4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete2_r4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete3_r4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete4_r4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete5_r4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete6_r4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete7_r4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran scalar arguments) - subroutine gpufortrt_delete0_r8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete1_r8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete2_r8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete3_r8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete4_r8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete5_r8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete6_r8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete7_r8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran scalar arguments) - subroutine gpufortrt_delete0_c4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2*4,kind=c_size_t),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete1_c4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete2_c4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete3_c4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete4_c4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete5_c4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete6_c4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete7_c4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran scalar arguments) - subroutine gpufortrt_delete0_c8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2*8,kind=c_size_t),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete1_c8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete2_c8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete3_c8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete4_c8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete5_c8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete6_c8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_delete7_c8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_delete_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran scalar arguments) - subroutine gpufortrt_copyout0_l1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout1_l1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout2_l1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout3_l1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout4_l1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout5_l1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout6_l1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout7_l1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran scalar arguments) - subroutine gpufortrt_copyout0_l4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout1_l4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout2_l4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout3_l4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout4_l4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout5_l4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout6_l4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout7_l4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran scalar arguments) - subroutine gpufortrt_copyout0_ch1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout1_ch1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout2_ch1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout3_ch1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout4_ch1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout5_ch1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout6_ch1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout7_ch1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran scalar arguments) - subroutine gpufortrt_copyout0_i1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout1_i1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout2_i1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout3_i1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout4_i1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout5_i1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout6_i1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout7_i1(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(1,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran scalar arguments) - subroutine gpufortrt_copyout0_i2(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2,kind=c_size_t),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout1_i2(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout2_i2(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout3_i2(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout4_i2(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout5_i2(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout6_i2(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout7_i2(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran scalar arguments) - subroutine gpufortrt_copyout0_i4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout1_i4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout2_i4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout3_i4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout4_i4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout5_i4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout6_i4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout7_i4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran scalar arguments) - subroutine gpufortrt_copyout0_i8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout1_i8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout2_i8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout3_i8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout4_i8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout5_i8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout6_i8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout7_i8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran scalar arguments) - subroutine gpufortrt_copyout0_r4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout1_r4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout2_r4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout3_r4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout4_r4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout5_r4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout6_r4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout7_r4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran scalar arguments) - subroutine gpufortrt_copyout0_r8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout1_r8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout2_r8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout3_r8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout4_r8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout5_r8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout6_r8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout7_r8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran scalar arguments) - subroutine gpufortrt_copyout0_c4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2*4,kind=c_size_t),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout1_c4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout2_c4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout3_c4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout4_c4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout5_c4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout6_c4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout7_c4(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2*4,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran scalar arguments) - subroutine gpufortrt_copyout0_c8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2*8,kind=c_size_t),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout1_c8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout2_c8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout3_c8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout4_c8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout5_c8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout6_c8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - !> (Specialized version for Fortran array arguments) - subroutine gpufortrt_copyout7_c8(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_copyout_b(c_loc(hostptr),int(2*8,kind=c_size_t)*size(hostptr),& - async_arg,finalize) - end subroutine - - - -subroutine gpufortrt_update_self_b(hostptr,num_bytes,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),intent(in) :: hostptr - integer(c_size_t),intent(in) :: num_bytes - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - interface - subroutine gpufortrt_update_self_c_impl(hostptr,num_bytes,if_arg,if_present_arg) & - bind(c,name="gpufortrt_update_self") - use iso_c_binding - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - logical(c_bool),value,intent(in) :: if_arg, if_present_arg - end subroutine - subroutine gpufortrt_update_self_async_c_impl(hostptr,num_bytes,if_arg,if_present_arg,async_arg) & - bind(c,name="gpufortrt_update_self_async") - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - logical(c_bool),value,intent(in) :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),value,intent(in) :: async_arg - end subroutine - end interface - logical :: opt_if_arg, opt_if_present_arg - ! - opt_if_arg = .true. - opt_if_present_arg = .false. - if ( present(if_arg) ) opt_if_arg = if_arg - if ( present(if_present_arg) ) opt_if_present_arg = if_present_arg - ! - if ( present(async_arg) ) then - call gpufortrt_update_self_async_c_impl(hostptr,& - num_bytes,& - logical(opt_if_arg,c_bool),& - logical(opt_if_present_arg,c_bool),& - async_arg) - else - call gpufortrt_update_self_c_impl(hostptr,& - num_bytes,& - logical(opt_if_arg,c_bool),& - logical(opt_if_present_arg,c_bool)) - endif -end subroutine - -subroutine gpufortrt_update_self0_l1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self1_l1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self2_l1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self3_l1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self4_l1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self5_l1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self6_l1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self7_l1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self0_l4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self1_l4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self2_l4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self3_l4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self4_l4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self5_l4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self6_l4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self7_l4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self0_ch1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self1_ch1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self2_ch1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self3_ch1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self4_ch1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self5_ch1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self6_ch1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self7_ch1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self0_i1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self1_i1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self2_i1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self3_i1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self4_i1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self5_i1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self6_i1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self7_i1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self0_i2(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2,c_size_t),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self1_i2(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self2_i2(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self3_i2(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self4_i2(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self5_i2(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self6_i2(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self7_i2(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self0_i4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self1_i4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self2_i4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self3_i4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self4_i4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self5_i4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self6_i4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self7_i4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self0_i8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self1_i8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self2_i8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self3_i8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self4_i8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self5_i8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self6_i8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self7_i8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self0_r4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self1_r4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self2_r4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self3_r4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self4_r4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self5_r4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self6_r4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self7_r4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self0_r8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self1_r8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self2_r8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self3_r8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self4_r8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self5_r8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self6_r8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self7_r8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self0_c4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2*4,c_size_t),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self1_c4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self2_c4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self3_c4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self4_c4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self5_c4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self6_c4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self7_c4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self0_c8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2*8,c_size_t),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self1_c8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self2_c8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self3_c8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self4_c8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self5_c8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self6_c8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -subroutine gpufortrt_update_self7_c8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_self_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - - - - subroutine gpufortrt_update_device_b(hostptr,num_bytes,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),intent(in) :: hostptr - integer(c_size_t),intent(in) :: num_bytes - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - interface - subroutine gpufortrt_update_device_c_impl(hostptr,num_bytes,if_arg,if_present_arg) & - bind(c,name="gpufortrt_update_device") - use iso_c_binding - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - logical(c_bool),value,intent(in) :: if_arg, if_present_arg - end subroutine - subroutine gpufortrt_update_device_async_c_impl(hostptr,num_bytes,if_arg,if_present_arg,async_arg) & - bind(c,name="gpufortrt_update_device_async") - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - logical(c_bool),value,intent(in) :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),value,intent(in) :: async_arg - end subroutine - end interface - logical :: opt_if_arg, opt_if_present_arg - ! - opt_if_arg = .true. - opt_if_present_arg = .false. - if ( present(if_arg) ) opt_if_arg = if_arg - if ( present(if_present_arg) ) opt_if_present_arg = if_present_arg - ! - if ( present(async_arg) ) then - call gpufortrt_update_device_async_c_impl(hostptr,& - num_bytes,& - logical(opt_if_arg,c_bool),& - logical(opt_if_present_arg,c_bool),& - async_arg) - else - call gpufortrt_update_device_c_impl(hostptr,& - num_bytes,& - logical(opt_if_arg,c_bool),& - logical(opt_if_present_arg,c_bool)) - endif - end subroutine - - subroutine gpufortrt_update_device0_l1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device1_l1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device2_l1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device3_l1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device4_l1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device5_l1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device6_l1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device7_l1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device0_l4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device1_l4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device2_l4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device3_l4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device4_l4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device5_l4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device6_l4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device7_l4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device0_ch1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device1_ch1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device2_ch1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device3_ch1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device4_ch1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device5_ch1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device6_ch1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device7_ch1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device0_i1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device1_i1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device2_i1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device3_i1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device4_i1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device5_i1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device6_i1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device7_i1(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(1,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device0_i2(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2,c_size_t),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device1_i2(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device2_i2(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device3_i2(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device4_i2(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device5_i2(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device6_i2(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device7_i2(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device0_i4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device1_i4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device2_i4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device3_i4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device4_i4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device5_i4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device6_i4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device7_i4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device0_i8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device1_i8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device2_i8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device3_i8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device4_i8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device5_i8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device6_i8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device7_i8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device0_r4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device1_r4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device2_r4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device3_r4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device4_r4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device5_r4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device6_r4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device7_r4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device0_r8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device1_r8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device2_r8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device3_r8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device4_r8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device5_r8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device6_r8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device7_r8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device0_c4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2*4,c_size_t),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device1_c4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device2_c4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device3_c4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device4_c4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device5_c4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device6_c4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device7_c4(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2*4,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device0_c8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2*8,c_size_t),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device1_c8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device2_c8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device3_c8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device4_c8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device5_c8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device6_c8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - subroutine gpufortrt_update_device7_c8(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_device_b(c_loc(hostptr),int(2*8,c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) - end subroutine - - - - subroutine gpufortrt_use_device0_l1(resultptr,hostptr,if_arg,if_present_arg) - use iso_c_binding - implicit none - logical(c_bool),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - ! - logical(c_bool),pointer,intent(inout) :: resultptr - ! - type(c_ptr) :: tmp_cptr - ! - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr) - end subroutine - - subroutine gpufortrt_use_device1_l1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - logical(c_bool),target,intent(in) :: hostptr(*) - integer,intent(in),optional :: sizes(1), lbounds(1) - logical,intent(in),optional :: if_arg, if_present_arg - ! - logical(c_bool),pointer,intent(inout) :: resultptr(:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(1), opt_lbounds(1) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device2_l1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - logical(c_bool),target,intent(in) :: hostptr(1:1,*) - integer,intent(in),optional :: sizes(2), lbounds(2) - logical,intent(in),optional :: if_arg, if_present_arg - ! - logical(c_bool),pointer,intent(inout) :: resultptr(:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(2), opt_lbounds(2) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device3_l1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - logical(c_bool),target,intent(in) :: hostptr(1:1,1:1,*) - integer,intent(in),optional :: sizes(3), lbounds(3) - logical,intent(in),optional :: if_arg, if_present_arg - ! - logical(c_bool),pointer,intent(inout) :: resultptr(:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(3), opt_lbounds(3) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device4_l1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - logical(c_bool),target,intent(in) :: hostptr(1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(4), lbounds(4) - logical,intent(in),optional :: if_arg, if_present_arg - ! - logical(c_bool),pointer,intent(inout) :: resultptr(:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(4), opt_lbounds(4) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device5_l1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - logical(c_bool),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(5), lbounds(5) - logical,intent(in),optional :: if_arg, if_present_arg - ! - logical(c_bool),pointer,intent(inout) :: resultptr(:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(5), opt_lbounds(5) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device6_l1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - logical(c_bool),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(6), lbounds(6) - logical,intent(in),optional :: if_arg, if_present_arg - ! - logical(c_bool),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(6), opt_lbounds(6) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):,& - opt_lbounds(6):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device7_l1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - logical(c_bool),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(7), lbounds(7) - logical,intent(in),optional :: if_arg, if_present_arg - ! - logical(c_bool),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(7), opt_lbounds(7) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):,& - opt_lbounds(6):,& - opt_lbounds(7):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device0_l4(resultptr,hostptr,if_arg,if_present_arg) - use iso_c_binding - implicit none - logical,target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - ! - logical,pointer,intent(inout) :: resultptr - ! - type(c_ptr) :: tmp_cptr - ! - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr) - end subroutine - - subroutine gpufortrt_use_device1_l4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - logical,target,intent(in) :: hostptr(*) - integer,intent(in),optional :: sizes(1), lbounds(1) - logical,intent(in),optional :: if_arg, if_present_arg - ! - logical,pointer,intent(inout) :: resultptr(:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(1), opt_lbounds(1) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device2_l4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - logical,target,intent(in) :: hostptr(1:1,*) - integer,intent(in),optional :: sizes(2), lbounds(2) - logical,intent(in),optional :: if_arg, if_present_arg - ! - logical,pointer,intent(inout) :: resultptr(:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(2), opt_lbounds(2) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device3_l4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - logical,target,intent(in) :: hostptr(1:1,1:1,*) - integer,intent(in),optional :: sizes(3), lbounds(3) - logical,intent(in),optional :: if_arg, if_present_arg - ! - logical,pointer,intent(inout) :: resultptr(:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(3), opt_lbounds(3) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device4_l4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - logical,target,intent(in) :: hostptr(1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(4), lbounds(4) - logical,intent(in),optional :: if_arg, if_present_arg - ! - logical,pointer,intent(inout) :: resultptr(:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(4), opt_lbounds(4) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device5_l4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - logical,target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(5), lbounds(5) - logical,intent(in),optional :: if_arg, if_present_arg - ! - logical,pointer,intent(inout) :: resultptr(:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(5), opt_lbounds(5) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device6_l4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - logical,target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(6), lbounds(6) - logical,intent(in),optional :: if_arg, if_present_arg - ! - logical,pointer,intent(inout) :: resultptr(:,:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(6), opt_lbounds(6) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):,& - opt_lbounds(6):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device7_l4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - logical,target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(7), lbounds(7) - logical,intent(in),optional :: if_arg, if_present_arg - ! - logical,pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(7), opt_lbounds(7) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):,& - opt_lbounds(6):,& - opt_lbounds(7):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device0_ch1(resultptr,hostptr,if_arg,if_present_arg) - use iso_c_binding - implicit none - character(c_char),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - ! - character(c_char),pointer,intent(inout) :: resultptr - ! - type(c_ptr) :: tmp_cptr - ! - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr) - end subroutine - - subroutine gpufortrt_use_device1_ch1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - character(c_char),target,intent(in) :: hostptr(*) - integer,intent(in),optional :: sizes(1), lbounds(1) - logical,intent(in),optional :: if_arg, if_present_arg - ! - character(c_char),pointer,intent(inout) :: resultptr(:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(1), opt_lbounds(1) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device2_ch1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - character(c_char),target,intent(in) :: hostptr(1:1,*) - integer,intent(in),optional :: sizes(2), lbounds(2) - logical,intent(in),optional :: if_arg, if_present_arg - ! - character(c_char),pointer,intent(inout) :: resultptr(:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(2), opt_lbounds(2) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device3_ch1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - character(c_char),target,intent(in) :: hostptr(1:1,1:1,*) - integer,intent(in),optional :: sizes(3), lbounds(3) - logical,intent(in),optional :: if_arg, if_present_arg - ! - character(c_char),pointer,intent(inout) :: resultptr(:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(3), opt_lbounds(3) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device4_ch1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - character(c_char),target,intent(in) :: hostptr(1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(4), lbounds(4) - logical,intent(in),optional :: if_arg, if_present_arg - ! - character(c_char),pointer,intent(inout) :: resultptr(:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(4), opt_lbounds(4) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device5_ch1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - character(c_char),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(5), lbounds(5) - logical,intent(in),optional :: if_arg, if_present_arg - ! - character(c_char),pointer,intent(inout) :: resultptr(:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(5), opt_lbounds(5) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device6_ch1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - character(c_char),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(6), lbounds(6) - logical,intent(in),optional :: if_arg, if_present_arg - ! - character(c_char),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(6), opt_lbounds(6) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):,& - opt_lbounds(6):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device7_ch1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - character(c_char),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(7), lbounds(7) - logical,intent(in),optional :: if_arg, if_present_arg - ! - character(c_char),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(7), opt_lbounds(7) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):,& - opt_lbounds(6):,& - opt_lbounds(7):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device0_i1(resultptr,hostptr,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_int8_t),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_int8_t),pointer,intent(inout) :: resultptr - ! - type(c_ptr) :: tmp_cptr - ! - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr) - end subroutine - - subroutine gpufortrt_use_device1_i1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(*) - integer,intent(in),optional :: sizes(1), lbounds(1) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_int8_t),pointer,intent(inout) :: resultptr(:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(1), opt_lbounds(1) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device2_i1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(1:1,*) - integer,intent(in),optional :: sizes(2), lbounds(2) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_int8_t),pointer,intent(inout) :: resultptr(:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(2), opt_lbounds(2) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device3_i1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(1:1,1:1,*) - integer,intent(in),optional :: sizes(3), lbounds(3) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_int8_t),pointer,intent(inout) :: resultptr(:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(3), opt_lbounds(3) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device4_i1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(4), lbounds(4) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_int8_t),pointer,intent(inout) :: resultptr(:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(4), opt_lbounds(4) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device5_i1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(5), lbounds(5) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_int8_t),pointer,intent(inout) :: resultptr(:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(5), opt_lbounds(5) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device6_i1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(6), lbounds(6) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_int8_t),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(6), opt_lbounds(6) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):,& - opt_lbounds(6):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device7_i1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(7), lbounds(7) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_int8_t),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(7), opt_lbounds(7) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):,& - opt_lbounds(6):,& - opt_lbounds(7):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device0_i2(resultptr,hostptr,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_short),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_short),pointer,intent(inout) :: resultptr - ! - type(c_ptr) :: tmp_cptr - ! - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr) - end subroutine - - subroutine gpufortrt_use_device1_i2(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_short),target,intent(in) :: hostptr(*) - integer,intent(in),optional :: sizes(1), lbounds(1) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_short),pointer,intent(inout) :: resultptr(:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(1), opt_lbounds(1) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device2_i2(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_short),target,intent(in) :: hostptr(1:1,*) - integer,intent(in),optional :: sizes(2), lbounds(2) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_short),pointer,intent(inout) :: resultptr(:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(2), opt_lbounds(2) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device3_i2(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_short),target,intent(in) :: hostptr(1:1,1:1,*) - integer,intent(in),optional :: sizes(3), lbounds(3) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_short),pointer,intent(inout) :: resultptr(:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(3), opt_lbounds(3) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device4_i2(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_short),target,intent(in) :: hostptr(1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(4), lbounds(4) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_short),pointer,intent(inout) :: resultptr(:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(4), opt_lbounds(4) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device5_i2(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_short),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(5), lbounds(5) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_short),pointer,intent(inout) :: resultptr(:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(5), opt_lbounds(5) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device6_i2(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_short),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(6), lbounds(6) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_short),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(6), opt_lbounds(6) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):,& - opt_lbounds(6):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device7_i2(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_short),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(7), lbounds(7) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_short),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(7), opt_lbounds(7) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):,& - opt_lbounds(6):,& - opt_lbounds(7):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device0_i4(resultptr,hostptr,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_int),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_int),pointer,intent(inout) :: resultptr - ! - type(c_ptr) :: tmp_cptr - ! - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr) - end subroutine - - subroutine gpufortrt_use_device1_i4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_int),target,intent(in) :: hostptr(*) - integer,intent(in),optional :: sizes(1), lbounds(1) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_int),pointer,intent(inout) :: resultptr(:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(1), opt_lbounds(1) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device2_i4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_int),target,intent(in) :: hostptr(1:1,*) - integer,intent(in),optional :: sizes(2), lbounds(2) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_int),pointer,intent(inout) :: resultptr(:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(2), opt_lbounds(2) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device3_i4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_int),target,intent(in) :: hostptr(1:1,1:1,*) - integer,intent(in),optional :: sizes(3), lbounds(3) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_int),pointer,intent(inout) :: resultptr(:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(3), opt_lbounds(3) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device4_i4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_int),target,intent(in) :: hostptr(1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(4), lbounds(4) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_int),pointer,intent(inout) :: resultptr(:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(4), opt_lbounds(4) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device5_i4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_int),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(5), lbounds(5) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_int),pointer,intent(inout) :: resultptr(:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(5), opt_lbounds(5) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device6_i4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_int),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(6), lbounds(6) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_int),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(6), opt_lbounds(6) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):,& - opt_lbounds(6):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device7_i4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_int),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(7), lbounds(7) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_int),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(7), opt_lbounds(7) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):,& - opt_lbounds(6):,& - opt_lbounds(7):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device0_i8(resultptr,hostptr,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_long),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_long),pointer,intent(inout) :: resultptr - ! - type(c_ptr) :: tmp_cptr - ! - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr) - end subroutine - - subroutine gpufortrt_use_device1_i8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_long),target,intent(in) :: hostptr(*) - integer,intent(in),optional :: sizes(1), lbounds(1) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_long),pointer,intent(inout) :: resultptr(:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(1), opt_lbounds(1) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device2_i8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_long),target,intent(in) :: hostptr(1:1,*) - integer,intent(in),optional :: sizes(2), lbounds(2) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_long),pointer,intent(inout) :: resultptr(:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(2), opt_lbounds(2) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device3_i8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_long),target,intent(in) :: hostptr(1:1,1:1,*) - integer,intent(in),optional :: sizes(3), lbounds(3) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_long),pointer,intent(inout) :: resultptr(:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(3), opt_lbounds(3) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device4_i8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_long),target,intent(in) :: hostptr(1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(4), lbounds(4) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_long),pointer,intent(inout) :: resultptr(:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(4), opt_lbounds(4) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device5_i8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_long),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(5), lbounds(5) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_long),pointer,intent(inout) :: resultptr(:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(5), opt_lbounds(5) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device6_i8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_long),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(6), lbounds(6) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_long),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(6), opt_lbounds(6) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):,& - opt_lbounds(6):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device7_i8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - integer(c_long),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(7), lbounds(7) - logical,intent(in),optional :: if_arg, if_present_arg - ! - integer(c_long),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(7), opt_lbounds(7) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):,& - opt_lbounds(6):,& - opt_lbounds(7):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device0_r4(resultptr,hostptr,if_arg,if_present_arg) - use iso_c_binding - implicit none - real(c_float),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - ! - real(c_float),pointer,intent(inout) :: resultptr - ! - type(c_ptr) :: tmp_cptr - ! - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr) - end subroutine - - subroutine gpufortrt_use_device1_r4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - real(c_float),target,intent(in) :: hostptr(*) - integer,intent(in),optional :: sizes(1), lbounds(1) - logical,intent(in),optional :: if_arg, if_present_arg - ! - real(c_float),pointer,intent(inout) :: resultptr(:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(1), opt_lbounds(1) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device2_r4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - real(c_float),target,intent(in) :: hostptr(1:1,*) - integer,intent(in),optional :: sizes(2), lbounds(2) - logical,intent(in),optional :: if_arg, if_present_arg - ! - real(c_float),pointer,intent(inout) :: resultptr(:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(2), opt_lbounds(2) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device3_r4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - real(c_float),target,intent(in) :: hostptr(1:1,1:1,*) - integer,intent(in),optional :: sizes(3), lbounds(3) - logical,intent(in),optional :: if_arg, if_present_arg - ! - real(c_float),pointer,intent(inout) :: resultptr(:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(3), opt_lbounds(3) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device4_r4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - real(c_float),target,intent(in) :: hostptr(1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(4), lbounds(4) - logical,intent(in),optional :: if_arg, if_present_arg - ! - real(c_float),pointer,intent(inout) :: resultptr(:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(4), opt_lbounds(4) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device5_r4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - real(c_float),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(5), lbounds(5) - logical,intent(in),optional :: if_arg, if_present_arg - ! - real(c_float),pointer,intent(inout) :: resultptr(:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(5), opt_lbounds(5) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device6_r4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - real(c_float),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(6), lbounds(6) - logical,intent(in),optional :: if_arg, if_present_arg - ! - real(c_float),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(6), opt_lbounds(6) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):,& - opt_lbounds(6):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device7_r4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - real(c_float),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(7), lbounds(7) - logical,intent(in),optional :: if_arg, if_present_arg - ! - real(c_float),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(7), opt_lbounds(7) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):,& - opt_lbounds(6):,& - opt_lbounds(7):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device0_r8(resultptr,hostptr,if_arg,if_present_arg) - use iso_c_binding - implicit none - real(c_double),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - ! - real(c_double),pointer,intent(inout) :: resultptr - ! - type(c_ptr) :: tmp_cptr - ! - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr) - end subroutine - - subroutine gpufortrt_use_device1_r8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - real(c_double),target,intent(in) :: hostptr(*) - integer,intent(in),optional :: sizes(1), lbounds(1) - logical,intent(in),optional :: if_arg, if_present_arg - ! - real(c_double),pointer,intent(inout) :: resultptr(:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(1), opt_lbounds(1) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device2_r8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - real(c_double),target,intent(in) :: hostptr(1:1,*) - integer,intent(in),optional :: sizes(2), lbounds(2) - logical,intent(in),optional :: if_arg, if_present_arg - ! - real(c_double),pointer,intent(inout) :: resultptr(:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(2), opt_lbounds(2) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device3_r8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - real(c_double),target,intent(in) :: hostptr(1:1,1:1,*) - integer,intent(in),optional :: sizes(3), lbounds(3) - logical,intent(in),optional :: if_arg, if_present_arg - ! - real(c_double),pointer,intent(inout) :: resultptr(:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(3), opt_lbounds(3) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device4_r8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - real(c_double),target,intent(in) :: hostptr(1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(4), lbounds(4) - logical,intent(in),optional :: if_arg, if_present_arg - ! - real(c_double),pointer,intent(inout) :: resultptr(:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(4), opt_lbounds(4) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device5_r8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - real(c_double),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(5), lbounds(5) - logical,intent(in),optional :: if_arg, if_present_arg - ! - real(c_double),pointer,intent(inout) :: resultptr(:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(5), opt_lbounds(5) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device6_r8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - real(c_double),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(6), lbounds(6) - logical,intent(in),optional :: if_arg, if_present_arg - ! - real(c_double),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(6), opt_lbounds(6) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):,& - opt_lbounds(6):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device7_r8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - real(c_double),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(7), lbounds(7) - logical,intent(in),optional :: if_arg, if_present_arg - ! - real(c_double),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(7), opt_lbounds(7) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):,& - opt_lbounds(6):,& - opt_lbounds(7):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device0_c4(resultptr,hostptr,if_arg,if_present_arg) - use iso_c_binding - implicit none - complex(c_float_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - ! - complex(c_float_complex),pointer,intent(inout) :: resultptr - ! - type(c_ptr) :: tmp_cptr - ! - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr) - end subroutine - - subroutine gpufortrt_use_device1_c4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(*) - integer,intent(in),optional :: sizes(1), lbounds(1) - logical,intent(in),optional :: if_arg, if_present_arg - ! - complex(c_float_complex),pointer,intent(inout) :: resultptr(:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(1), opt_lbounds(1) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device2_c4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(1:1,*) - integer,intent(in),optional :: sizes(2), lbounds(2) - logical,intent(in),optional :: if_arg, if_present_arg - ! - complex(c_float_complex),pointer,intent(inout) :: resultptr(:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(2), opt_lbounds(2) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device3_c4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(1:1,1:1,*) - integer,intent(in),optional :: sizes(3), lbounds(3) - logical,intent(in),optional :: if_arg, if_present_arg - ! - complex(c_float_complex),pointer,intent(inout) :: resultptr(:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(3), opt_lbounds(3) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device4_c4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(4), lbounds(4) - logical,intent(in),optional :: if_arg, if_present_arg - ! - complex(c_float_complex),pointer,intent(inout) :: resultptr(:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(4), opt_lbounds(4) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device5_c4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(5), lbounds(5) - logical,intent(in),optional :: if_arg, if_present_arg - ! - complex(c_float_complex),pointer,intent(inout) :: resultptr(:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(5), opt_lbounds(5) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device6_c4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(6), lbounds(6) - logical,intent(in),optional :: if_arg, if_present_arg - ! - complex(c_float_complex),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(6), opt_lbounds(6) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):,& - opt_lbounds(6):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device7_c4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(7), lbounds(7) - logical,intent(in),optional :: if_arg, if_present_arg - ! - complex(c_float_complex),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(7), opt_lbounds(7) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):,& - opt_lbounds(6):,& - opt_lbounds(7):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device0_c8(resultptr,hostptr,if_arg,if_present_arg) - use iso_c_binding - implicit none - complex(c_double_complex),target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - ! - complex(c_double_complex),pointer,intent(inout) :: resultptr - ! - type(c_ptr) :: tmp_cptr - ! - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr) - end subroutine - - subroutine gpufortrt_use_device1_c8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(*) - integer,intent(in),optional :: sizes(1), lbounds(1) - logical,intent(in),optional :: if_arg, if_present_arg - ! - complex(c_double_complex),pointer,intent(inout) :: resultptr(:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(1), opt_lbounds(1) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device2_c8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(1:1,*) - integer,intent(in),optional :: sizes(2), lbounds(2) - logical,intent(in),optional :: if_arg, if_present_arg - ! - complex(c_double_complex),pointer,intent(inout) :: resultptr(:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(2), opt_lbounds(2) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device3_c8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(1:1,1:1,*) - integer,intent(in),optional :: sizes(3), lbounds(3) - logical,intent(in),optional :: if_arg, if_present_arg - ! - complex(c_double_complex),pointer,intent(inout) :: resultptr(:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(3), opt_lbounds(3) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device4_c8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(4), lbounds(4) - logical,intent(in),optional :: if_arg, if_present_arg - ! - complex(c_double_complex),pointer,intent(inout) :: resultptr(:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(4), opt_lbounds(4) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device5_c8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(5), lbounds(5) - logical,intent(in),optional :: if_arg, if_present_arg - ! - complex(c_double_complex),pointer,intent(inout) :: resultptr(:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(5), opt_lbounds(5) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device6_c8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(6), lbounds(6) - logical,intent(in),optional :: if_arg, if_present_arg - ! - complex(c_double_complex),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(6), opt_lbounds(6) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):,& - opt_lbounds(6):)& - => resultptr - end subroutine - - subroutine gpufortrt_use_device7_c8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) - integer,intent(in),optional :: sizes(7), lbounds(7) - logical,intent(in),optional :: if_arg, if_present_arg - ! - complex(c_double_complex),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes(7), opt_lbounds(7) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - resultptr(& - opt_lbounds(1):,& - opt_lbounds(2):,& - opt_lbounds(3):,& - opt_lbounds(4):,& - opt_lbounds(5):,& - opt_lbounds(6):,& - opt_lbounds(7):)& - => resultptr - end subroutine - - - - function gpufortrt_deviceptr0_l1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr1_l1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr2_l1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr3_l1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr4_l1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr5_l1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr6_l1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr7_l1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical(c_bool),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr0_l4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr1_l4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr2_l4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr3_l4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr4_l4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr5_l4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr6_l4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr7_l4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - logical,target,intent(in) :: hostptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr0_ch1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr1_ch1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr2_ch1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr3_ch1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr4_ch1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr5_ch1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr6_ch1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr7_ch1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - character(c_char),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr0_i1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr1_i1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr2_i1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr3_i1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr4_i1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr5_i1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr6_i1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr7_i1(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int8_t),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr0_i2(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr1_i2(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr2_i2(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr3_i2(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr4_i2(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr5_i2(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr6_i2(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr7_i2(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_short),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr0_i4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr1_i4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr2_i4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr3_i4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr4_i4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr5_i4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr6_i4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr7_i4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_int),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + type(*), dimension(..), target, intent(in) :: hostptr + integer(c_size_t),intent(in), optional :: num_bytes + logical, intent(in), optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg ! type(c_ptr) :: deviceptr ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr0_i8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr1_i8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr2_i8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr3_i8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr4_i8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr5_i8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr6_i8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr7_i8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - integer(c_long),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr0_r4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr1_r4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr2_r4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr3_r4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr4_r4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr5_r4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr6_r4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr7_r4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_float),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr0_r8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr1_r8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr2_r8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr3_r8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr4_r8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr5_r8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr6_r8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr7_r8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - real(c_double),target,intent(in) :: hostptr(:,:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr0_c4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr1_c4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr2_c4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr3_c4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr4_c4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr5_c4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:) + interface + function gpufortrt_create_c_impl(hostptr,num_bytes,never_deallocate) & + bind(c,name="gpufortrt_create") result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + logical(c_bool),value,intent(in) :: never_deallocate + ! + type(c_ptr) :: deviceptr + end function + function gpufortrt_create_async_c_impl(hostptr,num_bytes,never_deallocate,async_arg) & + bind(c,name="gpufortrt_create_async") result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + logical(c_bool),value,intent(in) :: never_deallocate + integer(gpufortrt_handle_kind),value,intent(in) :: async_arg + ! + type(c_ptr) :: deviceptr + end function + end interface ! - type(c_ptr) :: deviceptr + integer(c_size_t) :: opt_num_bytes + logical(c_bool) :: opt_never_deallocate ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + opt_never_deallocate = .false._c_bool + opt_num_bytes = int(sizeof(hostptr), kind=c_size_t) + if ( present(never_deallocate) ) opt_never_deallocate = never_deallocate + if ( present(num_bytes) ) opt_num_bytes = num_bytes + if ( present(async_arg) ) then + deviceptr = gpufortrt_create_async_c_impl(c_loc(hostptr),opt_num_bytes,opt_never_deallocate,async_arg) + else + deviceptr = gpufortrt_create_c_impl(c_loc(hostptr),opt_num_bytes,opt_never_deallocate) + endif end function - function gpufortrt_deviceptr6_c4(hostptr) result(deviceptr) + function gpufortrt_copyin(hostptr,num_bytes,never_deallocate,async_arg) result(deviceptr) use iso_c_binding use gpufortrt_types implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) + type(*), dimension(..), target, intent(in) :: hostptr + integer(c_size_t),intent(in),optional :: num_bytes + logical,intent(in),optional :: never_deallocate + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg ! type(c_ptr) :: deviceptr ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr7_c4(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_float_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + interface + function gpufortrt_copyin_c_impl(hostptr,num_bytes,never_deallocate) & + bind(c,name="gpufortrt_copyin") result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + logical(c_bool),value,intent(in) :: never_deallocate + ! + type(c_ptr) :: deviceptr + end function + function gpufortrt_copyin_async_c_impl(hostptr,num_bytes,never_deallocate,async_arg) & + bind(c,name="gpufortrt_copyin_async") result(deviceptr) + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + logical(c_bool),value,intent(in) :: never_deallocate + integer(gpufortrt_handle_kind),value,intent(in) :: async_arg + ! + type(c_ptr) :: deviceptr + end function + end interface ! - type(c_ptr) :: deviceptr + logical(c_bool) :: opt_never_deallocate + integer(c_size_t) :: opt_num_bytes ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) + opt_never_deallocate = .false._c_bool + opt_num_bytes = int(sizeof(hostptr), kind=c_size_t) + if ( present(never_deallocate) ) opt_never_deallocate = never_deallocate + if ( present(num_bytes) ) opt_num_bytes = num_bytes + if ( present(async_arg) ) then + deviceptr = gpufortrt_copyin_async_c_impl(c_loc(hostptr),opt_num_bytes,opt_never_deallocate,async_arg) + else + deviceptr = gpufortrt_copyin_c_impl(c_loc(hostptr),opt_num_bytes,opt_never_deallocate) + endif end function - function gpufortrt_deviceptr0_c8(hostptr) result(deviceptr) + subroutine gpufortrt_delete(hostptr,num_bytes,async_arg,finalize) use iso_c_binding - use gpufortrt_types + use gpufortrt_types, only: gpufortrt_handle_kind implicit none - complex(c_double_complex),target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr + type(*), dimension(..), target, intent(in) :: hostptr + integer(c_size_t),intent(in),optional :: num_bytes + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr1_c8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:) + interface + subroutine gpufortrt_delete_c_impl(hostptr,num_bytes) & + bind(c,name="gpufortrt_delete") + use iso_c_binding + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + end subroutine + subroutine gpufortrt_delete_finalize_c_impl(hostptr,num_bytes) & + bind(c,name="gpufortrt_delete_finalize") + use iso_c_binding + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + end subroutine + subroutine gpufortrt_delete_async_c_impl(hostptr,num_bytes,async_arg) & + bind(c,name="gpufortrt_delete_async") + use iso_c_binding + use gpufortrt_types, only: gpufortrt_handle_kind + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + integer(gpufortrt_handle_kind),value,intent(in) :: async_arg + end subroutine + subroutine gpufortrt_delete_finalize_async_c_impl(hostptr,num_bytes,async_arg) & + bind(c,name="gpufortrt_delete_finalize_async") + use iso_c_binding + use gpufortrt_types, only: gpufortrt_handle_kind + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + integer(gpufortrt_handle_kind),value,intent(in) :: async_arg + end subroutine + end interface ! - type(c_ptr) :: deviceptr + integer(c_size_t) :: opt_num_bytes ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function + opt_num_bytes = int(sizeof(hostptr), kind=c_size_t) + if ( present(num_bytes) ) opt_num_bytes = num_bytes + if ( present(async_arg) ) then + if ( present(finalize) ) then + call gpufortrt_delete_finalize_async_c_impl(c_loc(hostptr),opt_num_bytes,async_arg) + else + call gpufortrt_delete_async_c_impl(c_loc(hostptr),opt_num_bytes,async_arg) + endif + else + if ( present(finalize) ) then + call gpufortrt_delete_finalize_c_impl(c_loc(hostptr),opt_num_bytes) + else + call gpufortrt_delete_c_impl(c_loc(hostptr),opt_num_bytes) + endif + endif + end subroutine - function gpufortrt_deviceptr2_c8(hostptr) result(deviceptr) + subroutine gpufortrt_copyout(hostptr,num_bytes,async_arg,finalize) use iso_c_binding - use gpufortrt_types + use gpufortrt_types, only: gpufortrt_handle_kind implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:) - ! - type(c_ptr) :: deviceptr + type(*), dimension(..), target, intent(in) :: hostptr + integer(c_size_t),intent(in),optional :: num_bytes + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg + logical,intent(in),optional :: finalize ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr3_c8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:) + interface + subroutine gpufortrt_copyout_c_impl(hostptr,num_bytes) & + bind(c,name="gpufortrt_copyout") + use iso_c_binding + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + end subroutine + subroutine gpufortrt_copyout_finalize_c_impl(hostptr,num_bytes) & + bind(c,name="gpufortrt_copyout_finalize") + use iso_c_binding + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + end subroutine + subroutine gpufortrt_copyout_async_c_impl(hostptr,num_bytes,async_arg) & + bind(c,name="gpufortrt_copyout_async") + use iso_c_binding + use gpufortrt_types, only: gpufortrt_handle_kind + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + integer(gpufortrt_handle_kind),value,intent(in) :: async_arg + end subroutine + subroutine gpufortrt_copyout_finalize_async_c_impl(hostptr,num_bytes,async_arg) & + bind(c,name="gpufortrt_copyout_finalize_async") + use iso_c_binding + use gpufortrt_types, only: gpufortrt_handle_kind + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + integer(gpufortrt_handle_kind),value,intent(in) :: async_arg + end subroutine + end interface ! - type(c_ptr) :: deviceptr + integer(c_size_t) :: opt_num_bytes ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function + opt_num_bytes = int(sizeof(hostptr), kind=c_size_t) + if ( present(num_bytes) ) opt_num_bytes = num_bytes + if ( present(async_arg) ) then + if ( present(finalize) ) then + call gpufortrt_copyout_finalize_async_c_impl(c_loc(hostptr),opt_num_bytes,async_arg) + else + call gpufortrt_copyout_async_c_impl(c_loc(hostptr),opt_num_bytes,async_arg) + endif + else + if ( present(finalize) ) then + call gpufortrt_copyout_finalize_c_impl(c_loc(hostptr),opt_num_bytes) + else + call gpufortrt_copyout_c_impl(c_loc(hostptr),opt_num_bytes) + endif + endif + end subroutine - function gpufortrt_deviceptr4_c8(hostptr) result(deviceptr) + subroutine gpufortrt_update_self(hostptr,num_bytes,if_arg,if_present_arg,async_arg) use iso_c_binding use gpufortrt_types implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:) - ! - type(c_ptr) :: deviceptr + type(*), dimension(..), target, intent(in) :: hostptr + integer(c_size_t),intent(in),optional :: num_bytes + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr5_c8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:) + interface + subroutine gpufortrt_update_self_c_impl(hostptr,num_bytes,if_arg,if_present_arg) & + bind(c,name="gpufortrt_update_self") + use iso_c_binding + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + logical(c_bool),value,intent(in) :: if_arg, if_present_arg + end subroutine + subroutine gpufortrt_update_self_async_c_impl(hostptr,num_bytes,if_arg,if_present_arg,async_arg) & + bind(c,name="gpufortrt_update_self_async") + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + logical(c_bool),value,intent(in) :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),value,intent(in) :: async_arg + end subroutine + end interface + logical :: opt_if_arg, opt_if_present_arg + integer(c_size_t) :: opt_num_bytes ! - type(c_ptr) :: deviceptr + opt_if_arg = .true. + opt_if_present_arg = .false. + opt_num_bytes = int(sizeof(hostptr), kind=c_size_t) + if ( present(if_arg) ) opt_if_arg = if_arg + if ( present(if_present_arg) ) opt_if_present_arg = if_present_arg + if ( present(num_bytes) ) opt_num_bytes = num_bytes ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function + if ( present(async_arg) ) then + call gpufortrt_update_self_async_c_impl(c_loc(hostptr),& + opt_num_bytes,& + logical(opt_if_arg,c_bool),& + logical(opt_if_present_arg,c_bool),& + async_arg) + else + call gpufortrt_update_self_c_impl(c_loc(hostptr),& + opt_num_bytes,& + logical(opt_if_arg,c_bool),& + logical(opt_if_present_arg,c_bool)) + endif + end subroutine - function gpufortrt_deviceptr6_c8(hostptr) result(deviceptr) + subroutine gpufortrt_update_device(hostptr,num_bytes,if_arg,if_present_arg,async_arg) use iso_c_binding use gpufortrt_types implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:) - ! - type(c_ptr) :: deviceptr + type(*),dimension(..),target,intent(in) :: hostptr + integer(c_size_t),intent(in),optional :: num_bytes + logical,intent(in),optional :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),intent(in),optional :: async_arg ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - function gpufortrt_deviceptr7_c8(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - complex(c_double_complex),target,intent(in) :: hostptr(:,:,:,:,:,:,:) + interface + subroutine gpufortrt_update_device_c_impl(hostptr,num_bytes,if_arg,if_present_arg) & + bind(c,name="gpufortrt_update_device") + use iso_c_binding + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + logical(c_bool),value,intent(in) :: if_arg, if_present_arg + end subroutine + subroutine gpufortrt_update_device_async_c_impl(hostptr,num_bytes,if_arg,if_present_arg,async_arg) & + bind(c,name="gpufortrt_update_device_async") + use iso_c_binding + use gpufortrt_types + implicit none + type(c_ptr),value,intent(in) :: hostptr + integer(c_size_t),value,intent(in) :: num_bytes + logical(c_bool),value,intent(in) :: if_arg, if_present_arg + integer(gpufortrt_handle_kind),value,intent(in) :: async_arg + end subroutine + end interface + logical :: opt_if_arg, opt_if_present_arg + integer(c_size_t) :: opt_num_bytes ! - type(c_ptr) :: deviceptr + opt_if_arg = .true. + opt_if_present_arg = .false. + opt_num_bytes = int(sizeof(hostptr), kind=c_size_t) + if ( present(if_arg) ) opt_if_arg = if_arg + if ( present(if_present_arg) ) opt_if_present_arg = if_present_arg + if ( present(num_bytes) ) opt_num_bytes = num_bytes ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) - end function - - + if ( present(async_arg) ) then + call gpufortrt_update_device_async_c_impl(c_loc(hostptr),& + opt_num_bytes,& + logical(opt_if_arg,c_bool),& + logical(opt_if_present_arg,c_bool),& + async_arg) + else + call gpufortrt_update_device_c_impl(c_loc(hostptr),& + opt_num_bytes,& + logical(opt_if_arg,c_bool),& + logical(opt_if_present_arg,c_bool)) + endif + end subroutine end module \ No newline at end of file diff --git a/runtime/gpufortrt/src/gpufortrt_api.macros.f90 b/runtime/gpufortrt/src/gpufortrt_api.macros.f90 deleted file mode 100644 index 8bcdda12..00000000 --- a/runtime/gpufortrt/src/gpufortrt_api.macros.f90 +++ /dev/null @@ -1,496 +0,0 @@ -{# SPDX-License-Identifier: MIT #} -{# Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. #} -{#######################################################################################} -{% macro render_interface(routine,datatypes,max_rank,include_b_variant=True) %} -{#######################################################################################} -interface {{routine}} -{% if include_b_variant %} - module procedure :: {{routine}}_b -{% endif %} -{% for triple in datatypes %} - module procedure :: {{routine}}0_{{triple[0]}} -{% for rank in range(1,max_rank+1) %} - module procedure :: {{routine}}{{rank}}_{{triple[0]}} -{% endfor %}{# rank #} -{% endfor %}{# datatypes #} -end interface -{% endmacro %} -{########################################################################################} -{%- macro render_map_routines(datatypes,max_rank) -%} -{# NOTE: type(*) is a Fortran 2018 feature. -{########################################################################################} -{% for clause in ["present","no_create","create","copyin","copy","copyout","delete"] -%} -{% set routine = "gpufortrt_map_" + clause %} -function {{routine}}_b(hostptr,num_bytes,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),intent(in) :: hostptr - integer(c_size_t),intent(in),optional :: num_bytes - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - call gpufortrt_mapping_init(retval,hostptr,num_bytes,& - gpufortrt_map_kind_{{clause}},never_deallocate) -end function - -{% for triple in datatypes -%} -!> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. -function {{routine}}0_{{triple[0]}}(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - {{triple[2]}},target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = {{routine}}_b(c_loc(hostptr),int({{triple[1]}},c_size_t),never_deallocate) -end function - -{% for rank in range(1,max_rank+1) %} -!> \note never_deallocate only has effect on create,copyin,copyout, and copy mappings. -function {{routine}}{{rank}}_{{triple[0]}}(hostptr,never_deallocate) result(retval) - use iso_c_binding - use gpufortrt_types - implicit none - {{triple[2]}},target,intent(in) :: hostptr(:{% for i in range(1,rank) %},:{% endfor %}) - logical,intent(in),optional :: never_deallocate - ! - type(gpufortrt_mapping_t) :: retval - ! - retval = {{routine}}_b(c_loc(hostptr),int({{triple[1]}},c_size_t)*size(hostptr),never_deallocate) -end function - -{% endfor %} {# rank #} -{% endfor %} {# datatypes #} -{% endfor %} {# clause #} -{%- endmacro -%} -{#######################################################################################} -{% macro render_basic_delete_copyout_routines() %} -{#######################################################################################} -{% for clause in ["delete","copyout"] %} -subroutine gpufortrt_{{clause}}_b(hostptr,num_bytes,async_arg,finalize) - use iso_c_binding - use gpufortrt_types, only: gpufortrt_handle_kind - implicit none - type(c_ptr), intent(in) :: hostptr - integer(c_size_t),intent(in),optional :: num_bytes - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - interface - subroutine gpufortrt_{{clause}}_c_impl(hostptr,num_bytes) & - bind(c,name="gpufortrt_{{clause}}") - use iso_c_binding - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - end subroutine - subroutine gpufortrt_{{clause}}_finalize_c_impl(hostptr,num_bytes) & - bind(c,name="gpufortrt_{{clause}}_finalize") - use iso_c_binding - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - end subroutine - subroutine gpufortrt_{{clause}}_async_c_impl(hostptr,num_bytes,async_arg) & - bind(c,name="gpufortrt_{{clause}}_async") - use iso_c_binding - use gpufortrt_types, only: gpufortrt_handle_kind - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - integer(gpufortrt_handle_kind),value,intent(in) :: async_arg - end subroutine - subroutine gpufortrt_{{clause}}_finalize_async_c_impl(hostptr,num_bytes,async_arg) & - bind(c,name="gpufortrt_{{clause}}_finalize_async") - use iso_c_binding - use gpufortrt_types, only: gpufortrt_handle_kind - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - integer(gpufortrt_handle_kind),value,intent(in) :: async_arg - end subroutine - end interface - ! - if ( present(async_arg) ) then - if ( present(finalize) ) then - call gpufortrt_{{clause}}_finalize_async_c_impl(hostptr,num_bytes,async_arg) - else - call gpufortrt_{{clause}}_async_c_impl(hostptr,num_bytes,async_arg) - endif - else - if ( present(finalize) ) then - call gpufortrt_{{clause}}_finalize_c_impl(hostptr,num_bytes) - else - call gpufortrt_{{clause}}_c_impl(hostptr,num_bytes) - endif - endif -end subroutine - -{% endfor %} -{% endmacro %} -{#######################################################################################} -{% macro render_specialized_delete_copyout_routines(datatypes,max_rank) %} -{#######################################################################################} -{% for clause in ["delete","copyout"] %} -{% for triple in datatypes -%} -!> (Specialized version for Fortran scalar arguments) -subroutine gpufortrt_{{clause}}0_{{triple[0]}}(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - {{triple[2]}},target,intent(in) :: hostptr - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_{{clause}}_b(c_loc(hostptr),int({{triple[1]}},kind=c_size_t),& - async_arg,finalize) -end subroutine - -{% for rank in range(1,max_rank+1) %} -!> (Specialized version for Fortran array arguments) -subroutine gpufortrt_{{clause}}{{rank}}_{{triple[0]}}(hostptr,async_arg,finalize) - use iso_c_binding - use gpufortrt_types - implicit none - {{triple[2]}},target,intent(in) :: hostptr(:{% for i in range(1,rank) %},:{% endfor %}) - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - call gpufortrt_{{clause}}_b(c_loc(hostptr),int({{triple[1]}},kind=c_size_t)*size(hostptr),& - async_arg,finalize) -end subroutine - -{% endfor %}{# rank #} -{% endfor %}{# datatypes #} -{% endfor %}{# clause #} -{% endmacro %} -{#######################################################################################} -{% macro render_basic_copy_routines() %} -{#######################################################################################} -{% for clause in ["create","copyin"] %} -!> Map and directly return the corresponding deviceptr. -function gpufortrt_{{clause}}_b(hostptr,num_bytes,never_deallocate,& - async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),intent(in) :: hostptr - integer(c_size_t),intent(in) :: num_bytes - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - interface - function gpufortrt_{{clause}}_c_impl(hostptr,num_bytes,never_deallocate) & - bind(c,name="gpufortrt_{{clause}}") result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - logical(c_bool),value,intent(in) :: never_deallocate - ! - type(c_ptr) :: deviceptr - end function - function gpufortrt_{{clause}}_async_c_impl(hostptr,num_bytes,never_deallocate,async_arg) & - bind(c,name="gpufortrt_{{clause}}_async") result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - logical(c_bool),value,intent(in) :: never_deallocate - integer(gpufortrt_handle_kind),value,intent(in) :: async_arg - ! - type(c_ptr) :: deviceptr - end function - end interface - ! - logical(c_bool) :: opt_never_deallocate - ! - opt_never_deallocate = .false._c_bool - if ( present(never_deallocate) ) opt_never_deallocate = never_deallocate - if ( present(async_arg) ) then - deviceptr = gpufortrt_{{clause}}_async_c_impl(hostptr,num_bytes,opt_never_deallocate,async_arg) - else - deviceptr = gpufortrt_{{clause}}_c_impl(hostptr,num_bytes,opt_never_deallocate) - endif -end function - -{% endfor %} -{% endmacro %} -{#######################################################################################} -{% macro render_specialized_copy_routines(datatypes,max_rank) %} -{#######################################################################################} -{% for clause in ["create","copyin"] %} -{% for triple in datatypes -%} -!> Map and directly return the corresponding deviceptr. -!> (Specialized version for Fortran scalar arguments) -function gpufortrt_{{clause}}0_{{triple[0]}}(hostptr,never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - {{triple[2]}},target,intent(in) :: hostptr - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_{{clause}}_b(c_loc(hostptr),int({{triple[1]}},kind=c_size_t),& - never_deallocate,async_arg) -end function - -{% for rank in range(1,max_rank+1) %} -!> Map and directly return the corresponding deviceptr. -!> (Specialized version for Fortran array arguments) -function gpufortrt_{{clause}}{{rank}}_{{triple[0]}}(hostptr,& - never_deallocate,async_arg) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - {{triple[2]}},target,intent(in) :: hostptr(:{% for i in range(1,rank) %},:{% endfor %}) - logical,intent(in),optional :: never_deallocate - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_{{clause}}_b(c_loc(hostptr),int({{triple[1]}},kind=c_size_t)*size(hostptr),& - never_deallocate,async_arg) -end function -{% endfor %}{# rank #} -{% endfor %}{# datatypes #} -{% endfor %}{# clause #} -{% endmacro %} -{#######################################################################################} -{% macro render_specialized_deviceptr_routines(datatypes,max_rank) %} -{#######################################################################################} -{% for triple in datatypes -%} -function gpufortrt_deviceptr0_{{triple[0]}}(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - {{triple[2]}},target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) -end function - -{% for rank in range(1,max_rank+1) %} -function gpufortrt_deviceptr{{rank}}_{{triple[0]}}(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - {{triple[2]}},target,intent(in) :: hostptr(:{% for i in range(1,rank) %},:{% endfor %}) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_deviceptr_b(c_loc(hostptr)) -end function - -{% endfor %}{# rank #} -{% endfor %}{# datatypes #} -{% endmacro %} -{#######################################################################################} -{% macro render_specialized_present_routines(datatypes,max_rank) %} -{#######################################################################################} -{% for clause in ["present"] %} -{% for triple in datatypes -%} -function gpufortrt_{{clause}}0_{{triple[0]}}(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - {{triple[2]}},target,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_{{clause}}_b(c_loc(hostptr),int({{triple[1]}},kind=c_size_t)) -end function - -{% for rank in range(1,max_rank+1) %} -function gpufortrt_{{clause}}{{rank}}_{{triple[0]}}(hostptr) result(deviceptr) - use iso_c_binding - use gpufortrt_types - implicit none - {{triple[2]}},target,intent(in) :: hostptr(:{% for i in range(1,rank) %},:{% endfor %}) - ! - type(c_ptr) :: deviceptr - ! - deviceptr = gpufortrt_{{clause}}_b(c_loc(hostptr),int({{triple[1]}},kind=c_size_t)*size(hostptr)) -end function - -{% endfor %}{# rank #} -{% endfor %}{# datatypes #} -{% endfor %}{# clause #} -{% endmacro %} -{#######################################################################################} -{% macro render_map_interfaces(datatypes,max_rank) %} -{#######################################################################################} -{% for clause in ["present","no_create","create","copyin","copy","copyout","delete"] %} -{{ render_interface("gpufortrt_map_"+clause,datatypes,max_rank) }} -{% endfor %} -{% endmacro %} -{#######################################################################################} -{% macro render_copy_interfaces(datatypes,max_rank) %} -{#######################################################################################} -{% for clause in ["present"] %} -{{ render_interface("gpufortrt_"+clause,datatypes,max_rank,False) }} - -{% endfor %} -{% for clause in ["create","copyin"] %} -{{ render_interface("gpufortrt_"+clause,datatypes,max_rank) }} - -{% endfor %} -{% endmacro %} -{#######################################################################################} -{% macro render_basic_update_routine(update_kind) %} -{#######################################################################################} -subroutine gpufortrt_update_{{update_kind}}_b(hostptr,num_bytes,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),intent(in) :: hostptr - integer(c_size_t),intent(in) :: num_bytes - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - interface - subroutine gpufortrt_update_{{update_kind}}_c_impl(hostptr,num_bytes,if_arg,if_present_arg) & - bind(c,name="gpufortrt_update_{{update_kind}}") - use iso_c_binding - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - logical(c_bool),value,intent(in) :: if_arg, if_present_arg - end subroutine - subroutine gpufortrt_update_{{update_kind}}_async_c_impl(hostptr,num_bytes,if_arg,if_present_arg,async_arg) & - bind(c,name="gpufortrt_update_{{update_kind}}_async") - use iso_c_binding - use gpufortrt_types - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - logical(c_bool),value,intent(in) :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),value,intent(in) :: async_arg - end subroutine - end interface - logical :: opt_if_arg, opt_if_present_arg - ! - opt_if_arg = .true. - opt_if_present_arg = .false. - if ( present(if_arg) ) opt_if_arg = if_arg - if ( present(if_present_arg) ) opt_if_present_arg = if_present_arg - ! - if ( present(async_arg) ) then - call gpufortrt_update_{{update_kind}}_async_c_impl(hostptr,& - num_bytes,& - logical(opt_if_arg,c_bool),& - logical(opt_if_present_arg,c_bool),& - async_arg) - else - call gpufortrt_update_{{update_kind}}_c_impl(hostptr,& - num_bytes,& - logical(opt_if_arg,c_bool),& - logical(opt_if_present_arg,c_bool)) - endif -end subroutine -{% endmacro %} -{#######################################################################################} -{% macro render_specialized_update_routines(update_kind,datatypes,max_rank) %} -{#######################################################################################} -{% for triple in datatypes %} -subroutine gpufortrt_update_{{update_kind}}0_{{triple[0]}}(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - {{triple[2]}},target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_{{update_kind}}_b(c_loc(hostptr),int({{triple[1]}},c_size_t),if_arg,if_present_arg,async_arg) -end subroutine - -{% for rank in range(1,max_rank+1) %} -subroutine gpufortrt_update_{{update_kind}}{{rank}}_{{triple[0]}}(hostptr,if_arg,if_present_arg,async_arg) - use iso_c_binding - use gpufortrt_types - implicit none - {{triple[2]}},target,intent(in) :: hostptr(:{% for i in range(1,rank) %},:{% endfor %}) - logical,intent(in),optional :: if_arg, if_present_arg - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - call gpufortrt_update_{{update_kind}}_b(c_loc(hostptr),int({{triple[1]}},c_size_t)*size(hostptr),if_arg,if_present_arg,async_arg) -end subroutine - -{% endfor %}{# rank #} -{% endfor %}{# datatypes #} -{% endmacro %} -{########################################################################################} -{%- macro render_set_fptr_lower_bound(fptr,rank) -%} -{########################################################################################} -{{fptr}}(& -{% for i in range(1,rank+1) %} - opt_lbounds({{i}}):{{ "," if not loop.last else ")" }}& -{% endfor %} - => {{fptr}} -{%- endmacro -%} -{#######################################################################################} -{% macro render_specialized_use_device_routines(datatypes,max_rank) %} -{#######################################################################################} -{% for triple in datatypes %} -subroutine gpufortrt_use_device0_{{triple[0]}}(resultptr,hostptr,if_arg,if_present_arg) - use iso_c_binding - implicit none - {{triple[2]}},target,intent(in) :: hostptr - logical,intent(in),optional :: if_arg, if_present_arg - ! - {{triple[2]}},pointer,intent(inout) :: resultptr - ! - type(c_ptr) :: tmp_cptr - ! - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr) -end subroutine - -{% for rank in range(1,max_rank+1) %} -subroutine gpufortrt_use_device{{rank}}_{{triple[0]}}(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) - use iso_c_binding - implicit none - {{triple[2]}},target,intent(in) :: hostptr({% for i in range(1,rank) %}1:1,{% endfor %}*) - integer,intent(in),optional :: sizes({{rank}}), lbounds({{rank}}) - logical,intent(in),optional :: if_arg, if_present_arg - ! - {{triple[2]}},pointer,intent(inout) :: resultptr(:{% for i in range(1,rank) %},:{% endfor %}) - ! - type(c_ptr) :: tmp_cptr - integer :: opt_sizes({{rank}}), opt_lbounds({{rank}}) - ! - opt_sizes = 1 - opt_lbounds = 1 - if ( present(sizes) ) opt_sizes = sizes - if ( present(lbounds) ) opt_lbounds = lbounds - tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) - call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) -{{ render_set_fptr_lower_bound("resultptr",rank) | indent(2,True) }} -end subroutine - -{% endfor %}{# rank #} -{% endfor %}{# datatypes #} -{% endmacro %} -{#######################################################################################} -{% macro render_use_device_interface(datatypes,max_rank) %} -{#######################################################################################} -interface gpufortrt_use_device -{% for rank in range(0,max_rank+1) %} -{% for triple in datatypes %} - module procedure :: gpufortrt_use_device{{rank}}_{{triple[0]}} -{% endfor %}{# datatypes #} -{% endfor %}{# rank #} -end interface -{% endmacro %} -{#######################################################################################} diff --git a/runtime/gpufortrt/src/gpufortrt_api.template.f90 b/runtime/gpufortrt/src/gpufortrt_api.template.f90 deleted file mode 100644 index cc58e139..00000000 --- a/runtime/gpufortrt/src/gpufortrt_api.template.f90 +++ /dev/null @@ -1,42 +0,0 @@ -{# SPDX-License-Identifier: MIT #} -{# Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. #} -{########################################################################################} -{% import "src/gpufortrt_api.macros.f90" as gam %} -{########################################################################################} -! SPDX-License-Identifier: MIT -! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. -module gpufortrt_api - use gpufortrt_api_core -{{ gam.render_map_interfaces(datatypes,max_rank) | indent(2,True) }} - -{{ gam.render_copy_interfaces(datatypes,max_rank) | indent(2,True) }} -{{ gam.render_interface("gpufortrt_delete",datatypes,max_rank) | indent(2,True) }} -{{ gam.render_interface("gpufortrt_copyout",datatypes,max_rank) | indent(2,True) }} - -{{ gam.render_interface("gpufortrt_update_self",datatypes,max_rank) | indent(2,True) }} -{{ gam.render_interface("gpufortrt_update_device",datatypes,max_rank) | indent(2,True) }} - -{{ gam.render_use_device_interface(datatypes,max_rank) | indent(2,True) }} - -{{ gam.render_interface("gpufortrt_deviceptr",datatypes,max_rank,False) | indent(2,True) }} - -contains - -{{ gam.render_map_routines(datatypes,max_rank) | indent(2,True) }} - -{{ gam.render_basic_copy_routines() | indent(2,True) }} -{{ gam.render_specialized_copy_routines(datatypes,max_rank) | indent(2,True) }} -{{ gam.render_specialized_present_routines(datatypes,max_rank) | indent(2,True) }} -{{ gam.render_basic_delete_copyout_routines() | indent(2,True) }} -{{ gam.render_specialized_delete_copyout_routines(datatypes,max_rank) | indent(2,True) }} - -{{ gam.render_basic_update_routine("self") }} -{{ gam.render_specialized_update_routines("self",datatypes,max_rank) }} - -{{ gam.render_basic_update_routine("device") | indent(2,True) }} -{{ gam.render_specialized_update_routines("device",datatypes,max_rank) | indent(2,True) }} - -{{ gam.render_specialized_use_device_routines(datatypes,max_rank) | indent(2,True) }} - -{{ gam.render_specialized_deviceptr_routines(datatypes,max_rank) | indent(2,True) }} -end module diff --git a/runtime/gpufortrt/src/gpufortrt_api_core.f90 b/runtime/gpufortrt/src/gpufortrt_api_core.f90 deleted file mode 100644 index 7e79ba5b..00000000 --- a/runtime/gpufortrt/src/gpufortrt_api_core.f90 +++ /dev/null @@ -1,315 +0,0 @@ -! SPDX-License-Identifier: MIT -! Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. -module gpufortrt_api_core - use gpufortrt_types - - interface - subroutine gpufortrt_init() bind(c,name="gpufortrt_init") - implicit none - end subroutine - - subroutine gpufortrt_shutdown() bind(c,name="gpufortrt_shutdown") - implicit none - end subroutine - - function gpufortrt_get_stream(async_arg) & - bind(c,name="gpufortrt_get_stream") & - result(stream) - use iso_c_binding, only: c_ptr - use gpufortrt_types, only: gpufortrt_handle_kind - implicit none - integer(gpufortrt_handle_kind),value,intent(in) :: async_arg - ! - type(c_ptr) :: stream - end function - end interface - - interface gpufortrt_present - function gpufortrt_present_b(hostptr,num_bytes) & - bind(c,name="gpufortrt_present") result(deviceptr) - use iso_c_binding, only: c_ptr, c_size_t - use gpufortrt_types, only: gpufortrt_counter_none - implicit none - type(c_ptr),value,intent(in) :: hostptr - integer(c_size_t),value,intent(in) :: num_bytes - ! - type(c_ptr) :: deviceptr - end function - end interface - - interface gpufortrt_deviceptr - function gpufortrt_deviceptr_b(hostptr) & - bind(c,name="gpufortrt_deviceptr") & - result(deviceptr) - use iso_c_binding, only: c_ptr, c_size_t - implicit none - type(c_ptr),value,intent(in) :: hostptr - ! - type(c_ptr) :: deviceptr - end function - end interface - -contains - - !> Ignore the result of a mapping routine. - !> \param[in] deviceptr a device pointer. - subroutine gpufortrt_ignore(deviceptr) - use iso_c_binding, only: c_ptr - implicit none - type(c_ptr),intent(in) :: deviceptr - ! nop - end subroutine - - subroutine gpufortrt_wait(wait_arg,async_arg,condition) - use iso_c_binding - implicit none - integer(gpufortrt_handle_kind),dimension(:),target,intent(in),optional :: wait_arg,async_arg - logical,intent(in),optional :: condition - ! - interface - subroutine gpufortrt_wait_all_c_impl(condition) & - bind(c,name="gpufortrt_wait_all") - use iso_c_binding - implicit none - logical(c_bool),value,intent(in):: condition - end subroutine - subroutine gpufortrt_wait_all_async_c_impl(async_arg,num_async_args,condition) & - bind(c,name="gpufortrt_wait_all_async") - use iso_c_binding - implicit none - type(c_ptr),value,intent(in) :: async_arg - integer(c_int),value,intent(in) :: num_async_args - logical(c_bool),value,intent(in) :: condition - end subroutine - subroutine gpufortrt_wait_c_impl(wait_arg,num_wait_args,condition) & - bind(c,name="gpufortrt_wait") - use iso_c_binding - implicit none - type(c_ptr),value,intent(in) :: wait_arg - integer(c_int),value,intent(in) :: num_wait_args - logical(c_bool),value,intent(in) :: condition - end subroutine - subroutine gpufortrt_wait_async_c_impl(wait_arg,num_wait_args,& - async_arg,num_async_args,& - condition) & - bind(c,name="gpufortrt_wait_async") - use iso_c_binding - implicit none - type(c_ptr),value,intent(in) :: wait_arg, async_arg - integer(c_int),value,intent(in) :: num_wait_args, num_async_args - logical(c_bool),value,intent(in) :: condition - end subroutine - end interface - ! - logical(c_bool) :: opt_if_arg - ! - opt_if_arg = .true._c_bool - if ( present(condition) ) opt_if_arg = logical(condition,kind=c_bool) - ! - if ( present(wait_arg) ) then - if ( present(async_arg) ) then - call gpufortrt_wait_async_c_impl(& - c_loc(wait_arg),size(wait_arg,kind=c_int),& - c_loc(async_arg),size(async_arg,kind=c_int),& - opt_if_arg) - else - call gpufortrt_wait_c_impl(& - c_loc(wait_arg),size(wait_arg,kind=c_int),& - opt_if_arg) - endif - else - if ( present(async_arg) ) then - call gpufortrt_wait_all_async_c_impl(& - c_loc(async_arg),size(async_arg,kind=c_int),& - opt_if_arg) - else - call gpufortrt_wait_all_c_impl(opt_if_arg) - endif - endif - end subroutine - - subroutine gpufortrt_data_start(mappings,async_arg) - !subroutine gpufortrt_data_start(device_kind,mappings,async_arg) - use iso_c_binding - implicit none - !integer,intent(in) :: device_kind - type(gpufortrt_mapping_t),dimension(:),target,intent(in),optional :: mappings - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - interface - subroutine gpufortrt_data_start_c_impl(mappings,num_mappings) bind(c,name="gpufortrt_data_start") - use iso_c_binding - implicit none - type(c_ptr),intent(in),value :: mappings - integer(c_int),intent(in),value :: num_mappings - end subroutine - subroutine gpufortrt_data_start_async_c_impl(mappings,num_mappings,async_arg) bind(c,name="gpufortrt_data_start_async") - use iso_c_binding - use gpufortrt_types, only: gpufortrt_handle_kind - implicit none - type(c_ptr),intent(in),value :: mappings - integer(c_int),intent(in),value :: num_mappings - integer(gpufortrt_handle_kind),intent(in),value :: async_arg - end subroutine - end interface - ! - if ( present(async_arg) ) then - if ( present(mappings) ) then - call gpufortrt_data_start_async_c_impl(c_loc(mappings),size(mappings),& - int(async_arg,kind=c_int)) - else - call gpufortrt_data_start_async_c_impl(c_null_ptr,0_c_int,& - int(async_arg,kind=c_int)) - endif - else - if ( present(mappings) ) then - call gpufortrt_data_start_c_impl(c_loc(mappings),size(mappings)) - else - call gpufortrt_data_start_c_impl(c_null_ptr,0_c_int) - endif - endif - end subroutine - - subroutine gpufortrt_data_end(async_arg) - implicit none - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - ! - interface - subroutine gpufortrt_data_end_c_impl() bind(c,name="gpufortrt_data_end") - use iso_c_binding - use gpufortrt_types, only: gpufortrt_handle_kind - implicit none - end subroutine - subroutine gpufortrt_data_end_async_c_impl(async_arg) bind(c,name="gpufortrt_data_end_async") - use iso_c_binding - use gpufortrt_types, only: gpufortrt_handle_kind - implicit none - integer(gpufortrt_handle_kind),intent(in),value :: async_arg - end subroutine - end interface - ! - if ( present(async_arg) ) then - call gpufortrt_data_end_async_c_impl(async_arg) - else - call gpufortrt_data_end_c_impl() - endif - end subroutine - - subroutine gpufortrt_enter_exit_data(mappings,async_arg,finalize) - use iso_c_binding - implicit none - ! - !integer,intent(in) :: device_kind - type(gpufortrt_mapping_t),dimension(:),target,intent(in),optional :: mappings - integer(gpufortrt_handle_kind),intent(in),optional :: async_arg - logical,intent(in),optional :: finalize - ! - interface - subroutine gpufortrt_enter_exit_data_c_impl(mappings,num_mappings,finalize) bind(c,name="gpufortrt_enter_exit_data") - use iso_c_binding - implicit none - type(c_ptr),value,intent(in) :: mappings - integer(c_int),value,intent(in) :: num_mappings - logical(c_bool),value,intent(in) :: finalize - end subroutine - subroutine gpufortrt_enter_exit_data_async_c_impl(mappings,num_mappings,async_arg,finalize) bind(c,name="gpufortrt_enter_exit_data_async") - use iso_c_binding - use gpufortrt_types, only: gpufortrt_handle_kind - implicit none - type(c_ptr),value,intent(in) :: mappings - integer(c_int),value,intent(in) :: num_mappings - integer(gpufortrt_handle_kind),value,intent(in) :: async_arg - logical(c_bool),value,intent(in) :: finalize - end subroutine - end interface - ! - logical(c_bool) :: opt_finalize - ! - opt_finalize = .false._c_bool - if ( present(finalize) ) opt_finalize = logical(finalize,kind=c_bool) - ! - if ( present(async_arg) ) then - if ( present(mappings) ) then - call gpufortrt_enter_exit_data_async_c_impl(& - c_loc(mappings),& - size(mappings,kind=c_int),& - async_arg,& - opt_finalize) - else - call gpufortrt_enter_exit_data_async_c_impl(& - c_null_ptr,& - 0_c_int,& - async_arg,& - opt_finalize) - endif - else - if ( present(mappings) ) then - call gpufortrt_enter_exit_data_c_impl(& - c_loc(mappings),& - size(mappings,kind=c_int),& - opt_finalize) - else - call gpufortrt_enter_exit_data_c_impl(& - c_null_ptr,& - 0_c_int,& - opt_finalize) - endif - endif - end subroutine - - !> Lookup device pointer for given host pointer. - !> \param[in] condition condition that must be met, otherwise host pointer is returned. Defaults to '.true.'. - !> \param[in] if_present Only return device pointer if one could be found for the host pointer. - !> otherwise host pointer is returned. Defaults to '.false.'. - !> \note Returns a c_null_ptr if the host pointer is invalid, i.e. not C associated. - function gpufortrt_use_device_b(hostptr,condition,if_present) result(resultptr) - use iso_c_binding - implicit none - type(c_ptr),intent(in) :: hostptr - logical,intent(in),optional :: condition, if_present - ! - type(c_ptr) :: resultptr - ! - interface - function gpufortrt_use_device_c_impl(hostptr,condition,if_present) & - bind(c,name="gpufortrt_use_device") result(deviceptr) - use iso_c_binding - implicit none - type(c_ptr),value,intent(in) :: hostptr - logical(c_bool),value,intent(in) :: condition, if_present - ! - type(c_ptr) :: deviceptr - end function - end interface - ! - logical(c_bool) :: opt_if_arg, opt_if_present_arg - ! - opt_if_arg = .true._c_bool - opt_if_present_arg = .false._c_bool - if ( present(condition) ) opt_if_arg = logical(condition,kind=c_bool) - if ( present(if_present) ) opt_if_present_arg = logical(if_present,kind=c_bool) - ! - resultptr = gpufortrt_use_device_c_impl(hostptr,opt_if_arg,opt_if_present_arg) - end function - - logical function gpufortrt_is_present(data_arg, bytes) - use iso_c_binding - implicit none - ! - type(*), target, dimension(..)::data_arg - integer(c_int),value,intent(in) :: bytes - ! - interface - type(c_ptr) function gpufortrt_is_present_c_impl(data_arg, bytes) & - bind(c,name="gpufortrt_present") - use iso_c_binding - implicit none - ! - type(c_ptr), value::data_arg - integer(c_size_t), value :: bytes - end function - end interface - gpufortrt_is_present = c_associated(gpufortrt_is_present_c_impl(c_loc(data_arg),int(bytes,kind=c_size_t))) - end function - -end module diff --git a/runtime/gpufortrt/src/obj.mk b/runtime/gpufortrt/src/obj.mk index 622383cc..15b4399d 100644 --- a/runtime/gpufortrt/src/obj.mk +++ b/runtime/gpufortrt/src/obj.mk @@ -1,9 +1,9 @@ # SPDX-License-Identifier: MIT # Copyright (c) 2020-2022 Advanced Micro Devices, Inc. All rights reserved. F_OBJ += ./gpufortrt_types.o \ - ./gpufortrt_api_core.o \ ./gpufortrt_api.o \ ./openacc.o + # ./gpufortrt_api_core.o \ CXX_OBJ += ./gpufortrt_types.cpp.o \ ./gpufortrt_api.cpp.o \ diff --git a/runtime/gpufortrt/test/fortran/Makefile b/runtime/gpufortrt/test/fortran/Makefile index 1a66342e..6cd11a03 100644 --- a/runtime/gpufortrt/test/fortran/Makefile +++ b/runtime/gpufortrt/test/fortran/Makefile @@ -17,7 +17,7 @@ TEST_SRC = \ ./test_acc_delete_00.f90 \ ./test_acc_create_00.f90 \ ./test_acc_create_01.f90 \ - ./test_acc_set_default_async_00.f90 \ + ./test_acc_set_get_default_async_00.f90 \ ./test_acc_copyinout_00.f90 \ ./test_acc_copyinout_01.f90 \ ./test_acc_copyin_00.f90 \ From 246a6296247cd94b9cf9af6d053974a3dd51e857 Mon Sep 17 00:00:00 2001 From: monoatamd Date: Thu, 8 Dec 2022 15:41:14 +0100 Subject: [PATCH 32/33] added use_device --- runtime/gpufortrt/src/gpufortrt_api.f90 | 2268 ++++++++++++++++++++++- 1 file changed, 2254 insertions(+), 14 deletions(-) diff --git a/runtime/gpufortrt/src/gpufortrt_api.f90 b/runtime/gpufortrt/src/gpufortrt_api.f90 index e341dbbd..9654e4d6 100644 --- a/runtime/gpufortrt/src/gpufortrt_api.f90 +++ b/runtime/gpufortrt/src/gpufortrt_api.f90 @@ -29,6 +29,97 @@ function gpufortrt_get_stream(async_arg) & module procedure :: gpufortrt_present_nb end interface + interface gpufortrt_use_device + module procedure :: gpufortrt_use_device0_l1 + module procedure :: gpufortrt_use_device0_l4 + module procedure :: gpufortrt_use_device0_ch1 + module procedure :: gpufortrt_use_device0_i1 + module procedure :: gpufortrt_use_device0_i2 + module procedure :: gpufortrt_use_device0_i4 + module procedure :: gpufortrt_use_device0_i8 + module procedure :: gpufortrt_use_device0_r4 + module procedure :: gpufortrt_use_device0_r8 + module procedure :: gpufortrt_use_device0_c4 + module procedure :: gpufortrt_use_device0_c8 + module procedure :: gpufortrt_use_device1_l1 + module procedure :: gpufortrt_use_device1_l4 + module procedure :: gpufortrt_use_device1_ch1 + module procedure :: gpufortrt_use_device1_i1 + module procedure :: gpufortrt_use_device1_i2 + module procedure :: gpufortrt_use_device1_i4 + module procedure :: gpufortrt_use_device1_i8 + module procedure :: gpufortrt_use_device1_r4 + module procedure :: gpufortrt_use_device1_r8 + module procedure :: gpufortrt_use_device1_c4 + module procedure :: gpufortrt_use_device1_c8 + module procedure :: gpufortrt_use_device2_l1 + module procedure :: gpufortrt_use_device2_l4 + module procedure :: gpufortrt_use_device2_ch1 + module procedure :: gpufortrt_use_device2_i1 + module procedure :: gpufortrt_use_device2_i2 + module procedure :: gpufortrt_use_device2_i4 + module procedure :: gpufortrt_use_device2_i8 + module procedure :: gpufortrt_use_device2_r4 + module procedure :: gpufortrt_use_device2_r8 + module procedure :: gpufortrt_use_device2_c4 + module procedure :: gpufortrt_use_device2_c8 + module procedure :: gpufortrt_use_device3_l1 + module procedure :: gpufortrt_use_device3_l4 + module procedure :: gpufortrt_use_device3_ch1 + module procedure :: gpufortrt_use_device3_i1 + module procedure :: gpufortrt_use_device3_i2 + module procedure :: gpufortrt_use_device3_i4 + module procedure :: gpufortrt_use_device3_i8 + module procedure :: gpufortrt_use_device3_r4 + module procedure :: gpufortrt_use_device3_r8 + module procedure :: gpufortrt_use_device3_c4 + module procedure :: gpufortrt_use_device3_c8 + module procedure :: gpufortrt_use_device4_l1 + module procedure :: gpufortrt_use_device4_l4 + module procedure :: gpufortrt_use_device4_ch1 + module procedure :: gpufortrt_use_device4_i1 + module procedure :: gpufortrt_use_device4_i2 + module procedure :: gpufortrt_use_device4_i4 + module procedure :: gpufortrt_use_device4_i8 + module procedure :: gpufortrt_use_device4_r4 + module procedure :: gpufortrt_use_device4_r8 + module procedure :: gpufortrt_use_device4_c4 + module procedure :: gpufortrt_use_device4_c8 + module procedure :: gpufortrt_use_device5_l1 + module procedure :: gpufortrt_use_device5_l4 + module procedure :: gpufortrt_use_device5_ch1 + module procedure :: gpufortrt_use_device5_i1 + module procedure :: gpufortrt_use_device5_i2 + module procedure :: gpufortrt_use_device5_i4 + module procedure :: gpufortrt_use_device5_i8 + module procedure :: gpufortrt_use_device5_r4 + module procedure :: gpufortrt_use_device5_r8 + module procedure :: gpufortrt_use_device5_c4 + module procedure :: gpufortrt_use_device5_c8 + module procedure :: gpufortrt_use_device6_l1 + module procedure :: gpufortrt_use_device6_l4 + module procedure :: gpufortrt_use_device6_ch1 + module procedure :: gpufortrt_use_device6_i1 + module procedure :: gpufortrt_use_device6_i2 + module procedure :: gpufortrt_use_device6_i4 + module procedure :: gpufortrt_use_device6_i8 + module procedure :: gpufortrt_use_device6_r4 + module procedure :: gpufortrt_use_device6_r8 + module procedure :: gpufortrt_use_device6_c4 + module procedure :: gpufortrt_use_device6_c8 + module procedure :: gpufortrt_use_device7_l1 + module procedure :: gpufortrt_use_device7_l4 + module procedure :: gpufortrt_use_device7_ch1 + module procedure :: gpufortrt_use_device7_i1 + module procedure :: gpufortrt_use_device7_i2 + module procedure :: gpufortrt_use_device7_i4 + module procedure :: gpufortrt_use_device7_i8 + module procedure :: gpufortrt_use_device7_r4 + module procedure :: gpufortrt_use_device7_r8 + module procedure :: gpufortrt_use_device7_c4 + module procedure :: gpufortrt_use_device7_c8 + end interface + contains type(c_ptr) function gpufortrt_deviceptr(hostptr) @@ -289,13 +380,13 @@ subroutine gpufortrt_enter_exit_data_async_c_impl(mappings,num_mappings,async_ar !> \param[in] if_present Only return device pointer if one could be found for the host pointer. !> otherwise host pointer is returned. Defaults to '.false.'. !> \note Returns a c_null_ptr if the host pointer is invalid, i.e. not C associated. - subroutine gpufortrt_use_device(resultptr, hostptr,sizes,lbounds,if_arg,if_present) + function gpufortrt_use_device_b(hostptr,condition,if_present) result(resultptr) use iso_c_binding implicit none - type(*), dimension(..),target, intent(inout) :: resultptr - type(*), dimension(..),target,intent(in) :: hostptr - integer,intent(in),optional :: sizes, lbounds - logical,intent(in),optional :: if_arg, if_present + type(c_ptr),intent(in) :: hostptr + logical,intent(in),optional :: condition, if_present + ! + type(c_ptr) :: resultptr ! interface function gpufortrt_use_device_c_impl(hostptr,condition,if_present) & @@ -309,22 +400,2171 @@ function gpufortrt_use_device_c_impl(hostptr,condition,if_present) & end function end interface ! - integer :: opt_sizes, opt_lbounds logical(c_bool) :: opt_if_arg, opt_if_present_arg - type(c_ptr):: tmp_cptr ! - opt_sizes = 1 - opt_lbounds = 1 opt_if_arg = .true._c_bool opt_if_present_arg = .false._c_bool + if ( present(condition) ) opt_if_arg = logical(condition,kind=c_bool) + if ( present(if_present) ) opt_if_present_arg = logical(if_present,kind=c_bool) + ! + resultptr = gpufortrt_use_device_c_impl(hostptr,opt_if_arg,opt_if_present_arg) + end function + + + subroutine gpufortrt_use_device0_l1(resultptr,hostptr,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical(c_bool),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical(c_bool),pointer,intent(inout) :: resultptr + ! + type(c_ptr) :: tmp_cptr + ! + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr) + end subroutine + + subroutine gpufortrt_use_device1_l1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical(c_bool),target,intent(in) :: hostptr(*) + integer,intent(in),optional :: sizes(1), lbounds(1) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical(c_bool),pointer,intent(inout) :: resultptr(:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(1), opt_lbounds(1) + ! + opt_sizes = 1 + opt_lbounds = 1 if ( present(sizes) ) opt_sizes = sizes if ( present(lbounds) ) opt_lbounds = lbounds - if ( present(if_arg) ) opt_if_arg = logical(if_arg,kind=c_bool) - if ( present(if_present) ) opt_if_present_arg = logical(if_present,kind=c_bool) + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device2_l1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical(c_bool),target,intent(in) :: hostptr(1:1,*) + integer,intent(in),optional :: sizes(2), lbounds(2) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical(c_bool),pointer,intent(inout) :: resultptr(:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(2), opt_lbounds(2) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device3_l1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical(c_bool),target,intent(in) :: hostptr(1:1,1:1,*) + integer,intent(in),optional :: sizes(3), lbounds(3) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical(c_bool),pointer,intent(inout) :: resultptr(:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(3), opt_lbounds(3) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device4_l1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical(c_bool),target,intent(in) :: hostptr(1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(4), lbounds(4) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical(c_bool),pointer,intent(inout) :: resultptr(:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(4), opt_lbounds(4) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device5_l1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical(c_bool),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(5), lbounds(5) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical(c_bool),pointer,intent(inout) :: resultptr(:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(5), opt_lbounds(5) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device6_l1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical(c_bool),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(6), lbounds(6) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical(c_bool),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(6), opt_lbounds(6) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device7_l1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical(c_bool),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(7), lbounds(7) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical(c_bool),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(7), opt_lbounds(7) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):,& + opt_lbounds(7):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device0_l4(resultptr,hostptr,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical,target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical,pointer,intent(inout) :: resultptr + ! + type(c_ptr) :: tmp_cptr + ! + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr) + end subroutine + + subroutine gpufortrt_use_device1_l4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical,target,intent(in) :: hostptr(*) + integer,intent(in),optional :: sizes(1), lbounds(1) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical,pointer,intent(inout) :: resultptr(:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(1), opt_lbounds(1) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device2_l4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical,target,intent(in) :: hostptr(1:1,*) + integer,intent(in),optional :: sizes(2), lbounds(2) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical,pointer,intent(inout) :: resultptr(:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(2), opt_lbounds(2) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device3_l4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical,target,intent(in) :: hostptr(1:1,1:1,*) + integer,intent(in),optional :: sizes(3), lbounds(3) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical,pointer,intent(inout) :: resultptr(:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(3), opt_lbounds(3) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device4_l4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical,target,intent(in) :: hostptr(1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(4), lbounds(4) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical,pointer,intent(inout) :: resultptr(:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(4), opt_lbounds(4) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device5_l4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical,target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(5), lbounds(5) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical,pointer,intent(inout) :: resultptr(:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(5), opt_lbounds(5) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device6_l4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical,target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(6), lbounds(6) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical,pointer,intent(inout) :: resultptr(:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(6), opt_lbounds(6) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device7_l4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + logical,target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(7), lbounds(7) + logical,intent(in),optional :: if_arg, if_present_arg + ! + logical,pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(7), opt_lbounds(7) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):,& + opt_lbounds(7):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device0_ch1(resultptr,hostptr,if_arg,if_present_arg) + use iso_c_binding + implicit none + character(c_char),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + ! + character(c_char),pointer,intent(inout) :: resultptr + ! + type(c_ptr) :: tmp_cptr + ! + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr) + end subroutine + + subroutine gpufortrt_use_device1_ch1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + character(c_char),target,intent(in) :: hostptr(*) + integer,intent(in),optional :: sizes(1), lbounds(1) + logical,intent(in),optional :: if_arg, if_present_arg + ! + character(c_char),pointer,intent(inout) :: resultptr(:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(1), opt_lbounds(1) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device2_ch1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + character(c_char),target,intent(in) :: hostptr(1:1,*) + integer,intent(in),optional :: sizes(2), lbounds(2) + logical,intent(in),optional :: if_arg, if_present_arg + ! + character(c_char),pointer,intent(inout) :: resultptr(:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(2), opt_lbounds(2) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device3_ch1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + character(c_char),target,intent(in) :: hostptr(1:1,1:1,*) + integer,intent(in),optional :: sizes(3), lbounds(3) + logical,intent(in),optional :: if_arg, if_present_arg + ! + character(c_char),pointer,intent(inout) :: resultptr(:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(3), opt_lbounds(3) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device4_ch1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + character(c_char),target,intent(in) :: hostptr(1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(4), lbounds(4) + logical,intent(in),optional :: if_arg, if_present_arg + ! + character(c_char),pointer,intent(inout) :: resultptr(:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(4), opt_lbounds(4) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device5_ch1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + character(c_char),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(5), lbounds(5) + logical,intent(in),optional :: if_arg, if_present_arg + ! + character(c_char),pointer,intent(inout) :: resultptr(:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(5), opt_lbounds(5) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device6_ch1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + character(c_char),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(6), lbounds(6) + logical,intent(in),optional :: if_arg, if_present_arg + ! + character(c_char),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(6), opt_lbounds(6) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device7_ch1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + character(c_char),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(7), lbounds(7) + logical,intent(in),optional :: if_arg, if_present_arg ! - tmp_cptr = gpufortrt_use_device_c_impl(c_loc(hostptr),opt_if_arg,opt_if_present_arg) - ! call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) - ! Convert tmp_cptr to resultptr? + character(c_char),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(7), opt_lbounds(7) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):,& + opt_lbounds(7):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device0_i1(resultptr,hostptr,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int8_t),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int8_t),pointer,intent(inout) :: resultptr + ! + type(c_ptr) :: tmp_cptr + ! + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr) + end subroutine + + subroutine gpufortrt_use_device1_i1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(*) + integer,intent(in),optional :: sizes(1), lbounds(1) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int8_t),pointer,intent(inout) :: resultptr(:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(1), opt_lbounds(1) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device2_i1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(1:1,*) + integer,intent(in),optional :: sizes(2), lbounds(2) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int8_t),pointer,intent(inout) :: resultptr(:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(2), opt_lbounds(2) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device3_i1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(1:1,1:1,*) + integer,intent(in),optional :: sizes(3), lbounds(3) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int8_t),pointer,intent(inout) :: resultptr(:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(3), opt_lbounds(3) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device4_i1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(4), lbounds(4) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int8_t),pointer,intent(inout) :: resultptr(:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(4), opt_lbounds(4) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device5_i1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(5), lbounds(5) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int8_t),pointer,intent(inout) :: resultptr(:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(5), opt_lbounds(5) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device6_i1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(6), lbounds(6) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int8_t),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(6), opt_lbounds(6) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device7_i1(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int8_t),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(7), lbounds(7) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int8_t),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(7), opt_lbounds(7) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):,& + opt_lbounds(7):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device0_i2(resultptr,hostptr,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_short),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_short),pointer,intent(inout) :: resultptr + ! + type(c_ptr) :: tmp_cptr + ! + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr) + end subroutine + + subroutine gpufortrt_use_device1_i2(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_short),target,intent(in) :: hostptr(*) + integer,intent(in),optional :: sizes(1), lbounds(1) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_short),pointer,intent(inout) :: resultptr(:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(1), opt_lbounds(1) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device2_i2(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_short),target,intent(in) :: hostptr(1:1,*) + integer,intent(in),optional :: sizes(2), lbounds(2) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_short),pointer,intent(inout) :: resultptr(:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(2), opt_lbounds(2) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device3_i2(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_short),target,intent(in) :: hostptr(1:1,1:1,*) + integer,intent(in),optional :: sizes(3), lbounds(3) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_short),pointer,intent(inout) :: resultptr(:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(3), opt_lbounds(3) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device4_i2(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_short),target,intent(in) :: hostptr(1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(4), lbounds(4) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_short),pointer,intent(inout) :: resultptr(:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(4), opt_lbounds(4) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device5_i2(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_short),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(5), lbounds(5) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_short),pointer,intent(inout) :: resultptr(:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(5), opt_lbounds(5) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device6_i2(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_short),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(6), lbounds(6) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_short),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(6), opt_lbounds(6) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device7_i2(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_short),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(7), lbounds(7) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_short),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(7), opt_lbounds(7) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):,& + opt_lbounds(7):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device0_i4(resultptr,hostptr,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int),pointer,intent(inout) :: resultptr + ! + type(c_ptr) :: tmp_cptr + ! + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr) + end subroutine + + subroutine gpufortrt_use_device1_i4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int),target,intent(in) :: hostptr(*) + integer,intent(in),optional :: sizes(1), lbounds(1) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int),pointer,intent(inout) :: resultptr(:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(1), opt_lbounds(1) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device2_i4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int),target,intent(in) :: hostptr(1:1,*) + integer,intent(in),optional :: sizes(2), lbounds(2) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int),pointer,intent(inout) :: resultptr(:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(2), opt_lbounds(2) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device3_i4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int),target,intent(in) :: hostptr(1:1,1:1,*) + integer,intent(in),optional :: sizes(3), lbounds(3) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int),pointer,intent(inout) :: resultptr(:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(3), opt_lbounds(3) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device4_i4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int),target,intent(in) :: hostptr(1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(4), lbounds(4) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int),pointer,intent(inout) :: resultptr(:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(4), opt_lbounds(4) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device5_i4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(5), lbounds(5) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int),pointer,intent(inout) :: resultptr(:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(5), opt_lbounds(5) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device6_i4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(6), lbounds(6) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(6), opt_lbounds(6) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device7_i4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_int),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(7), lbounds(7) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_int),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(7), opt_lbounds(7) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):,& + opt_lbounds(7):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device0_i8(resultptr,hostptr,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_long),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_long),pointer,intent(inout) :: resultptr + ! + type(c_ptr) :: tmp_cptr + ! + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr) + end subroutine + + subroutine gpufortrt_use_device1_i8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_long),target,intent(in) :: hostptr(*) + integer,intent(in),optional :: sizes(1), lbounds(1) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_long),pointer,intent(inout) :: resultptr(:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(1), opt_lbounds(1) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device2_i8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_long),target,intent(in) :: hostptr(1:1,*) + integer,intent(in),optional :: sizes(2), lbounds(2) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_long),pointer,intent(inout) :: resultptr(:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(2), opt_lbounds(2) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device3_i8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_long),target,intent(in) :: hostptr(1:1,1:1,*) + integer,intent(in),optional :: sizes(3), lbounds(3) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_long),pointer,intent(inout) :: resultptr(:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(3), opt_lbounds(3) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device4_i8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_long),target,intent(in) :: hostptr(1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(4), lbounds(4) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_long),pointer,intent(inout) :: resultptr(:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(4), opt_lbounds(4) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device5_i8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_long),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(5), lbounds(5) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_long),pointer,intent(inout) :: resultptr(:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(5), opt_lbounds(5) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device6_i8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_long),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(6), lbounds(6) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_long),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(6), opt_lbounds(6) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device7_i8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + integer(c_long),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(7), lbounds(7) + logical,intent(in),optional :: if_arg, if_present_arg + ! + integer(c_long),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(7), opt_lbounds(7) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):,& + opt_lbounds(7):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device0_r4(resultptr,hostptr,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_float),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_float),pointer,intent(inout) :: resultptr + ! + type(c_ptr) :: tmp_cptr + ! + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr) + end subroutine + + subroutine gpufortrt_use_device1_r4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_float),target,intent(in) :: hostptr(*) + integer,intent(in),optional :: sizes(1), lbounds(1) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_float),pointer,intent(inout) :: resultptr(:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(1), opt_lbounds(1) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device2_r4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_float),target,intent(in) :: hostptr(1:1,*) + integer,intent(in),optional :: sizes(2), lbounds(2) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_float),pointer,intent(inout) :: resultptr(:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(2), opt_lbounds(2) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device3_r4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_float),target,intent(in) :: hostptr(1:1,1:1,*) + integer,intent(in),optional :: sizes(3), lbounds(3) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_float),pointer,intent(inout) :: resultptr(:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(3), opt_lbounds(3) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device4_r4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_float),target,intent(in) :: hostptr(1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(4), lbounds(4) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_float),pointer,intent(inout) :: resultptr(:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(4), opt_lbounds(4) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device5_r4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_float),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(5), lbounds(5) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_float),pointer,intent(inout) :: resultptr(:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(5), opt_lbounds(5) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device6_r4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_float),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(6), lbounds(6) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_float),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(6), opt_lbounds(6) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device7_r4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_float),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(7), lbounds(7) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_float),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(7), opt_lbounds(7) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):,& + opt_lbounds(7):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device0_r8(resultptr,hostptr,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_double),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_double),pointer,intent(inout) :: resultptr + ! + type(c_ptr) :: tmp_cptr + ! + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr) + end subroutine + + subroutine gpufortrt_use_device1_r8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_double),target,intent(in) :: hostptr(*) + integer,intent(in),optional :: sizes(1), lbounds(1) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_double),pointer,intent(inout) :: resultptr(:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(1), opt_lbounds(1) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device2_r8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_double),target,intent(in) :: hostptr(1:1,*) + integer,intent(in),optional :: sizes(2), lbounds(2) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_double),pointer,intent(inout) :: resultptr(:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(2), opt_lbounds(2) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device3_r8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_double),target,intent(in) :: hostptr(1:1,1:1,*) + integer,intent(in),optional :: sizes(3), lbounds(3) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_double),pointer,intent(inout) :: resultptr(:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(3), opt_lbounds(3) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device4_r8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_double),target,intent(in) :: hostptr(1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(4), lbounds(4) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_double),pointer,intent(inout) :: resultptr(:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(4), opt_lbounds(4) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device5_r8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_double),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(5), lbounds(5) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_double),pointer,intent(inout) :: resultptr(:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(5), opt_lbounds(5) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device6_r8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_double),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(6), lbounds(6) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_double),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(6), opt_lbounds(6) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device7_r8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + real(c_double),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(7), lbounds(7) + logical,intent(in),optional :: if_arg, if_present_arg + ! + real(c_double),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(7), opt_lbounds(7) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):,& + opt_lbounds(7):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device0_c4(resultptr,hostptr,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_float_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_float_complex),pointer,intent(inout) :: resultptr + ! + type(c_ptr) :: tmp_cptr + ! + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr) + end subroutine + + subroutine gpufortrt_use_device1_c4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(*) + integer,intent(in),optional :: sizes(1), lbounds(1) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_float_complex),pointer,intent(inout) :: resultptr(:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(1), opt_lbounds(1) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device2_c4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(1:1,*) + integer,intent(in),optional :: sizes(2), lbounds(2) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_float_complex),pointer,intent(inout) :: resultptr(:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(2), opt_lbounds(2) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device3_c4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(1:1,1:1,*) + integer,intent(in),optional :: sizes(3), lbounds(3) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_float_complex),pointer,intent(inout) :: resultptr(:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(3), opt_lbounds(3) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device4_c4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(4), lbounds(4) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_float_complex),pointer,intent(inout) :: resultptr(:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(4), opt_lbounds(4) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device5_c4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(5), lbounds(5) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_float_complex),pointer,intent(inout) :: resultptr(:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(5), opt_lbounds(5) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device6_c4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(6), lbounds(6) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_float_complex),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(6), opt_lbounds(6) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device7_c4(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_float_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(7), lbounds(7) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_float_complex),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(7), opt_lbounds(7) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):,& + opt_lbounds(7):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device0_c8(resultptr,hostptr,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_double_complex),target,intent(in) :: hostptr + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_double_complex),pointer,intent(inout) :: resultptr + ! + type(c_ptr) :: tmp_cptr + ! + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr) + end subroutine + + subroutine gpufortrt_use_device1_c8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(*) + integer,intent(in),optional :: sizes(1), lbounds(1) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_double_complex),pointer,intent(inout) :: resultptr(:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(1), opt_lbounds(1) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device2_c8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(1:1,*) + integer,intent(in),optional :: sizes(2), lbounds(2) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_double_complex),pointer,intent(inout) :: resultptr(:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(2), opt_lbounds(2) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device3_c8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(1:1,1:1,*) + integer,intent(in),optional :: sizes(3), lbounds(3) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_double_complex),pointer,intent(inout) :: resultptr(:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(3), opt_lbounds(3) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device4_c8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(4), lbounds(4) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_double_complex),pointer,intent(inout) :: resultptr(:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(4), opt_lbounds(4) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device5_c8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(5), lbounds(5) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_double_complex),pointer,intent(inout) :: resultptr(:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(5), opt_lbounds(5) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device6_c8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(6), lbounds(6) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_double_complex),pointer,intent(inout) :: resultptr(:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(6), opt_lbounds(6) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):)& + => resultptr + end subroutine + + subroutine gpufortrt_use_device7_c8(resultptr,hostptr,sizes,lbounds,if_arg,if_present_arg) + use iso_c_binding + implicit none + complex(c_double_complex),target,intent(in) :: hostptr(1:1,1:1,1:1,1:1,1:1,1:1,*) + integer,intent(in),optional :: sizes(7), lbounds(7) + logical,intent(in),optional :: if_arg, if_present_arg + ! + complex(c_double_complex),pointer,intent(inout) :: resultptr(:,:,:,:,:,:,:) + ! + type(c_ptr) :: tmp_cptr + integer :: opt_sizes(7), opt_lbounds(7) + ! + opt_sizes = 1 + opt_lbounds = 1 + if ( present(sizes) ) opt_sizes = sizes + if ( present(lbounds) ) opt_lbounds = lbounds + tmp_cptr = gpufortrt_use_device_b(c_loc(hostptr),if_arg,if_present_arg) + call c_f_pointer(tmp_cptr,resultptr,shape=opt_sizes) + resultptr(& + opt_lbounds(1):,& + opt_lbounds(2):,& + opt_lbounds(3):,& + opt_lbounds(4):,& + opt_lbounds(5):,& + opt_lbounds(6):,& + opt_lbounds(7):)& + => resultptr end subroutine logical function gpufortrt_is_present(data_arg, bytes) From 871c6b5dfaef75fc5c1105aaba607cb91a7fa432 Mon Sep 17 00:00:00 2001 From: monoatamd Date: Thu, 15 Dec 2022 08:35:09 +0100 Subject: [PATCH 33/33] removed optional attrib. from non-optional args. --- runtime/gpufortrt/src/openacc.f90 | 62 ++++++++++--------------------- 1 file changed, 19 insertions(+), 43 deletions(-) diff --git a/runtime/gpufortrt/src/openacc.f90 b/runtime/gpufortrt/src/openacc.f90 index 12958e20..e6396569 100644 --- a/runtime/gpufortrt/src/openacc.f90 +++ b/runtime/gpufortrt/src/openacc.f90 @@ -289,7 +289,7 @@ subroutine acc_wait(wait_arg) use iso_c_binding implicit none ! - integer(acc_handle_kind),dimension(..),target,intent(in),optional :: wait_arg + integer(acc_handle_kind),dimension(..),target,intent(in) :: wait_arg ! interface subroutine acc_wait_c_impl(wait_arg) & @@ -302,16 +302,14 @@ subroutine acc_wait_c_impl(wait_arg) & end subroutine end interface ! - if ( present(wait_arg) ) then - call acc_wait_c_impl(c_loc(wait_arg)) - endif + call acc_wait_c_impl(c_loc(wait_arg)) end subroutine subroutine acc_wait_async(wait_arg, async_arg) use iso_c_binding implicit none ! - integer(acc_handle_kind),dimension(..),target,intent(in),optional :: wait_arg, async_arg + integer(acc_handle_kind),dimension(..),target,intent(in) :: wait_arg, async_arg ! interface subroutine acc_wait_async_c_impl(wait_arg, async_arg) & @@ -324,11 +322,7 @@ subroutine acc_wait_async_c_impl(wait_arg, async_arg) & end subroutine end interface ! - if ( present(wait_arg) ) then - if ( present(async_arg) ) then - call acc_wait_async_c_impl(c_loc(wait_arg), c_loc(async_arg)) - endif - endif + call acc_wait_async_c_impl(c_loc(wait_arg), c_loc(async_arg)) end subroutine subroutine acc_wait_all() @@ -351,7 +345,7 @@ subroutine acc_wait_all_async(async_arg) use iso_c_binding implicit none ! - integer(acc_handle_kind),dimension(..),target,intent(in),optional :: async_arg + integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg ! interface subroutine acc_wait_all_async_c_impl(async_arg) & @@ -364,17 +358,15 @@ subroutine acc_wait_all_async_c_impl(async_arg) & end subroutine end interface ! - if ( present(async_arg) ) then - call acc_wait_all_async_c_impl(c_loc(async_arg)) - endif + call acc_wait_all_async_c_impl(c_loc(async_arg)) end subroutine subroutine acc_wait_device(wait_arg, dev_num) use iso_c_binding implicit none ! - integer(acc_handle_kind),dimension(..),target,intent(in),optional :: wait_arg - integer(c_int), optional :: dev_num + integer(acc_handle_kind),dimension(..),target,intent(in) :: wait_arg + integer(c_int):: dev_num ! interface subroutine acc_wait_device_c_impl(wait_arg, dev_num) & @@ -388,19 +380,15 @@ subroutine acc_wait_device_c_impl(wait_arg, dev_num) & end subroutine end interface ! - if ( present(wait_arg) ) then - if( present(dev_num) ) then - call acc_wait_device_c_impl(c_loc(wait_arg), dev_num) - endif - endif + call acc_wait_device_c_impl(c_loc(wait_arg), dev_num) end subroutine subroutine acc_wait_device_async(wait_arg, async_arg, dev_num) use iso_c_binding implicit none ! - integer(acc_handle_kind),dimension(..),target,intent(in),optional :: wait_arg, async_arg - integer(c_int), optional :: dev_num + integer(acc_handle_kind),dimension(..),target,intent(in) :: wait_arg, async_arg + integer(c_int):: dev_num ! interface subroutine acc_wait_device_async_c_impl(wait_arg, async_arg, dev_num) & @@ -414,20 +402,14 @@ subroutine acc_wait_device_async_c_impl(wait_arg, async_arg, dev_num) & end subroutine end interface ! - if ( present(wait_arg) ) then - if ( present(async_arg) ) then - if( present(dev_num) ) then - call acc_wait_device_async_c_impl(c_loc(wait_arg), c_loc(async_arg), dev_num) - endif - endif - endif + call acc_wait_device_async_c_impl(c_loc(wait_arg), c_loc(async_arg), dev_num) end subroutine subroutine acc_wait_all_device(dev_num) use iso_c_binding implicit none ! - integer(c_int), optional :: dev_num + integer(c_int) :: dev_num ! interface subroutine acc_wait_all_device_c_impl(dev_num) & @@ -440,17 +422,15 @@ subroutine acc_wait_all_device_c_impl(dev_num) & end subroutine end interface ! - if( present(dev_num) ) then - call acc_wait_all_device_c_impl(dev_num) - endif + call acc_wait_all_device_c_impl(dev_num) end subroutine subroutine acc_wait_all_device_async(async_arg, dev_num) use iso_c_binding implicit none ! - integer(acc_handle_kind),dimension(..),target,intent(in),optional :: async_arg - integer(c_int), optional :: dev_num + integer(acc_handle_kind),dimension(..),target,intent(in) :: async_arg + integer(c_int):: dev_num ! interface subroutine acc_wait_all_device_async_c_impl(async_arg, dev_num) & @@ -464,11 +444,7 @@ subroutine acc_wait_all_device_async_c_impl(async_arg, dev_num) & end subroutine end interface ! - if ( present(async_arg) ) then - if( present(dev_num) ) then - call acc_wait_all_device_async_c_impl(c_loc(async_arg), dev_num) - endif - endif + call acc_wait_all_device_async_c_impl(c_loc(async_arg), dev_num) end subroutine logical function acc_async_test(wait_arg) @@ -496,7 +472,7 @@ logical function acc_async_test_device(wait_arg, dev_num) implicit none ! integer(acc_handle_kind),dimension(..),target,intent(in) :: wait_arg - integer(c_int), optional :: dev_num + integer(c_int) :: dev_num ! interface integer(c_int) function acc_async_test_device_c_impl(wait_arg, dev_num) & @@ -505,7 +481,7 @@ integer(c_int) function acc_async_test_device_c_impl(wait_arg, dev_num) & implicit none ! type(c_ptr),value,intent(in) :: wait_arg - integer(c_int), optional :: dev_num + integer(c_int) :: dev_num ! end function end interface