Andy Porter

Results 732 comments of Andy Porter

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: ![image](https://github.com/user-attachments/assets/80599023-fafc-42b9-82dd-bf59708a46c1) 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: ![image](https://github.com/user-attachments/assets/5154a115-b8e2-46d5-baaa-809d4f9279ab) (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...