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