+Performance portability APIs, e.g., Kokkos, RAJA, etc., are typically written in C++ but many high-performance computing (HPC) codes are written in Fortran. This presents a challenge for the Fortran simulation codes in being able to shuffle data representations from Fortran to C++, particularly when those data make heavy use of Fortran derived types. This talk will present a solution developed by LANL’s Eulerian Applications Project (EAP) so that Fortran derived types can be easily migrated from Fortran to C++ and data migrated to the requisite memory spaces to be operated upon by a C++ performance portability library. The approach builds upon the Fortran 2018 standard “ISO_Fortran_binding.h” header and specialized processing tools to auto generate interoperable types that, in C++, have introspective capability. The introspective capability of the resulting types allow for transformations of internal data via user defined transformation functions, e.g., to convert Fortran assumed shape arrays into Kokkos::Views
0 commit comments