Though for cross-file inlining you can try the two-pass method. First create an inline extract library but compiling all files with “-Mextract=lib:libname” replacing “libname” with what you’d like to call it. Then compile with “-Minline=lib:libname” to use the extract library. Inlining is performed prior to the device code generation.
A possible fix for the performance degradation seen on NVHPC when calling subroutines across modules: https://forums.developer.nvidia.com/t/nvhpc-23-11-fortran-does-it-inline-public-subroutines-across-modules/281047/2