From d18160eaf2b147508668489e810a6ac8bb9fd711 Mon Sep 17 00:00:00 2001
From: Yen-Chen Chen <yen-chen.chen@kit.edu>
Date: Fri, 21 Jun 2024 07:09:50 +0000
Subject: [PATCH] Make lacc argument mandatory for fortran_tools
 (icon-libraries/libfortran-support!91)

## What is the new feature
Make `lacc` mandatory.
## How is it implemented
With the changes in https://gitlab.dkrz.de/icon/icon-mpim/-/merge_requests/342, https://gitlab.dkrz.de/art/art/-/merge_requests/96, and https://gitlab.dkrz.de/jsbach/jsbach/-/merge_requests/165, the `lacc` argument in all `fortran_tools` functions should be added explicitly.
This MR makes sure that in the future, an error will pop up if `lacc` is not passed.

Approved-by: Marek Jacob <1129-b380572@users.noreply.gitlab.dkrz.de>
Approved-by: Jonas Jucker <jonas.jucker@env.ethz.ch>
Merged-by: Yen-Chen Chen <yen-chen.chen@kit.edu>
Changelog: other
---
 src/mo_fortran_tools.F90            | 110 +++++++++++++---------------
 test/fortran/test_fortran_tools.f90 |  37 ----------
 2 files changed, 51 insertions(+), 96 deletions(-)

diff --git a/src/mo_fortran_tools.F90 b/src/mo_fortran_tools.F90
index b1db528..6f9fbe4 100644
--- a/src/mo_fortran_tools.F90
+++ b/src/mo_fortran_tools.F90
@@ -515,7 +515,7 @@ CONTAINS
   SUBROUTINE copy_1d_dp(src, dest, lacc, opt_acc_async)
     REAL(dp), INTENT(IN) :: src(:)
     REAL(dp), INTENT(OUT) :: dest(:)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, m1
     LOGICAL :: lzacc
@@ -539,7 +539,7 @@ CONTAINS
   SUBROUTINE copy_2d_dp(src, dest, lacc, opt_acc_async)
     REAL(dp), INTENT(IN) :: src(:, :)
     REAL(dp), INTENT(OUT) :: dest(:, :)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, i2, m1, m2
     LOGICAL :: lzacc
@@ -569,7 +569,7 @@ CONTAINS
   SUBROUTINE copy_3d_dp(src, dest, lacc, opt_acc_async)
     REAL(dp), INTENT(IN) :: src(:, :, :)
     REAL(dp), INTENT(OUT) :: dest(:, :, :)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, i2, i3, m1, m2, m3
     LOGICAL :: lzacc
@@ -602,7 +602,7 @@ CONTAINS
   SUBROUTINE copy_4d_dp(src, dest, lacc, opt_acc_async)
     REAL(dp), INTENT(IN) :: src(:, :, :, :)
     REAL(dp), INTENT(OUT) :: dest(:, :, :, :)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, i2, i3, i4, m1, m2, m3, m4
     LOGICAL :: lzacc
@@ -638,7 +638,7 @@ CONTAINS
   SUBROUTINE copy_5d_dp(src, dest, lacc, opt_acc_async)
     REAL(dp), INTENT(IN) :: src(:, :, :, :, :)
     REAL(dp), INTENT(OUT) :: dest(:, :, :, :, :)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, i2, i3, i4, i5, m1, m2, m3, m4, m5
     LOGICAL :: lzacc
@@ -677,7 +677,7 @@ CONTAINS
   SUBROUTINE copy_5d_sp(src, dest, lacc, opt_acc_async)
     REAL(sp), INTENT(IN) :: src(:, :, :, :, :)
     REAL(sp), INTENT(OUT) :: dest(:, :, :, :, :)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, i2, i3, i4, i5, m1, m2, m3, m4, m5
     LOGICAL :: lzacc
@@ -716,7 +716,7 @@ CONTAINS
   SUBROUTINE copy_2d_spdp(src, dest, lacc, opt_acc_async)
     REAL(sp), INTENT(IN) :: src(:, :)
     REAL(dp), INTENT(OUT) :: dest(:, :)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, i2, m1, m2
     LOGICAL :: lzacc
@@ -746,7 +746,7 @@ CONTAINS
   SUBROUTINE copy_3d_spdp(src, dest, lacc, opt_acc_async)
     REAL(sp), INTENT(IN) :: src(:, :, :)
     REAL(dp), INTENT(OUT) :: dest(:, :, :)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, i2, i3, m1, m2, m3
     LOGICAL :: lzacc
@@ -779,7 +779,7 @@ CONTAINS
   SUBROUTINE copy_4d_spdp(src, dest, lacc, opt_acc_async)
     REAL(sp), INTENT(IN) :: src(:, :, :, :)
     REAL(dp), INTENT(OUT) :: dest(:, :, :, :)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, i2, i3, i4, m1, m2, m3, m4
     LOGICAL :: lzacc
@@ -815,7 +815,7 @@ CONTAINS
   SUBROUTINE copy_5d_spdp(src, dest, lacc, opt_acc_async)
     REAL(sp), INTENT(IN) :: src(:, :, :, :, :)
     REAL(dp), INTENT(OUT) :: dest(:, :, :, :, :)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, i2, i3, i4, i5, m1, m2, m3, m4, m5
     LOGICAL :: lzacc
@@ -854,7 +854,7 @@ CONTAINS
   SUBROUTINE copy_2d_i4(src, dest, lacc, opt_acc_async)
     INTEGER(ik4), INTENT(IN) :: src(:, :)
     INTEGER(ik4), INTENT(OUT) :: dest(:, :)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, i2, m1, m2
     LOGICAL :: lzacc
@@ -884,7 +884,7 @@ CONTAINS
   SUBROUTINE copy_3d_i4(src, dest, lacc, opt_acc_async)
     INTEGER(ik4), INTENT(IN) :: src(:, :, :)
     INTEGER(ik4), INTENT(OUT) :: dest(:, :, :)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, i2, i3, m1, m2, m3
     LOGICAL :: lzacc
@@ -917,7 +917,7 @@ CONTAINS
   SUBROUTINE copy_5d_i4(src, dest, lacc, opt_acc_async)
     INTEGER(ik4), INTENT(IN) :: src(:, :, :, :, :)
     INTEGER(ik4), INTENT(OUT) :: dest(:, :, :, :, :)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, i2, i3, i4, i5, m1, m2, m3, m4, m5
     LOGICAL :: lzacc
@@ -956,7 +956,7 @@ CONTAINS
   SUBROUTINE copy_5d_l(src, dest, lacc, opt_acc_async)
     LOGICAL, INTENT(IN) :: src(:, :, :, :, :)
     LOGICAL, INTENT(OUT) :: dest(:, :, :, :, :)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, i2, i3, i4, i5, m1, m2, m3, m4, m5
     LOGICAL :: lzacc
@@ -993,7 +993,7 @@ CONTAINS
 
   SUBROUTINE init_zero_1d_dp(init_var, lacc, opt_acc_async)
     REAL(dp), INTENT(OUT) :: init_var(:)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, m1
     LOGICAL :: lzacc
@@ -1013,7 +1013,7 @@ CONTAINS
 
   SUBROUTINE init_zero_1d_sp(init_var, lacc, opt_acc_async)
     REAL(sp), INTENT(OUT) :: init_var(:)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, m1
     LOGICAL :: lzacc
@@ -1033,7 +1033,7 @@ CONTAINS
 
   SUBROUTINE init_zero_2d_dp(init_var, lacc, opt_acc_async)
     REAL(dp), INTENT(OUT) :: init_var(:, :)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, i2, m1, m2
     LOGICAL :: lzacc
@@ -1061,7 +1061,7 @@ CONTAINS
 
   SUBROUTINE init_zero_2d_i4(init_var, lacc, opt_acc_async)
     INTEGER(ik4), INTENT(OUT) :: init_var(:, :)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, i2, m1, m2
     LOGICAL :: lzacc
@@ -1089,7 +1089,7 @@ CONTAINS
 
   SUBROUTINE init_zero_3d_dp(init_var, lacc, opt_acc_async)
     REAL(dp), INTENT(OUT) :: init_var(:, :, :)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, i2, i3, m1, m2, m3
     LOGICAL :: lzacc
@@ -1120,7 +1120,7 @@ CONTAINS
 
   SUBROUTINE init_zero_3d_sp(init_var, lacc, opt_acc_async)
     REAL(sp), INTENT(OUT) :: init_var(:, :, :)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, i2, i3, m1, m2, m3
     LOGICAL :: lzacc
@@ -1152,7 +1152,7 @@ CONTAINS
 
   SUBROUTINE init_zero_3d_i4(init_var, lacc, opt_acc_async)
     INTEGER(ik4), INTENT(OUT) :: init_var(:, :, :)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, i2, i3, m1, m2, m3
     LOGICAL :: lzacc
@@ -1183,7 +1183,7 @@ CONTAINS
 
   SUBROUTINE init_zero_4d_dp(init_var, lacc, opt_acc_async)
     REAL(dp), INTENT(OUT) :: init_var(:, :, :, :)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, i2, i3, i4, m1, m2, m3, m4
     LOGICAL :: lzacc
@@ -1217,7 +1217,7 @@ CONTAINS
 
   SUBROUTINE init_zero_4d_sp(init_var, lacc, opt_acc_async)
     REAL(sp), INTENT(OUT) :: init_var(:, :, :, :)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, i2, i3, i4, m1, m2, m3, m4
     LOGICAL :: lzacc
@@ -1251,7 +1251,7 @@ CONTAINS
 
   SUBROUTINE init_zero_4d_i4(init_var, lacc, opt_acc_async)
     INTEGER(ik4), INTENT(OUT) :: init_var(:, :, :, :)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, i2, i3, i4, m1, m2, m3, m4
     LOGICAL :: lzacc
@@ -1286,7 +1286,7 @@ CONTAINS
   SUBROUTINE init_1d_dp(init_var, init_val, lacc, opt_acc_async)
     REAL(dp), INTENT(OUT) :: init_var(:)
     REAL(dp), INTENT(IN) :: init_val
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
     INTEGER :: i1, m1
     LOGICAL :: lzacc
@@ -1308,7 +1308,7 @@ CONTAINS
   SUBROUTINE init_2d_dp(init_var, init_val, lacc, opt_acc_async)
     REAL(dp), INTENT(OUT) :: init_var(:, :)
     REAL(dp), INTENT(IN) :: init_val
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
 
     INTEGER :: i1, i2, m1, m2
@@ -1338,7 +1338,7 @@ CONTAINS
   SUBROUTINE init_3d_dp(init_var, init_val, lacc, opt_acc_async)
     REAL(dp), INTENT(OUT) :: init_var(:, :, :)
     REAL(dp), INTENT(IN) :: init_val
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
 
     INTEGER :: i1, i2, i3, m1, m2, m3
@@ -1371,7 +1371,7 @@ CONTAINS
   SUBROUTINE init_3d_spdp(init_var, init_val, lacc, opt_acc_async)
     REAL(sp), INTENT(OUT) :: init_var(:, :, :)
     REAL(dp), INTENT(IN) :: init_val
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
 
     INTEGER :: i1, i2, i3, m1, m2, m3
@@ -1404,7 +1404,7 @@ CONTAINS
   SUBROUTINE init_5d_dp(init_var, init_val, lacc, opt_acc_async)
     REAL(dp), INTENT(OUT) :: init_var(:, :, :, :, :)
     REAL(dp), INTENT(IN) :: init_val
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
 
     INTEGER :: i1, i2, i3, i4, i5, m1, m2, m3, m4, m5
@@ -1443,7 +1443,7 @@ CONTAINS
   SUBROUTINE init_5d_sp(init_var, init_val, lacc, opt_acc_async)
     REAL(sp), INTENT(OUT) :: init_var(:, :, :, :, :)
     REAL(sp), INTENT(IN) :: init_val
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
 
     INTEGER :: i1, i2, i3, i4, i5, m1, m2, m3, m4, m5
@@ -1482,7 +1482,7 @@ CONTAINS
   SUBROUTINE init_5d_i4(init_var, init_val, lacc, opt_acc_async)
     INTEGER(ik4), INTENT(OUT) :: init_var(:, :, :, :, :)
     INTEGER(ik4), INTENT(IN) :: init_val
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
 
     INTEGER :: i1, i2, i3, i4, i5, m1, m2, m3, m4, m5
@@ -1521,7 +1521,7 @@ CONTAINS
   SUBROUTINE init_5d_l(init_var, init_val, lacc, opt_acc_async)
     LOGICAL, INTENT(OUT) :: init_var(:, :, :, :, :)
     LOGICAL, INTENT(IN)  :: init_val
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
 
     INTEGER :: i1, i2, i3, i4, i5, m1, m2, m3, m4, m5
@@ -1560,7 +1560,7 @@ CONTAINS
   SUBROUTINE var_scale_3d_dp(var, scale_val, lacc, opt_acc_async)
     REAL(dp), INTENT(inout) :: var(:, :, :)
     REAL(dp), INTENT(in) :: scale_val
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
 
     INTEGER :: i1, i2, i3, m1, m2, m3
@@ -1594,7 +1594,7 @@ CONTAINS
   SUBROUTINE var_addc_3d_dp(var, add_val, lacc, opt_acc_async)
     REAL(dp), INTENT(inout) :: var(:, :, :)
     REAL(dp), INTENT(in) :: add_val
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
 
     INTEGER :: i1, i2, i3, m1, m2, m3
@@ -1626,7 +1626,7 @@ CONTAINS
 
   SUBROUTINE negative2zero_4d_dp(var, lacc, opt_acc_async)
     REAL(dp), INTENT(inout) :: var(:, :, :, :)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
 
     INTEGER :: i1, i2, i3, i4, m1, m2, m3, m4
@@ -1665,7 +1665,7 @@ CONTAINS
     INTEGER, INTENT(IN) :: n
     REAL(dp), INTENT(OUT) :: var(n)
     REAL(dp), INTENT(IN) :: v
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
 
     INTEGER :: i
@@ -1686,7 +1686,7 @@ CONTAINS
   SUBROUTINE init_zero_contiguous_dp(var, n, lacc, opt_acc_async)
     INTEGER, INTENT(IN) :: n
     REAL(dp), INTENT(OUT) :: var(n)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
 
     CALL init_contiguous_dp(var, n, 0.0_dp, lacc, opt_acc_async)
@@ -1696,7 +1696,7 @@ CONTAINS
     INTEGER, INTENT(IN) :: n
     REAL(sp), INTENT(OUT) :: var(n)
     REAL(sp), INTENT(IN) :: v
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
 
     INTEGER :: i
@@ -1717,7 +1717,7 @@ CONTAINS
   SUBROUTINE init_zero_contiguous_sp(var, n, lacc, opt_acc_async)
     INTEGER, INTENT(IN) :: n
     REAL(sp), INTENT(OUT) :: var(n)
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
 
     CALL init_contiguous_sp(var, n, 0.0_sp, lacc, opt_acc_async)
@@ -1727,7 +1727,7 @@ CONTAINS
     INTEGER, INTENT(IN) :: n
     INTEGER(ik4), INTENT(OUT) :: var(n)
     INTEGER(ik4), INTENT(IN) :: v
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
 
     INTEGER :: i
@@ -1749,7 +1749,7 @@ CONTAINS
     INTEGER, INTENT(IN) :: n
     LOGICAL, INTENT(OUT) :: var(n)
     LOGICAL, INTENT(IN) :: v
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
     LOGICAL, INTENT(IN), OPTIONAL :: opt_acc_async
 
     INTEGER :: i
@@ -1771,7 +1771,7 @@ CONTAINS
   !! Computes the MINVAL(var)
   !! This wrapper enables the use of OpenACC without using ACC-KERNELS
     INTEGER, INTENT(IN) :: var(:) ! input array
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc ! if true, use OpenACC
+    LOGICAL, INTENT(IN) :: lacc ! if true, use OpenACC
     LOGICAL :: lzacc ! non-optional version of lacc
     INTEGER :: minval_1d, i, s1
 
@@ -1798,7 +1798,7 @@ CONTAINS
     !! Computes the MINVAL(var)
     !! This wrapper enables the use of OpenACC without using ACC-KERNELS
     INTEGER, INTENT(IN) :: var(:, :) ! input array
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc ! if true, use OpenACC
+    LOGICAL, INTENT(IN) :: lacc ! if true, use OpenACC
     LOGICAL :: lzacc ! non-optional version of lacc
     INTEGER :: minval_2d, i, j, s1, s2
 
@@ -2323,28 +2323,22 @@ CONTAINS
 
   SUBROUTINE assert_acc_host_only(routine_name, lacc)
     CHARACTER(len=*), INTENT(IN) :: routine_name
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
 
 #ifdef _OPENACC
-    IF (PRESENT(lacc)) THEN
-      IF (lacc) THEN
-        CALL finish(routine_name, ' not supported on ACC device.')
-      END IF
+    IF (lacc) THEN
+      CALL finish(routine_name, 'not supported on ACC device.')
     END IF
 #endif
   END SUBROUTINE assert_acc_host_only
 
   SUBROUTINE assert_acc_device_only(routine_name, lacc)
     CHARACTER(len=*), INTENT(IN) :: routine_name
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
 
 #ifdef _OPENACC
-    IF (.NOT. PRESENT(lacc)) THEN
-      CALL finish(routine_name, ' must not be called without lacc.')
-    ELSE
-      IF (.NOT. lacc) THEN
-        CALL finish(routine_name, ' not supported in ACC host mode.')
-      END IF
+    IF (.NOT. lacc) THEN
+      CALL finish(routine_name, 'not supported in ACC host mode.')
     END IF
 #endif
   END SUBROUTINE assert_acc_device_only
@@ -2364,13 +2358,11 @@ CONTAINS
 
   PURE SUBROUTINE set_acc_host_or_device(lzacc, lacc)
     LOGICAL, INTENT(OUT) :: lzacc
-    LOGICAL, INTENT(IN), OPTIONAL :: lacc
+    LOGICAL, INTENT(IN) :: lacc
 
     lzacc = .FALSE.
 #ifdef _OPENACC
-    IF (PRESENT(lacc)) THEN
-      lzacc = lacc
-    END IF
+    lzacc = lacc
 #endif
   END SUBROUTINE set_acc_host_or_device
 
diff --git a/test/fortran/test_fortran_tools.f90 b/test/fortran/test_fortran_tools.f90
index a0512e0..19f9dfa 100644
--- a/test/fortran/test_fortran_tools.f90
+++ b/test/fortran/test_fortran_tools.f90
@@ -1476,43 +1476,6 @@ CONTAINS
     CALL ASSERT_EQUAL(ASSOCIATED(ptr), .FALSE.)
   END SUBROUTINE
 
-  SUBROUTINE Test_assert_acc_host_only
-    ! OpenACC version is left TODO
-    CALL TAG_TEST("Test_assert_acc_host_only_true")
-    CALL assert_acc_host_only("Unit_test", .TRUE.)
-    CALL SUCCEED
-
-    CALL TAG_TEST("Test_assert_acc_host_only_false")
-    CALL assert_acc_host_only("Unit_test", .FALSE.)
-    CALL SUCCEED
-  END SUBROUTINE
-
-  SUBROUTINE Test_assert_acc_device_only
-    ! OpenACC version is left TODO
-    CALL TAG_TEST("Test_assert_acc_device_only_true")
-    CALL assert_acc_device_only("Unit_test", .TRUE.)
-    CALL SUCCEED
-
-    CALL TAG_TEST("Test_assert_acc_device_only_false")
-    CALL assert_acc_device_only("Unit_test", .FALSE.)
-    CALL SUCCEED
-  END SUBROUTINE
-
-  SUBROUTINE Test_assert_lacc_equals_i_am_accel_node
-    ! OpenACC version is left TODO
-    CALL TAG_TEST("Test_assert_lacc_equals_i_am_accel_node_match_true")
-    CALL assert_lacc_equals_i_am_accel_node("Unit_test", .TRUE., .TRUE.)
-    CALL SUCCEED
-
-    CALL TAG_TEST("Test_assert_lacc_equals_i_am_accel_node_match_false")
-    CALL assert_lacc_equals_i_am_accel_node("Unit_test", .FALSE., .FALSE.)
-    CALL SUCCEED
-
-    CALL TAG_TEST("Test_assert_lacc_equals_i_am_accel_node_false")
-    CALL assert_lacc_equals_i_am_accel_node("Unit_test", .FALSE., .TRUE.)
-    CALL SUCCEED
-  END SUBROUTINE
-
 ! Support functions for testing
 
   LOGICAL FUNCTION assert_logical_array(array1, array2)
-- 
GitLab