This patch introduce the OpenACC 3.0 module with all the runtime interface declarations.
Explicit kind parameter values are generally non-portable. I think that you can use a default INTEGER here.
acc_handle_kind = kind(0) or acc_handle_kind = selected_int_kind(9) would be better, I think.
Or define a PRIVATE parameter at the head of the file (integer, private, parameter :: default_int_kind(kind(0)) and use that. But kind(0) is idiomatic and clear.
Is your intent to implement these subprograms here in this module eventually?
If so, it might be better to define their module interfaces here in the module, and put their implementations into one or more submodules.
If not, then these subprograms should probably be just interfaces.
If they're going to be implemented in a submodule (which makes sense to me), these interfaces should be module functions and subroutines. They can't be implemented in another module.