From 6b8c5ff7c1e1f3a77e042c427174f0489de47eec Mon Sep 17 00:00:00 2001 From: Andrew Porter Date: Wed, 24 Jun 2026 08:36:49 +0100 Subject: [PATCH] Add nlevels and ndata to arg_type derived type --- .../source/kernel_metadata/argument_mod.F90 | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/infrastructure/source/kernel_metadata/argument_mod.F90 b/infrastructure/source/kernel_metadata/argument_mod.F90 index 6a8e585bf..db7b106b6 100644 --- a/infrastructure/source/kernel_metadata/argument_mod.F90 +++ b/infrastructure/source/kernel_metadata/argument_mod.F90 @@ -190,6 +190,10 @@ module argument_mod integer, public, parameter :: DOF = 712 !> @} + !> The maximum length of those elements of argument metadata that + !! are of character type. + integer, private, parameter :: METADATA_CHAR_LENGTH = 40 + !> Metadata for the argument type description, stored in the `arg_type` type !! as an array of `meta_args`. We need to know how many scalars, fields !! and/or operators are passed to the kernel and in what order they are @@ -224,6 +228,13 @@ module argument_mod !> Optional metadata (fields only) for inter-grid mapping kernels. !! One of {GH_FINE, GH_COARSE}. integer :: mesh_arg = -1 + !> Optional metadata (fields only) specifying how many data values + !! there are at each DoF. Defaults to 1. + character(len=METADATA_CHAR_LENGTH) :: ndata = "1" + !> Optional metadata specifying how many vertical levels + !! the field has. Default is to use the number associated with the + !! first field/operator kernel argument. + character(len=METADATA_CHAR_LENGTH) :: nlevels = "" end type arg_type !> Optional metadata for the basis/differential basis functions required with