Andy Porter
Andy Porter
Ready for another look now @sergisiso.
As well as addressing the coverage, I need to extend the LFRic integration tests to use this new functionality.
Added the KernelModuleInlineTrans back into the LFRic transformation script and get a crash when trying to add the interface symbol into the symbol table.
Build and run with updated transformation script works:  This doesn't seem very different from the profile of the version before this change so I need to check exactly what...
The OMP offload LFRic integration test failed with an ICE: ``` 17:47:36 Pre-process and compile inventory/id_r32_field_array_pair_mod.F90 inventory/id_r32_field_array_pair_mod.F90: NVFORTRAN-S-0000-Internal compiler error. flowgraph: node is zero 3 (lfric_xios_setup_mod_psy.f90: 85) NVFORTRAN-F-0000-Internal compiler error....
Do the build manually for OpenACC (which doesn't give an ICE) and things are looking better:  (note: I've marked MATMUL as being available on the GPU now.) I think...
I need to figure out why we get an inlined routine without an offload directive added to it. The build log says: ``` PSy name = 'lfric_xios_setup_mod_psy' Transforming invoke 'invoke_0_nodal_xyz_coordinates_kernel_type'...
Part of the problem was that the optimisation script wasn't checking that it hadn't already transformed a given kernel for a given invoke. Fixing that removes the 'failed to inline'...
The problem was that, having successfully module-inlined the kernel routine, we proceed to apply the annotation transformation to the original Kern and that does not update the Routine that has...
Now get a compilation failure: ``` NVFORTRAN-S-0155-Ambiguous interfaces for generic procedure matrix_vector_code ( algorithm/norm_alg_mod_psy.f90: 338) ``` This seems to be because we have successfully inlined this interface and its routines...