thomasmelvin
thomasmelvin
In more detail the current (psykal_lite) implementation of these is ```fortran ! Perform innerproduct of a r_solver precision field in r_double precision subroutine invoke_rdouble_X_innerproduct_X(field_norm, field) use scalar_mod, only: scalar_type use...
As an example if we consider the current implementation of a kenrel with metadata ```fortran type, public, extends(kernel_type) :: test_kernel_type private type(arg_type) :: meta_args(2) = (/ & arg_type(GH_FIELD, GH_REAL, GH_WRITE,...
Whilst with proposed changes the algorithm and metadata are unchanged but the generated psylayer code becomes ```fortran SUBROUTINE invoke_test_kernel(new_field, old_field, stencil_depth) USE test_kernel_mod, ONLY: test_code USE mesh_mod, ONLY: mesh_type USE...
And if the metdata was for `GH_INC`: ```fortran type, public, extends(kernel_type) :: test_kernel_type private type(arg_type) :: meta_args(2) = (/ & arg_type(GH_FIELD, GH_REAL, GH_INC, ANY_SPACE_1), & arg_type(GH_FIELD, GH_REAL, GH_READ, ANY_DISCONTINUOUS_SPACE_2, STENCIL(CROSS2D))...