diff --git a/src/MNH/mode_openacc_set_device.f90 b/src/MNH/mode_openacc_set_device.f90
index 3efd40feef2654e4c98477e5a43de766bcee0a40..bd440f9809d4c832c1ebac8b11ea6419e58cff7a 100644
--- a/src/MNH/mode_openacc_set_device.f90
+++ b/src/MNH/mode_openacc_set_device.f90
@@ -13,8 +13,7 @@ MODULE MODE_OPENACC_SET_DEVICE
   IMPLICIT NONE
 
 #ifndef _FAKEOPENACC  
-  INTEGER(kind=acc_device_kind),dimension(1000) :: mnh_idevice_type_at_init = -1000
-  INTEGER :: nlevel_mnh_idevice_type = 1
+  INTEGER(kind=acc_device_kind) :: mnh_idevice_type_at_init = -1000
   INTEGER(kind=acc_device_kind) :: mnh_idevice_type_current = -1
 #endif  
 
@@ -34,10 +33,10 @@ CONTAINS
 
     SWAP_DEVICE_RETURN
 
-    if ( mnh_idevice_type_at_init(1) .EQ. -1000 ) then
-       mnh_idevice_type_at_init(1) = acc_get_device_type()
-       mnh_idevice_type_current = acc_get_device_type()
-       print*,'mnh_idevice_type_at_init=',mnh_idevice_type_at_init(1)
+    if ( mnh_idevice_type_at_init .EQ. -1000 ) then
+       mnh_idevice_type_at_init = acc_get_device_type()
+       mnh_idevice_type_current = mnh_idevice_type_at_init
+       print*,'mnh_idevice_type_at_init=',mnh_idevice_type_at_init
     end if
 #endif
     
@@ -72,10 +71,9 @@ CONTAINS
 
     SWAP_DEVICE_RETURN
 
-    nlevel_mnh_idevice_type =  nlevel_mnh_idevice_type + 1
-    mnh_idevice_type_at_init(nlevel_mnh_idevice_type) = acc_get_device_type()
     call acc_set_device_type(acc_device_host)
-    mnh_idevice_type_current = acc_get_device_type()
+    mnh_idevice_type_current = acc_device_host
+    
 #endif
     
   END SUBROUTINE MNH_OPENACC_SET_DEVICE_HOST
@@ -91,7 +89,7 @@ CONTAINS
     SWAP_DEVICE_RETURN
     
     call acc_set_device_type(acc_device_nvidia)
-    mnh_idevice_type_current = acc_get_device_type()
+    mnh_idevice_type_current = acc_device_nvidia
 #endif
     
   END SUBROUTINE MNH_OPENACC_SET_DEVICE_NVIDIA
@@ -100,18 +98,14 @@ CONTAINS
 
 #ifndef _FAKEOPENACC
     USE&
-         openacc , ONLY : acc_set_device_type,acc_device_nvidia
+         openacc , ONLY : acc_set_device_type,acc_device_nvidia,acc_get_device_type
     
     IMPLICIT NONE
 
     SWAP_DEVICE_RETURN
 
-    IF ( nlevel_mnh_idevice_type == 1 ) THEN
-       print*,'  MNH_OPENACC_SET_DEVICE_DEFAULT :: WARNING ALLREADY AT FIRST LEVEL !!! '
-    ELSE
-       nlevel_mnh_idevice_type = nlevel_mnh_idevice_type - 1
-    END IF
-    call acc_set_device_type(mnh_idevice_type_at_init(nlevel_mnh_idevice_type))
+    call acc_set_device_type(mnh_idevice_type_at_init)
+    mnh_idevice_type_current = mnh_idevice_type_at_init
 #endif
    
   END SUBROUTINE MNH_OPENACC_SET_DEVICE_DEFAULT
diff --git a/src/ZSOLVER/tensorproductmultigrid_Source/mode_openacc_set_device.f90 b/src/ZSOLVER/tensorproductmultigrid_Source/mode_openacc_set_device.f90
new file mode 120000
index 0000000000000000000000000000000000000000..3c68748c1ae2179857dc555ec579b2d6a60ff446
--- /dev/null
+++ b/src/ZSOLVER/tensorproductmultigrid_Source/mode_openacc_set_device.f90
@@ -0,0 +1 @@
+../../MNH/mode_openacc_set_device.f90
\ No newline at end of file