From 574bb73d35e2956fc79d28a13bba5a8776624cc3 Mon Sep 17 00:00:00 2001
From: Lee Taylor <taylor16@llnl.gov>
Date: Fri, 9 Feb 2024 12:45:41 -0800
Subject: [PATCH 1/3] Changes for Shroud-0.13.0

There were some changes of how names are generated.
Changed some YAML files to perserve the current API names.
Some changes to how SIDRE_IndexType is inserted into wrappers.
---
 src/axom/quest/interface/quest_shroud.yaml    |  4 +-
 .../sidre/interface/c_fortran/csidresplicer.c | 17 ++++++++
 .../sidre/interface/c_fortran/fsidresplicer.f | 40 ++++++++-----------
 .../interface/c_fortran/genfsidresplicer.py   | 10 ++---
 src/axom/sidre/interface/sidre_shroud.yaml    | 16 ++++++++
 .../sidre/spio/interface/spio_shroud.yaml     |  7 +++-
 src/axom/slic/interface/slic_shroud.yaml      |  2 +-
 7 files changed, 63 insertions(+), 33 deletions(-)

diff --git a/src/axom/quest/interface/quest_shroud.yaml b/src/axom/quest/interface/quest_shroud.yaml
index 5a3820d344..9550bc0bbf 100644
--- a/src/axom/quest/interface/quest_shroud.yaml
+++ b/src/axom/quest/interface/quest_shroud.yaml
@@ -19,8 +19,8 @@ options:
   F_module_name_library_template: axom_{library_lower}
 #  F_module_per_class: False
   # Change the default template for Fortran functions to include the library name.
-  F_name_impl_template: "{library_lower}_{C_name_scope}{underscore_name}{function_suffix}"
-  F_name_generic_template: "{library_lower}_{underscore_name}"
+  F_name_impl_template: "{library_lower}_{C_name_scope}{F_name_api}{function_suffix}"
+  F_name_generic_template: "{library_lower}_{F_name_api}"
   wrap_python: True
 
 format:
diff --git a/src/axom/sidre/interface/c_fortran/csidresplicer.c b/src/axom/sidre/interface/c_fortran/csidresplicer.c
index 15f8d91606..e3fe98db35 100644
--- a/src/axom/sidre/interface/c_fortran/csidresplicer.c
+++ b/src/axom/sidre/interface/c_fortran/csidresplicer.c
@@ -13,6 +13,23 @@
  ******************************************************************************
  */
 
+// Into typesSidre.h
+// splicer begin types.C_declarations
+#include <axom/sidre/interface/SidreTypes.h>
+// splicer end types.C_declarations
+
+// splicer begin C_declarations
+#if 0
+  #ifndef __cplusplus
+    #if defined(USE_64BIT_INDEXTYPE)
+typedef int64_t IndexType;
+    #else
+typedef int32_t IndexType;
+    #endif
+  #endif
+#endif
+// splicer end C_declarations
+
 // splicer begin C_definitions
 // equivalent to C_LOC
 // called from Fortran
diff --git a/src/axom/sidre/interface/c_fortran/fsidresplicer.f b/src/axom/sidre/interface/c_fortran/fsidresplicer.f
index c2eeabbab8..dbc8109c59 100644
--- a/src/axom/sidre/interface/c_fortran/fsidresplicer.f
+++ b/src/axom/sidre/interface/c_fortran/fsidresplicer.f
@@ -35,12 +35,6 @@
 ! splicer begin module_top
 integer, parameter :: MAXNAMESIZE = 128
 
-#if defined(AXOM_USE_64BIT_INDEXTYPE) && !defined(AXOM_NO_INT64_T)
-integer, parameter :: SIDRE_IndexType = C_INT64_T
-#else
-integer, parameter :: SIDRE_IndexType = C_INT32_T
-#endif
-
 integer, parameter :: TypeID = C_SHORT
 integer, parameter :: TypeIDint = C_INT
 
@@ -63,26 +57,26 @@
     SIDRE_ULONG_ID      = CONDUIT_ULONG_ID, &
     SIDRE_FLOAT_ID      = CONDUIT_FLOAT_ID, &
     SIDRE_DOUBLE_ID     = CONDUIT_DOUBLE_ID
-
-integer, parameter :: invalid_index = -1_SIDRE_IndexType
 ! splicer end module_top
 
 
 # SIDRE_create_fortran_allocatable_view is not in api.yaml since it is not in src/core and
 # only required for the fortran interface.
 
-! splicer begin additional_interfaces
-function SIDRE_create_array_view(group, name, lname, addr, type, rank, extents) &
-      result(rv) bind(C,name="SIDRE_create_array_view")
-    use iso_c_binding
-    import SIDRE_IndexType
-    type(C_PTR), value, intent(IN)     :: group
-    character(kind=C_CHAR), intent(IN) :: name(*)
-    integer(C_INT), value, intent(IN)  :: lname
-    type(C_PTR), value,     intent(IN) :: addr
-    integer(C_INT), value, intent(IN)  :: type
-    integer(C_INT), value, intent(IN)  :: rank
-    integer(SIDRE_IndexType), intent(IN)  :: extents(*)
-    type(C_PTR) rv
-end function SIDRE_create_array_view
-! splicer end additional_interfaces
+! splicer begin additional_declarations
+interface
+  function SIDRE_create_array_view(group, name, lname, addr, type, rank, extents) &
+        result(rv) bind(C,name="SIDRE_create_array_view")
+      use iso_c_binding
+      import SIDRE_IndexType
+      type(C_PTR), value, intent(IN)     :: group
+      character(kind=C_CHAR), intent(IN) :: name(*)
+      integer(C_INT), value, intent(IN)  :: lname
+      type(C_PTR), value,     intent(IN) :: addr
+      integer(C_INT), value, intent(IN)  :: type
+      integer(C_INT), value, intent(IN)  :: rank
+      integer(SIDRE_IndexType), intent(IN)  :: extents(*)
+      type(C_PTR) rv
+  end function SIDRE_create_array_view
+end interface
+! splicer end additional_declarations
diff --git a/src/axom/sidre/interface/c_fortran/genfsidresplicer.py b/src/axom/sidre/interface/c_fortran/genfsidresplicer.py
index 6d0912652f..40f0c66c55 100644
--- a/src/axom/sidre/interface/c_fortran/genfsidresplicer.py
+++ b/src/axom/sidre/interface/c_fortran/genfsidresplicer.py
@@ -37,7 +37,7 @@ def group_get_scalar(d):
     character(*), intent(IN) :: name
     {f_type}, intent(OUT) :: value
     integer(C_INT) :: lname
-    type(SIDRE_SHROUD_view_capsule) view
+    type(SIDRE_SHROUD_capsule_data) view
     type(C_PTR) viewptr
 
     lname = len_trim(name)
@@ -56,7 +56,7 @@ def group_set_scalar(d):
     character(*), intent(IN) :: name
     {f_type}, intent(IN) :: value
     integer(C_INT) :: lname
-    type(SIDRE_SHROUD_view_capsule) view
+    type(SIDRE_SHROUD_capsule_data) view
     type(C_PTR) viewptr
 
     lname = len_trim(name)
@@ -133,7 +133,7 @@ def group_set_array_data_ptr(d):
     character(len=*), intent(IN) :: name
     {f_type}, target, intent(IN) :: value{shape}
     integer(C_INT) :: lname
-    type(SIDRE_SHROUD_view_capsule) view
+    type(SIDRE_SHROUD_capsule_data) view
 !    integer(SIDRE_IndexType) :: {extents_decl}
 !    integer(C_INT), parameter :: type = {sidre_type}
     type(C_PTR) addr, viewptr
@@ -368,7 +368,7 @@ def group_string():
     character(*), intent(IN) :: name
     character(*), intent(OUT) :: value
     integer(C_INT) :: lname
-    type(SIDRE_SHROUD_view_capsule) view
+    type(SIDRE_SHROUD_capsule_data) view
     type(C_PTR) viewptr
 
     lname = len_trim(name)
@@ -382,7 +382,7 @@ def group_string():
     character(*), intent(IN) :: name
     character(*), intent(IN) :: value
     integer(C_INT) :: lname
-    type(SIDRE_SHROUD_view_capsule) view
+    type(SIDRE_SHROUD_capsule_data) view
     type(C_PTR) viewptr
 
     lname = len_trim(name)
diff --git a/src/axom/sidre/interface/sidre_shroud.yaml b/src/axom/sidre/interface/sidre_shroud.yaml
index deb18ac077..28f2af33c6 100644
--- a/src/axom/sidre/interface/sidre_shroud.yaml
+++ b/src/axom/sidre/interface/sidre_shroud.yaml
@@ -14,6 +14,7 @@ namespace: axom sidre
 
 options:
 #  debug: True
+  C_API_case: underscore
   C_line_length: 1000
   F_module_per_class: False
   F_module_name_library_template: axom_{library_lower}
@@ -46,6 +47,16 @@ declarations:
     f_c_module:
       "--import--":
       -  SIDRE_IndexType
+  splicer:
+    f: |
+      #if defined(AXOM_USE_64BIT_INDEXTYPE) && !defined(AXOM_NO_INT64_T)
+      integer, parameter :: SIDRE_IndexType = C_INT64_T
+      #else
+      integer, parameter :: SIDRE_IndexType = C_INT32_T
+      #endif
+      integer, parameter :: invalid_index = -1_SIDRE_IndexType
+    c:
+    - // See SidreTypes.h
 
 - decl: typedef short TypeID
   fields:
@@ -91,22 +102,27 @@ declarations:
   cxx_header: axom/sidre/core/Buffer.hpp
   format:
     F_derived_name:  SidreBuffer
+    C_name_api: Buffer
 
 - decl: class Group
   # SidreTypes.h is required for C_invalid_name pattern.
   cxx_header: axom/sidre/core/Group.hpp
   format:
     F_derived_name:  SidreGroup
+    C_name_api: Group
 
 - decl: class View
   cxx_header: axom/sidre/core/View.hpp
   format:
     F_derived_name:  SidreView
+    C_name_api: View
 
   ####################################################################
 - decl: class DataStore
   cxx_header: axom/sidre/core/DataStore.hpp
   format:
+    C_name_api: DataStore
+    F_name_api: datastore
     F_derived_name:  SidreDataStore
 
   declarations:
diff --git a/src/axom/sidre/spio/interface/spio_shroud.yaml b/src/axom/sidre/spio/interface/spio_shroud.yaml
index e0a7e67e63..b819621357 100644
--- a/src/axom/sidre/spio/interface/spio_shroud.yaml
+++ b/src/axom/sidre/spio/interface/spio_shroud.yaml
@@ -32,7 +32,7 @@ typemap:
     c_type: SIDRE_DataStore
     f_module_name: axom_sidre
     f_derived_type: SidreDataStore
-    f_capsule_data_type: SIDRE_SHROUD_datastore_capsule
+    f_capsule_data_type: SIDRE_SHROUD_capsule_data
     f_to_c: '{f_var}%cxxmem'
 
 - type: axom::sidre::Group
@@ -42,12 +42,15 @@ typemap:
     c_type: SIDRE_Group
     f_module_name: axom_sidre
     f_derived_type: SidreGroup
-    f_capsule_data_type: SIDRE_SHROUD_group_capsule
+    f_capsule_data_type: SIDRE_SHROUD_capsule_data
     f_to_c: '{f_var}%cxxmem'
 
 declarations:
 - decl: class IOManager
   cxx_header: axom/sidre/spio/IOManager.hpp
+  format:
+    F_derived_name: iomanager
+    C_name_scope: IOManager_
   declarations:
   - decl: IOManager(MPI_Comm com, bool use_scr = false)
     default_arg_suffix:
diff --git a/src/axom/slic/interface/slic_shroud.yaml b/src/axom/slic/interface/slic_shroud.yaml
index 5c269c9769..70d56204fb 100644
--- a/src/axom/slic/interface/slic_shroud.yaml
+++ b/src/axom/slic/interface/slic_shroud.yaml
@@ -17,7 +17,7 @@ options:
   C_line_length: 1000
   F_module_name_library_template: axom_{library_lower}
   # Change the default template for Fortran functions to include the library name.
-  F_name_impl_template: "{library_lower}_{F_name_scope}{underscore_name}{function_suffix}"
+  F_name_impl_template: "{library_lower}_{F_name_scope}{F_name_api}{function_suffix}"
 
 format:
   C_prefix: SLIC_

From 8fc2e0000ee2fab9f4257c6f405028b530ed05de Mon Sep 17 00:00:00 2001
From: shroud-robot <axom-dev@llnl.gov>
Date: Fri, 9 Feb 2024 13:45:33 -0800
Subject: [PATCH 2/3] generate Shroud wrappers with 0.13.0

make generate
make clangformat_style
---
 .../quest/interface/c_fortran/typesQUEST.h    |    8 +-
 .../quest/interface/c_fortran/wrapQUEST.cpp   |   56 +-
 .../quest/interface/c_fortran/wrapQUEST.h     |   44 +-
 .../quest/interface/c_fortran/wrapfquest.F    |   46 +-
 .../quest/interface/python/pyQUESTmodule.cpp  |    2 +-
 .../quest/interface/python/pyQUESTmodule.hpp  |    5 +-
 .../quest/interface/yaml/quest_types.yaml     |    2 +-
 .../sidre/interface/c_fortran/typesSidre.h    |    9 +-
 .../sidre/interface/c_fortran/wrapBuffer.cpp  |   33 +-
 .../sidre/interface/c_fortran/wrapBuffer.h    |    5 +-
 .../interface/c_fortran/wrapDataStore.cpp     |  207 +-
 .../sidre/interface/c_fortran/wrapDataStore.h |  101 +-
 .../sidre/interface/c_fortran/wrapGroup.cpp   |  892 +++---
 .../sidre/interface/c_fortran/wrapGroup.h     |  658 +++--
 .../sidre/interface/c_fortran/wrapSidre.cpp   |   41 +-
 .../sidre/interface/c_fortran/wrapSidre.h     |   28 +-
 .../sidre/interface/c_fortran/wrapView.cpp    |  304 +-
 src/axom/sidre/interface/c_fortran/wrapView.h |  181 +-
 .../sidre/interface/c_fortran/wrapfsidre.F    | 2494 ++++++++++-------
 .../sidre/interface/yaml/sidre_types.yaml     |   10 +-
 .../spio/interface/c_fortran/typesSPIO.h      |   14 +-
 .../interface/c_fortran/wrapIOManager.cpp     |  201 +-
 .../spio/interface/c_fortran/wrapIOManager.h  |  198 +-
 .../spio/interface/c_fortran/wrapfspio.f      |  544 ++--
 .../sidre/spio/interface/yaml/spio_types.yaml |    4 +-
 src/axom/slic/interface/c_fortran/typesSLIC.h |    8 +-
 .../c_fortran/wrapGenericOutputStream.cpp     |   45 +-
 .../c_fortran/wrapGenericOutputStream.h       |   38 +-
 .../slic/interface/c_fortran/wrapSLIC.cpp     |  297 +-
 src/axom/slic/interface/c_fortran/wrapSLIC.h  |  102 +-
 src/axom/slic/interface/c_fortran/wrapfslic.f |  300 +-
 src/axom/slic/interface/slic_types.yaml       |    4 +-
 32 files changed, 4035 insertions(+), 2846 deletions(-)

diff --git a/src/axom/quest/interface/c_fortran/typesQUEST.h b/src/axom/quest/interface/c_fortran/typesQUEST.h
index 5ed643de49..d4e830a695 100644
--- a/src/axom/quest/interface/c_fortran/typesQUEST.h
+++ b/src/axom/quest/interface/c_fortran/typesQUEST.h
@@ -1,5 +1,5 @@
 // typesQUEST.h
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
@@ -10,10 +10,16 @@
 #ifndef TYPESQUEST_H
 #define TYPESQUEST_H
 
+// splicer begin types.CXX_declarations
+// splicer end types.CXX_declarations
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+// splicer begin types.C_declarations
+// splicer end types.C_declarations
+
 // helper capsule_data_helper
 struct s_QUEST_SHROUD_capsule_data
 {
diff --git a/src/axom/quest/interface/c_fortran/wrapQUEST.cpp b/src/axom/quest/interface/c_fortran/wrapQUEST.cpp
index 040caa8294..6a742d41bb 100644
--- a/src/axom/quest/interface/c_fortran/wrapQUEST.cpp
+++ b/src/axom/quest/interface/c_fortran/wrapQUEST.cpp
@@ -1,22 +1,39 @@
 // wrapQUEST.cpp
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
 //
 // SPDX-License-Identifier: (BSD-3-Clause)
-#include "wrapQUEST.h"
-#include <cstdlib>
-#include <string>
+
 #include "axom/quest/interface/inout.hpp"
 #include "axom/quest/interface/signed_distance.hpp"
-#include "typesQUEST.h"
+#include <string>
+#include "wrapQUEST.h"
 
 // splicer begin CXX_definitions
 // splicer end CXX_definitions
 
 extern "C" {
 
+// helper ShroudLenTrim
+// Returns the length of character string src with length nsrc,
+// ignoring any trailing blanks.
+static int ShroudLenTrim(const char *src, int nsrc)
+{
+  int i;
+
+  for(i = nsrc - 1; i >= 0; i--)
+  {
+    if(src[i] != ' ')
+    {
+      break;
+    }
+  }
+
+  return i + 1;
+}
+
 // splicer begin C_definitions
 // splicer end C_definitions
 
@@ -33,12 +50,13 @@ int QUEST_inout_init_mpi(const char *fileName, MPI_Fint comm)
 #endif  // ifdef AXOM_USE_MPI
 
 #ifdef AXOM_USE_MPI
-int QUEST_inout_init_mpi_bufferify(const char *fileName,
-                                   int LfileName,
+int QUEST_inout_init_mpi_bufferify(char *fileName,
+                                   int SHT_fileName_len,
                                    MPI_Fint comm)
 {
   // splicer begin function.inout_init_mpi_bufferify
-  const std::string SHCXX_fileName(fileName, LfileName);
+  const std::string SHCXX_fileName(fileName,
+                                   ShroudLenTrim(fileName, SHT_fileName_len));
   MPI_Comm SHCXX_comm = MPI_Comm_f2c(comm);
   int SHC_rv = axom::quest::inout_init(SHCXX_fileName, SHCXX_comm);
   return SHC_rv;
@@ -58,10 +76,11 @@ int QUEST_inout_init_serial(const char *fileName)
 #endif  // ifndef AXOM_USE_MPI
 
 #ifndef AXOM_USE_MPI
-int QUEST_inout_init_serial_bufferify(const char *fileName, int LfileName)
+int QUEST_inout_init_serial_bufferify(char *fileName, int SHT_fileName_len)
 {
   // splicer begin function.inout_init_serial_bufferify
-  const std::string SHCXX_fileName(fileName, LfileName);
+  const std::string SHCXX_fileName(fileName,
+                                   ShroudLenTrim(fileName, SHT_fileName_len));
   int SHC_rv = axom::quest::inout_init(SHCXX_fileName);
   return SHC_rv;
   // splicer end function.inout_init_serial_bufferify
@@ -177,12 +196,12 @@ int QUEST_signed_distance_init_mpi(const char *file, MPI_Fint comm)
 #endif  // ifdef AXOM_USE_MPI
 
 #ifdef AXOM_USE_MPI
-int QUEST_signed_distance_init_mpi_bufferify(const char *file,
-                                             int Lfile,
+int QUEST_signed_distance_init_mpi_bufferify(char *file,
+                                             int SHT_file_len,
                                              MPI_Fint comm)
 {
   // splicer begin function.signed_distance_init_mpi_bufferify
-  const std::string SHCXX_file(file, Lfile);
+  const std::string SHCXX_file(file, ShroudLenTrim(file, SHT_file_len));
   MPI_Comm SHCXX_comm = MPI_Comm_f2c(comm);
   int SHC_rv = axom::quest::signed_distance_init(SHCXX_file, SHCXX_comm);
   return SHC_rv;
@@ -202,10 +221,10 @@ int QUEST_signed_distance_init_serial(const char *file)
 #endif  // ifndef AXOM_USE_MPI
 
 #ifndef AXOM_USE_MPI
-int QUEST_signed_distance_init_serial_bufferify(const char *file, int Lfile)
+int QUEST_signed_distance_init_serial_bufferify(char *file, int SHT_file_len)
 {
   // splicer begin function.signed_distance_init_serial_bufferify
-  const std::string SHCXX_file(file, Lfile);
+  const std::string SHCXX_file(file, ShroudLenTrim(file, SHT_file_len));
   int SHC_rv = axom::quest::signed_distance_init(SHCXX_file);
   return SHC_rv;
   // splicer end function.signed_distance_init_serial_bufferify
@@ -317,11 +336,4 @@ void QUEST_signed_distance_finalize(void)
   // splicer end function.signed_distance_finalize
 }
 
-// Release library allocated memory.
-void QUEST_SHROUD_memory_destructor(QUEST_SHROUD_capsule_data *cap)
-{
-  cap->addr = nullptr;
-  cap->idtor = 0;  // avoid deleting again
-}
-
 }  // extern "C"
diff --git a/src/axom/quest/interface/c_fortran/wrapQUEST.h b/src/axom/quest/interface/c_fortran/wrapQUEST.h
index 88b2919aa2..734dbf7355 100644
--- a/src/axom/quest/interface/c_fortran/wrapQUEST.h
+++ b/src/axom/quest/interface/c_fortran/wrapQUEST.h
@@ -1,5 +1,5 @@
 // wrapQUEST.h
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
@@ -17,10 +17,10 @@
 #ifdef AXOM_USE_MPI
   #include "mpi.h"
 #endif
-#include "typesQUEST.h"
 #ifndef __cplusplus
   #include <stdbool.h>
 #endif
+#include "typesQUEST.h"
 
 // splicer begin CXX_declarations
 // splicer end CXX_declarations
@@ -41,21 +41,21 @@ enum QUEST_SignedDistExec
 // splicer end C_declarations
 
 #ifdef AXOM_USE_MPI
-int QUEST_inout_init_mpi(const char* fileName, MPI_Fint comm);
+int QUEST_inout_init_mpi(const char *fileName, MPI_Fint comm);
 #endif
 
 #ifdef AXOM_USE_MPI
-int QUEST_inout_init_mpi_bufferify(const char* fileName,
-                                   int LfileName,
+int QUEST_inout_init_mpi_bufferify(char *fileName,
+                                   int SHT_fileName_len,
                                    MPI_Fint comm);
 #endif
 
 #ifndef AXOM_USE_MPI
-int QUEST_inout_init_serial(const char* fileName);
+int QUEST_inout_init_serial(const char *fileName);
 #endif
 
 #ifndef AXOM_USE_MPI
-int QUEST_inout_init_serial_bufferify(const char* fileName, int LfileName);
+int QUEST_inout_init_serial_bufferify(char *fileName, int SHT_fileName_len);
 #endif
 
 bool QUEST_inout_initialized(void);
@@ -72,37 +72,37 @@ bool QUEST_inout_evaluate_0(double x, double y);
 
 bool QUEST_inout_evaluate_1(double x, double y, double z);
 
-int QUEST_inout_mesh_min_bounds(double* coords);
+int QUEST_inout_mesh_min_bounds(double *coords);
 
-int QUEST_inout_mesh_max_bounds(double* coords);
+int QUEST_inout_mesh_max_bounds(double *coords);
 
-int QUEST_inout_mesh_center_of_mass(double* coords);
+int QUEST_inout_mesh_center_of_mass(double *coords);
 
 int QUEST_inout_get_dimension(void);
 
 int QUEST_inout_finalize(void);
 
 #ifdef AXOM_USE_MPI
-int QUEST_signed_distance_init_mpi(const char* file, MPI_Fint comm);
+int QUEST_signed_distance_init_mpi(const char *file, MPI_Fint comm);
 #endif
 
 #ifdef AXOM_USE_MPI
-int QUEST_signed_distance_init_mpi_bufferify(const char* file,
-                                             int Lfile,
+int QUEST_signed_distance_init_mpi_bufferify(char *file,
+                                             int SHT_file_len,
                                              MPI_Fint comm);
 #endif
 
 #ifndef AXOM_USE_MPI
-int QUEST_signed_distance_init_serial(const char* file);
+int QUEST_signed_distance_init_serial(const char *file);
 #endif
 
 #ifndef AXOM_USE_MPI
-int QUEST_signed_distance_init_serial_bufferify(const char* file, int Lfile);
+int QUEST_signed_distance_init_serial_bufferify(char *file, int SHT_file_len);
 #endif
 
 bool QUEST_signed_distance_initialized(void);
 
-void QUEST_signed_distance_get_mesh_bounds(double* lo, double* hi);
+void QUEST_signed_distance_get_mesh_bounds(double *lo, double *hi);
 
 void QUEST_signed_distance_set_dimension(int dim);
 
@@ -123,12 +123,12 @@ double QUEST_signed_distance_evaluate_0(double x, double y, double z);
 double QUEST_signed_distance_evaluate_1(double x,
                                         double y,
                                         double z,
-                                        double* cp_x,
-                                        double* cp_y,
-                                        double* cp_z,
-                                        double* n_x,
-                                        double* n_y,
-                                        double* n_z);
+                                        double *cp_x,
+                                        double *cp_y,
+                                        double *cp_z,
+                                        double *n_x,
+                                        double *n_y,
+                                        double *n_z);
 
 void QUEST_signed_distance_finalize(void);
 
diff --git a/src/axom/quest/interface/c_fortran/wrapfquest.F b/src/axom/quest/interface/c_fortran/wrapfquest.F
index f5cf00e2a8..e93bd21b24 100644
--- a/src/axom/quest/interface/c_fortran/wrapfquest.F
+++ b/src/axom/quest/interface/c_fortran/wrapfquest.F
@@ -1,5 +1,5 @@
 ! wrapfquest.F
-! This file is generated by Shroud 0.12.2. Do not edit.
+! This file is generated by Shroud 0.13.0. Do not edit.
 !
 ! Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 ! other Axom Project Developers. See the top-level LICENSE file for details.
@@ -41,13 +41,14 @@ end function c_inout_init_mpi
 #endif
 
 #ifdef AXOM_USE_MPI
-        function c_inout_init_mpi_bufferify(fileName, LfileName, comm) &
+        function c_inout_init_mpi_bufferify(fileName, SHT_fileName_len, &
+                comm) &
                 result(SHT_rv) &
                 bind(C, name="QUEST_inout_init_mpi_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
             implicit none
             character(kind=C_CHAR), intent(IN) :: fileName(*)
-            integer(C_INT), value, intent(IN) :: LfileName
+            integer(C_INT), value, intent(IN) :: SHT_fileName_len
             integer(C_INT), value, intent(IN) :: comm
             integer(C_INT) :: SHT_rv
         end function c_inout_init_mpi_bufferify
@@ -65,13 +66,14 @@ end function c_inout_init_serial
 #endif
 
 #ifndef AXOM_USE_MPI
-        function c_inout_init_serial_bufferify(fileName, LfileName) &
+        function c_inout_init_serial_bufferify(fileName, &
+                SHT_fileName_len) &
                 result(SHT_rv) &
                 bind(C, name="QUEST_inout_init_serial_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
             implicit none
             character(kind=C_CHAR), intent(IN) :: fileName(*)
-            integer(C_INT), value, intent(IN) :: LfileName
+            integer(C_INT), value, intent(IN) :: SHT_fileName_len
             integer(C_INT) :: SHT_rv
         end function c_inout_init_serial_bufferify
 #endif
@@ -198,13 +200,14 @@ end function c_signed_distance_init_mpi
 #endif
 
 #ifdef AXOM_USE_MPI
-        function c_signed_distance_init_mpi_bufferify(file, Lfile, comm) &
+        function c_signed_distance_init_mpi_bufferify(file, &
+                SHT_file_len, comm) &
                 result(SHT_rv) &
                 bind(C, name="QUEST_signed_distance_init_mpi_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
             implicit none
             character(kind=C_CHAR), intent(IN) :: file(*)
-            integer(C_INT), value, intent(IN) :: Lfile
+            integer(C_INT), value, intent(IN) :: SHT_file_len
             integer(C_INT), value, intent(IN) :: comm
             integer(C_INT) :: SHT_rv
         end function c_signed_distance_init_mpi_bufferify
@@ -222,13 +225,14 @@ end function c_signed_distance_init_serial
 #endif
 
 #ifndef AXOM_USE_MPI
-        function c_signed_distance_init_serial_bufferify(file, Lfile) &
+        function c_signed_distance_init_serial_bufferify(file, &
+                SHT_file_len) &
                 result(SHT_rv) &
                 bind(C, name="QUEST_signed_distance_init_serial_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
             implicit none
             character(kind=C_CHAR), intent(IN) :: file(*)
-            integer(C_INT), value, intent(IN) :: Lfile
+            integer(C_INT), value, intent(IN) :: SHT_file_len
             integer(C_INT) :: SHT_rv
         end function c_signed_distance_init_serial_bufferify
 #endif
@@ -331,9 +335,6 @@ subroutine quest_signed_distance_finalize() &
                 bind(C, name="QUEST_signed_distance_finalize")
             implicit none
         end subroutine quest_signed_distance_finalize
-
-        ! splicer begin additional_interfaces
-        ! splicer end additional_interfaces
     end interface
 
     interface quest_inout_evaluate
@@ -364,6 +365,9 @@ end subroutine quest_signed_distance_finalize
 #endif
     end interface quest_signed_distance_init
 
+    ! splicer begin additional_declarations
+    ! splicer end additional_declarations
+
 contains
 
 #ifdef AXOM_USE_MPI
@@ -374,8 +378,10 @@ function quest_inout_init_mpi(fileName, comm) &
         integer, value, intent(IN) :: comm
         integer(C_INT) :: SHT_rv
         ! splicer begin function.inout_init_mpi
-        SHT_rv = c_inout_init_mpi_bufferify(fileName, &
-            len_trim(fileName, kind=C_INT), comm)
+        integer(C_INT) SHT_fileName_len
+        SHT_fileName_len = len(fileName, kind=C_INT)
+        SHT_rv = c_inout_init_mpi_bufferify(fileName, SHT_fileName_len, &
+            comm)
         ! splicer end function.inout_init_mpi
     end function quest_inout_init_mpi
 #endif
@@ -387,8 +393,10 @@ function quest_inout_init_serial(fileName) &
         character(len=*), intent(IN) :: fileName
         integer(C_INT) :: SHT_rv
         ! splicer begin function.inout_init_serial
+        integer(C_INT) SHT_fileName_len
+        SHT_fileName_len = len(fileName, kind=C_INT)
         SHT_rv = c_inout_init_serial_bufferify(fileName, &
-            len_trim(fileName, kind=C_INT))
+            SHT_fileName_len)
         ! splicer end function.inout_init_serial
     end function quest_inout_init_serial
 #endif
@@ -445,8 +453,10 @@ function quest_signed_distance_init_mpi(file, comm) &
         integer, value, intent(IN) :: comm
         integer(C_INT) :: SHT_rv
         ! splicer begin function.signed_distance_init_mpi
+        integer(C_INT) SHT_file_len
+        SHT_file_len = len(file, kind=C_INT)
         SHT_rv = c_signed_distance_init_mpi_bufferify(file, &
-            len_trim(file, kind=C_INT), comm)
+            SHT_file_len, comm)
         ! splicer end function.signed_distance_init_mpi
     end function quest_signed_distance_init_mpi
 #endif
@@ -458,8 +468,10 @@ function quest_signed_distance_init_serial(file) &
         character(len=*), intent(IN) :: file
         integer(C_INT) :: SHT_rv
         ! splicer begin function.signed_distance_init_serial
+        integer(C_INT) SHT_file_len
+        SHT_file_len = len(file, kind=C_INT)
         SHT_rv = c_signed_distance_init_serial_bufferify(file, &
-            len_trim(file, kind=C_INT))
+            SHT_file_len)
         ! splicer end function.signed_distance_init_serial
     end function quest_signed_distance_init_serial
 #endif
diff --git a/src/axom/quest/interface/python/pyQUESTmodule.cpp b/src/axom/quest/interface/python/pyQUESTmodule.cpp
index 1d10085cca..981b88f5bb 100644
--- a/src/axom/quest/interface/python/pyQUESTmodule.cpp
+++ b/src/axom/quest/interface/python/pyQUESTmodule.cpp
@@ -1,5 +1,5 @@
 // pyQUESTmodule.cpp
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
diff --git a/src/axom/quest/interface/python/pyQUESTmodule.hpp b/src/axom/quest/interface/python/pyQUESTmodule.hpp
index 7c2e82152a..c162fadba6 100644
--- a/src/axom/quest/interface/python/pyQUESTmodule.hpp
+++ b/src/axom/quest/interface/python/pyQUESTmodule.hpp
@@ -1,5 +1,5 @@
 // pyQUESTmodule.hpp
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
@@ -7,9 +7,12 @@
 // SPDX-License-Identifier: (BSD-3-Clause)
 #ifndef PYQUESTMODULE_HPP
 #define PYQUESTMODULE_HPP
+
 #include <Python.h>
+
 #include "axom/quest/interface/inout.hpp"
 #include "axom/quest/interface/signed_distance.hpp"
+
 // splicer begin header.include
 // splicer end header.include
 
diff --git a/src/axom/quest/interface/yaml/quest_types.yaml b/src/axom/quest/interface/yaml/quest_types.yaml
index 45f8279e2a..525c4fed8b 100644
--- a/src/axom/quest/interface/yaml/quest_types.yaml
+++ b/src/axom/quest/interface/yaml/quest_types.yaml
@@ -1,5 +1,5 @@
 # quest_types.yaml
-# This file is generated by Shroud 0.12.2. Do not edit.
+# This file is generated by Shroud 0.13.0. Do not edit.
 #
 # Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 # other Axom Project Developers. See the top-level LICENSE file for details.
diff --git a/src/axom/sidre/interface/c_fortran/typesSidre.h b/src/axom/sidre/interface/c_fortran/typesSidre.h
index e9b0fefbe9..20e56a9fbd 100644
--- a/src/axom/sidre/interface/c_fortran/typesSidre.h
+++ b/src/axom/sidre/interface/c_fortran/typesSidre.h
@@ -1,5 +1,5 @@
 // typesSidre.h
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
@@ -10,10 +10,17 @@
 #ifndef TYPESSIDRE_H
 #define TYPESSIDRE_H
 
+// splicer begin types.CXX_declarations
+// splicer end types.CXX_declarations
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+// splicer begin types.C_declarations
+#include <axom/sidre/interface/SidreTypes.h>
+// splicer end types.C_declarations
+
 // helper capsule_SIDRE_Buffer
 struct s_SIDRE_Buffer
 {
diff --git a/src/axom/sidre/interface/c_fortran/wrapBuffer.cpp b/src/axom/sidre/interface/c_fortran/wrapBuffer.cpp
index 8618e8b30c..07dc93a9f1 100644
--- a/src/axom/sidre/interface/c_fortran/wrapBuffer.cpp
+++ b/src/axom/sidre/interface/c_fortran/wrapBuffer.cpp
@@ -1,12 +1,13 @@
 // wrapBuffer.cpp
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
 //
 // SPDX-License-Identifier: (BSD-3-Clause)
-#include "wrapBuffer.h"
+
 #include "axom/sidre/core/Buffer.hpp"
+#include "wrapBuffer.h"
 
 // splicer begin class.Buffer.CXX_definitions
 // splicer end class.Buffer.CXX_definitions
@@ -20,70 +21,70 @@ SIDRE_IndexType SIDRE_Buffer_get_index(const SIDRE_Buffer *self)
 {
   const axom::sidre::Buffer *SH_this =
     static_cast<const axom::sidre::Buffer *>(self->addr);
-  // splicer begin class.Buffer.method.get_index
+  // splicer begin class.Buffer.method.getIndex
   axom::sidre::IndexType SHC_rv = SH_this->getIndex();
   return SHC_rv;
-  // splicer end class.Buffer.method.get_index
+  // splicer end class.Buffer.method.getIndex
 }
 
 size_t SIDRE_Buffer_get_num_views(const SIDRE_Buffer *self)
 {
   const axom::sidre::Buffer *SH_this =
     static_cast<const axom::sidre::Buffer *>(self->addr);
-  // splicer begin class.Buffer.method.get_num_views
+  // splicer begin class.Buffer.method.getNumViews
   size_t SHC_rv = SH_this->getNumViews();
   return SHC_rv;
-  // splicer end class.Buffer.method.get_num_views
+  // splicer end class.Buffer.method.getNumViews
 }
 
 void *SIDRE_Buffer_get_void_ptr(SIDRE_Buffer *self)
 {
   axom::sidre::Buffer *SH_this = static_cast<axom::sidre::Buffer *>(self->addr);
-  // splicer begin class.Buffer.method.get_void_ptr
+  // splicer begin class.Buffer.method.getVoidPtr
   void *SHC_rv = SH_this->getVoidPtr();
   return SHC_rv;
-  // splicer end class.Buffer.method.get_void_ptr
+  // splicer end class.Buffer.method.getVoidPtr
 }
 
 SIDRE_TypeIDint SIDRE_Buffer_get_type_id(const SIDRE_Buffer *self)
 {
   const axom::sidre::Buffer *SH_this =
     static_cast<const axom::sidre::Buffer *>(self->addr);
-  // splicer begin class.Buffer.method.get_type_id
+  // splicer begin class.Buffer.method.getTypeID
   axom::sidre::TypeID SHCXX_rv = SH_this->getTypeID();
   SIDRE_TypeIDint SHC_rv = static_cast<SIDRE_TypeIDint>(SHCXX_rv);
   return SHC_rv;
-  // splicer end class.Buffer.method.get_type_id
+  // splicer end class.Buffer.method.getTypeID
 }
 
 size_t SIDRE_Buffer_get_num_elements(const SIDRE_Buffer *self)
 {
   const axom::sidre::Buffer *SH_this =
     static_cast<const axom::sidre::Buffer *>(self->addr);
-  // splicer begin class.Buffer.method.get_num_elements
+  // splicer begin class.Buffer.method.getNumElements
   size_t SHC_rv = SH_this->getNumElements();
   return SHC_rv;
-  // splicer end class.Buffer.method.get_num_elements
+  // splicer end class.Buffer.method.getNumElements
 }
 
 size_t SIDRE_Buffer_get_total_bytes(const SIDRE_Buffer *self)
 {
   const axom::sidre::Buffer *SH_this =
     static_cast<const axom::sidre::Buffer *>(self->addr);
-  // splicer begin class.Buffer.method.get_total_bytes
+  // splicer begin class.Buffer.method.getTotalBytes
   size_t SHC_rv = SH_this->getTotalBytes();
   return SHC_rv;
-  // splicer end class.Buffer.method.get_total_bytes
+  // splicer end class.Buffer.method.getTotalBytes
 }
 
 size_t SIDRE_Buffer_get_bytes_per_element(const SIDRE_Buffer *self)
 {
   const axom::sidre::Buffer *SH_this =
     static_cast<const axom::sidre::Buffer *>(self->addr);
-  // splicer begin class.Buffer.method.get_bytes_per_element
+  // splicer begin class.Buffer.method.getBytesPerElement
   size_t SHC_rv = SH_this->getBytesPerElement();
   return SHC_rv;
-  // splicer end class.Buffer.method.get_bytes_per_element
+  // splicer end class.Buffer.method.getBytesPerElement
 }
 
 void SIDRE_Buffer_describe(SIDRE_Buffer *self,
diff --git a/src/axom/sidre/interface/c_fortran/wrapBuffer.h b/src/axom/sidre/interface/c_fortran/wrapBuffer.h
index 0aff9585e6..83c841881d 100644
--- a/src/axom/sidre/interface/c_fortran/wrapBuffer.h
+++ b/src/axom/sidre/interface/c_fortran/wrapBuffer.h
@@ -1,5 +1,5 @@
 // wrapBuffer.h
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
@@ -14,14 +14,15 @@
 #ifndef WRAPBUFFER_H
 #define WRAPBUFFER_H
 
+#include "wrapSidre.h"
 #include "axom/sidre/interface/SidreTypes.h"
-#include "typesSidre.h"
 #ifdef __cplusplus
   #include <cstddef>
   #include "axom/sidre/core/SidreTypes.hpp"
 #else
   #include <stddef.h>
 #endif
+#include "typesSidre.h"
 
 // splicer begin class.Buffer.CXX_declarations
 // splicer end class.Buffer.CXX_declarations
diff --git a/src/axom/sidre/interface/c_fortran/wrapDataStore.cpp b/src/axom/sidre/interface/c_fortran/wrapDataStore.cpp
index e59d22d320..ba5ffd88de 100644
--- a/src/axom/sidre/interface/c_fortran/wrapDataStore.cpp
+++ b/src/axom/sidre/interface/c_fortran/wrapDataStore.cpp
@@ -1,22 +1,41 @@
 // wrapDataStore.cpp
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
 //
 // SPDX-License-Identifier: (BSD-3-Clause)
-#include "wrapDataStore.h"
-#include <cstddef>
-#include <string>
-#include "axom/sidre/core/Buffer.hpp"
+
 #include "axom/sidre/core/DataStore.hpp"
 #include "axom/sidre/core/Group.hpp"
+#include "axom/sidre/core/Buffer.hpp"
+#include <string>
+#include <cstddef>
+#include "wrapDataStore.h"
 
 // splicer begin class.DataStore.CXX_definitions
 // splicer end class.DataStore.CXX_definitions
 
 extern "C" {
 
+// helper ShroudLenTrim
+// Returns the length of character string src with length nsrc,
+// ignoring any trailing blanks.
+static int ShroudLenTrim(const char *src, int nsrc)
+{
+  int i;
+
+  for(i = nsrc - 1; i >= 0; i--)
+  {
+    if(src[i] != ' ')
+    {
+      break;
+    }
+  }
+
+  return i + 1;
+}
+
 // splicer begin class.DataStore.C_definitions
 // splicer end class.DataStore.C_definitions
 
@@ -44,22 +63,22 @@ SIDRE_Group *SIDRE_DataStore_get_root(SIDRE_DataStore *self, SIDRE_Group *SHC_rv
 {
   axom::sidre::DataStore *SH_this =
     static_cast<axom::sidre::DataStore *>(self->addr);
-  // splicer begin class.DataStore.method.get_root
+  // splicer begin class.DataStore.method.getRoot
   axom::sidre::Group *SHCXX_rv = SH_this->getRoot();
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.DataStore.method.get_root
+  // splicer end class.DataStore.method.getRoot
 }
 
 size_t SIDRE_DataStore_get_num_buffers(const SIDRE_DataStore *self)
 {
   const axom::sidre::DataStore *SH_this =
     static_cast<const axom::sidre::DataStore *>(self->addr);
-  // splicer begin class.DataStore.method.get_num_buffers
+  // splicer begin class.DataStore.method.getNumBuffers
   size_t SHC_rv = SH_this->getNumBuffers();
   return SHC_rv;
-  // splicer end class.DataStore.method.get_num_buffers
+  // splicer end class.DataStore.method.getNumBuffers
 }
 
 SIDRE_Buffer *SIDRE_DataStore_get_buffer(SIDRE_DataStore *self,
@@ -68,7 +87,51 @@ SIDRE_Buffer *SIDRE_DataStore_get_buffer(SIDRE_DataStore *self,
 {
   axom::sidre::DataStore *SH_this =
     static_cast<axom::sidre::DataStore *>(self->addr);
-  // splicer begin class.DataStore.method.get_buffer
+  // splicer begin class.DataStore.method.getBuffer
+  axom::sidre::Buffer *SHCXX_rv = SH_this->getBuffer(idx);
+  // C_error_pattern
+  if(SHCXX_rv == nullptr)
+  {
+    SHC_rv->addr = NULL;
+    SHC_rv->idtor = 0;
+    return NULL;
+  }
+
+  SHC_rv->addr = SHCXX_rv;
+  SHC_rv->idtor = 0;
+  return SHC_rv;
+  // splicer end class.DataStore.method.getBuffer
+}
+
+SIDRE_Buffer *SIDRE_DataStore_get_buffer_int32_t(SIDRE_DataStore *self,
+                                                 int32_t idx,
+                                                 SIDRE_Buffer *SHC_rv)
+{
+  axom::sidre::DataStore *SH_this =
+    static_cast<axom::sidre::DataStore *>(self->addr);
+  // splicer begin class.DataStore.method.getBuffer_int32_t
+  axom::sidre::Buffer *SHCXX_rv = SH_this->getBuffer(idx);
+  // C_error_pattern
+  if(SHCXX_rv == nullptr)
+  {
+    SHC_rv->addr = NULL;
+    SHC_rv->idtor = 0;
+    return NULL;
+  }
+
+  SHC_rv->addr = SHCXX_rv;
+  SHC_rv->idtor = 0;
+  return SHC_rv;
+  // splicer end class.DataStore.method.getBuffer_int32_t
+}
+
+SIDRE_Buffer *SIDRE_DataStore_get_buffer_int64_t(SIDRE_DataStore *self,
+                                                 int64_t idx,
+                                                 SIDRE_Buffer *SHC_rv)
+{
+  axom::sidre::DataStore *SH_this =
+    static_cast<axom::sidre::DataStore *>(self->addr);
+  // splicer begin class.DataStore.method.getBuffer_int64_t
   axom::sidre::Buffer *SHCXX_rv = SH_this->getBuffer(idx);
   // C_error_pattern
   if(SHCXX_rv == nullptr)
@@ -81,7 +144,7 @@ SIDRE_Buffer *SIDRE_DataStore_get_buffer(SIDRE_DataStore *self,
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.DataStore.method.get_buffer
+  // splicer end class.DataStore.method.getBuffer_int64_t
 }
 
 SIDRE_Buffer *SIDRE_DataStore_create_buffer_empty(SIDRE_DataStore *self,
@@ -89,12 +152,12 @@ SIDRE_Buffer *SIDRE_DataStore_create_buffer_empty(SIDRE_DataStore *self,
 {
   axom::sidre::DataStore *SH_this =
     static_cast<axom::sidre::DataStore *>(self->addr);
-  // splicer begin class.DataStore.method.create_buffer_empty
+  // splicer begin class.DataStore.method.createBuffer_empty
   axom::sidre::Buffer *SHCXX_rv = SH_this->createBuffer();
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.DataStore.method.create_buffer_empty
+  // splicer end class.DataStore.method.createBuffer_empty
 }
 
 SIDRE_Buffer *SIDRE_DataStore_create_buffer_from_type(SIDRE_DataStore *self,
@@ -104,7 +167,55 @@ SIDRE_Buffer *SIDRE_DataStore_create_buffer_from_type(SIDRE_DataStore *self,
 {
   axom::sidre::DataStore *SH_this =
     static_cast<axom::sidre::DataStore *>(self->addr);
-  // splicer begin class.DataStore.method.create_buffer_from_type
+  // splicer begin class.DataStore.method.createBuffer_from_type
+  axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
+  axom::sidre::Buffer *SHCXX_rv = SH_this->createBuffer(SHCXX_type, num_elems);
+  // C_error_pattern
+  if(SHCXX_rv == nullptr)
+  {
+    SHC_rv->addr = NULL;
+    SHC_rv->idtor = 0;
+    return NULL;
+  }
+
+  SHC_rv->addr = SHCXX_rv;
+  SHC_rv->idtor = 0;
+  return SHC_rv;
+  // splicer end class.DataStore.method.createBuffer_from_type
+}
+
+SIDRE_Buffer *SIDRE_DataStore_create_buffer_from_type_int32_t(SIDRE_DataStore *self,
+                                                              SIDRE_TypeID type,
+                                                              int32_t num_elems,
+                                                              SIDRE_Buffer *SHC_rv)
+{
+  axom::sidre::DataStore *SH_this =
+    static_cast<axom::sidre::DataStore *>(self->addr);
+  // splicer begin class.DataStore.method.createBuffer_from_type_int32_t
+  axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
+  axom::sidre::Buffer *SHCXX_rv = SH_this->createBuffer(SHCXX_type, num_elems);
+  // C_error_pattern
+  if(SHCXX_rv == nullptr)
+  {
+    SHC_rv->addr = NULL;
+    SHC_rv->idtor = 0;
+    return NULL;
+  }
+
+  SHC_rv->addr = SHCXX_rv;
+  SHC_rv->idtor = 0;
+  return SHC_rv;
+  // splicer end class.DataStore.method.createBuffer_from_type_int32_t
+}
+
+SIDRE_Buffer *SIDRE_DataStore_create_buffer_from_type_int64_t(SIDRE_DataStore *self,
+                                                              SIDRE_TypeID type,
+                                                              int64_t num_elems,
+                                                              SIDRE_Buffer *SHC_rv)
+{
+  axom::sidre::DataStore *SH_this =
+    static_cast<axom::sidre::DataStore *>(self->addr);
+  // splicer begin class.DataStore.method.createBuffer_from_type_int64_t
   axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
   axom::sidre::Buffer *SHCXX_rv = SH_this->createBuffer(SHCXX_type, num_elems);
   // C_error_pattern
@@ -118,16 +229,16 @@ SIDRE_Buffer *SIDRE_DataStore_create_buffer_from_type(SIDRE_DataStore *self,
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.DataStore.method.create_buffer_from_type
+  // splicer end class.DataStore.method.createBuffer_from_type_int64_t
 }
 
 void SIDRE_DataStore_destroy_buffer(SIDRE_DataStore *self, SIDRE_IndexType id)
 {
   axom::sidre::DataStore *SH_this =
     static_cast<axom::sidre::DataStore *>(self->addr);
-  // splicer begin class.DataStore.method.destroy_buffer
+  // splicer begin class.DataStore.method.destroyBuffer
   SH_this->destroyBuffer(id);
-  // splicer end class.DataStore.method.destroy_buffer
+  // splicer end class.DataStore.method.destroyBuffer
 }
 
 bool SIDRE_DataStore_generate_blueprint_index_0(SIDRE_DataStore *self,
@@ -138,7 +249,7 @@ bool SIDRE_DataStore_generate_blueprint_index_0(SIDRE_DataStore *self,
 {
   axom::sidre::DataStore *SH_this =
     static_cast<axom::sidre::DataStore *>(self->addr);
-  // splicer begin class.DataStore.method.generate_blueprint_index_0
+  // splicer begin class.DataStore.method.generateBlueprintIndex_0
   const std::string SHCXX_domain_path(domain_path);
   const std::string SHCXX_mesh_name(mesh_name);
   const std::string SHCXX_index_path(index_path);
@@ -147,30 +258,35 @@ bool SIDRE_DataStore_generate_blueprint_index_0(SIDRE_DataStore *self,
                                                 SHCXX_index_path,
                                                 num_domains);
   return SHC_rv;
-  // splicer end class.DataStore.method.generate_blueprint_index_0
+  // splicer end class.DataStore.method.generateBlueprintIndex_0
 }
 
 bool SIDRE_DataStore_generate_blueprint_index_0_bufferify(SIDRE_DataStore *self,
-                                                          const char *domain_path,
-                                                          int Ldomain_path,
-                                                          const char *mesh_name,
-                                                          int Lmesh_name,
-                                                          const char *index_path,
-                                                          int Lindex_path,
+                                                          char *domain_path,
+                                                          int SHT_domain_path_len,
+                                                          char *mesh_name,
+                                                          int SHT_mesh_name_len,
+                                                          char *index_path,
+                                                          int SHT_index_path_len,
                                                           int num_domains)
 {
   axom::sidre::DataStore *SH_this =
     static_cast<axom::sidre::DataStore *>(self->addr);
-  // splicer begin class.DataStore.method.generate_blueprint_index_0_bufferify
-  const std::string SHCXX_domain_path(domain_path, Ldomain_path);
-  const std::string SHCXX_mesh_name(mesh_name, Lmesh_name);
-  const std::string SHCXX_index_path(index_path, Lindex_path);
+  // splicer begin class.DataStore.method.generateBlueprintIndex_0_bufferify
+  const std::string SHCXX_domain_path(
+    domain_path,
+    ShroudLenTrim(domain_path, SHT_domain_path_len));
+  const std::string SHCXX_mesh_name(mesh_name,
+                                    ShroudLenTrim(mesh_name, SHT_mesh_name_len));
+  const std::string SHCXX_index_path(
+    index_path,
+    ShroudLenTrim(index_path, SHT_index_path_len));
   bool SHC_rv = SH_this->generateBlueprintIndex(SHCXX_domain_path,
                                                 SHCXX_mesh_name,
                                                 SHCXX_index_path,
                                                 num_domains);
   return SHC_rv;
-  // splicer end class.DataStore.method.generate_blueprint_index_0_bufferify
+  // splicer end class.DataStore.method.generateBlueprintIndex_0_bufferify
 }
 
 #ifdef AXOM_USE_MPI
@@ -182,7 +298,7 @@ bool SIDRE_DataStore_generate_blueprint_index_1(SIDRE_DataStore *self,
 {
   axom::sidre::DataStore *SH_this =
     static_cast<axom::sidre::DataStore *>(self->addr);
-  // splicer begin class.DataStore.method.generate_blueprint_index_1
+  // splicer begin class.DataStore.method.generateBlueprintIndex_1
   MPI_Comm SHCXX_comm = MPI_Comm_f2c(comm);
   const std::string SHCXX_domain_path(domain_path);
   const std::string SHCXX_mesh_name(mesh_name);
@@ -192,33 +308,38 @@ bool SIDRE_DataStore_generate_blueprint_index_1(SIDRE_DataStore *self,
                                                 SHCXX_mesh_name,
                                                 SHCXX_index_path);
   return SHC_rv;
-  // splicer end class.DataStore.method.generate_blueprint_index_1
+  // splicer end class.DataStore.method.generateBlueprintIndex_1
 }
 #endif  // ifdef AXOM_USE_MPI
 
 #ifdef AXOM_USE_MPI
 bool SIDRE_DataStore_generate_blueprint_index_1_bufferify(SIDRE_DataStore *self,
                                                           MPI_Fint comm,
-                                                          const char *domain_path,
-                                                          int Ldomain_path,
-                                                          const char *mesh_name,
-                                                          int Lmesh_name,
-                                                          const char *index_path,
-                                                          int Lindex_path)
+                                                          char *domain_path,
+                                                          int SHT_domain_path_len,
+                                                          char *mesh_name,
+                                                          int SHT_mesh_name_len,
+                                                          char *index_path,
+                                                          int SHT_index_path_len)
 {
   axom::sidre::DataStore *SH_this =
     static_cast<axom::sidre::DataStore *>(self->addr);
-  // splicer begin class.DataStore.method.generate_blueprint_index_1_bufferify
+  // splicer begin class.DataStore.method.generateBlueprintIndex_1_bufferify
   MPI_Comm SHCXX_comm = MPI_Comm_f2c(comm);
-  const std::string SHCXX_domain_path(domain_path, Ldomain_path);
-  const std::string SHCXX_mesh_name(mesh_name, Lmesh_name);
-  const std::string SHCXX_index_path(index_path, Lindex_path);
+  const std::string SHCXX_domain_path(
+    domain_path,
+    ShroudLenTrim(domain_path, SHT_domain_path_len));
+  const std::string SHCXX_mesh_name(mesh_name,
+                                    ShroudLenTrim(mesh_name, SHT_mesh_name_len));
+  const std::string SHCXX_index_path(
+    index_path,
+    ShroudLenTrim(index_path, SHT_index_path_len));
   bool SHC_rv = SH_this->generateBlueprintIndex(SHCXX_comm,
                                                 SHCXX_domain_path,
                                                 SHCXX_mesh_name,
                                                 SHCXX_index_path);
   return SHC_rv;
-  // splicer end class.DataStore.method.generate_blueprint_index_1_bufferify
+  // splicer end class.DataStore.method.generateBlueprintIndex_1_bufferify
 }
 #endif  // ifdef AXOM_USE_MPI
 
diff --git a/src/axom/sidre/interface/c_fortran/wrapDataStore.h b/src/axom/sidre/interface/c_fortran/wrapDataStore.h
index 9b933dbdcc..0334e4acfd 100644
--- a/src/axom/sidre/interface/c_fortran/wrapDataStore.h
+++ b/src/axom/sidre/interface/c_fortran/wrapDataStore.h
@@ -1,5 +1,5 @@
 // wrapDataStore.h
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
@@ -14,18 +14,21 @@
 #ifndef WRAPDATASTORE_H
 #define WRAPDATASTORE_H
 
+#include "wrapSidre.h"
 #include "axom/sidre/interface/SidreTypes.h"
 #ifdef AXOM_USE_MPI
   #include "mpi.h"
 #endif
-#include "typesSidre.h"
 #ifdef __cplusplus
   #include <cstddef>
+  #include <cstdint>
   #include "axom/sidre/core/SidreTypes.hpp"
 #else
-  #include <stdbool.h>
   #include <stddef.h>
+  #include <stdint.h>
+  #include <stdbool.h>
 #endif
+#include "typesSidre.h"
 
 // splicer begin class.DataStore.CXX_declarations
 // splicer end class.DataStore.CXX_declarations
@@ -37,63 +40,83 @@ extern "C" {
 // splicer begin class.DataStore.C_declarations
 // splicer end class.DataStore.C_declarations
 
-SIDRE_DataStore* SIDRE_DataStore_new(SIDRE_DataStore* SHC_rv);
+SIDRE_DataStore *SIDRE_DataStore_new(SIDRE_DataStore *SHC_rv);
 
-void SIDRE_DataStore_delete(SIDRE_DataStore* self);
+void SIDRE_DataStore_delete(SIDRE_DataStore *self);
 
-SIDRE_Group* SIDRE_DataStore_get_root(SIDRE_DataStore* self, SIDRE_Group* SHC_rv);
+SIDRE_Group *SIDRE_DataStore_get_root(SIDRE_DataStore *self, SIDRE_Group *SHC_rv);
 
-size_t SIDRE_DataStore_get_num_buffers(const SIDRE_DataStore* self);
+size_t SIDRE_DataStore_get_num_buffers(const SIDRE_DataStore *self);
 
-SIDRE_Buffer* SIDRE_DataStore_get_buffer(SIDRE_DataStore* self,
+SIDRE_Buffer *SIDRE_DataStore_get_buffer(SIDRE_DataStore *self,
                                          SIDRE_IndexType idx,
-                                         SIDRE_Buffer* SHC_rv);
+                                         SIDRE_Buffer *SHC_rv);
 
-SIDRE_Buffer* SIDRE_DataStore_create_buffer_empty(SIDRE_DataStore* self,
-                                                  SIDRE_Buffer* SHC_rv);
+SIDRE_Buffer *SIDRE_DataStore_get_buffer_int32_t(SIDRE_DataStore *self,
+                                                 int32_t idx,
+                                                 SIDRE_Buffer *SHC_rv);
 
-SIDRE_Buffer* SIDRE_DataStore_create_buffer_from_type(SIDRE_DataStore* self,
-                                                      SIDRE_TypeID type,
-                                                      SIDRE_IndexType num_elems,
-                                                      SIDRE_Buffer* SHC_rv);
+SIDRE_Buffer *SIDRE_DataStore_get_buffer_int64_t(SIDRE_DataStore *self,
+                                                 int64_t idx,
+                                                 SIDRE_Buffer *SHC_rv);
 
-void SIDRE_DataStore_destroy_buffer(SIDRE_DataStore* self, SIDRE_IndexType id);
+SIDRE_Buffer *SIDRE_DataStore_create_buffer_empty(SIDRE_DataStore *self,
+                                                  SIDRE_Buffer *SHC_rv);
 
-bool SIDRE_DataStore_generate_blueprint_index_0(SIDRE_DataStore* self,
-                                                const char* domain_path,
-                                                const char* mesh_name,
-                                                const char* index_path,
+SIDRE_Buffer *SIDRE_DataStore_create_buffer_from_type(SIDRE_DataStore *self,
+                                                      SIDRE_TypeID type,
+                                                      SIDRE_IndexType num_elems,
+                                                      SIDRE_Buffer *SHC_rv);
+
+SIDRE_Buffer *SIDRE_DataStore_create_buffer_from_type_int32_t(
+  SIDRE_DataStore *self,
+  SIDRE_TypeID type,
+  int32_t num_elems,
+  SIDRE_Buffer *SHC_rv);
+
+SIDRE_Buffer *SIDRE_DataStore_create_buffer_from_type_int64_t(
+  SIDRE_DataStore *self,
+  SIDRE_TypeID type,
+  int64_t num_elems,
+  SIDRE_Buffer *SHC_rv);
+
+void SIDRE_DataStore_destroy_buffer(SIDRE_DataStore *self, SIDRE_IndexType id);
+
+bool SIDRE_DataStore_generate_blueprint_index_0(SIDRE_DataStore *self,
+                                                const char *domain_path,
+                                                const char *mesh_name,
+                                                const char *index_path,
                                                 int num_domains);
 
-bool SIDRE_DataStore_generate_blueprint_index_0_bufferify(SIDRE_DataStore* self,
-                                                          const char* domain_path,
-                                                          int Ldomain_path,
-                                                          const char* mesh_name,
-                                                          int Lmesh_name,
-                                                          const char* index_path,
-                                                          int Lindex_path,
+bool SIDRE_DataStore_generate_blueprint_index_0_bufferify(SIDRE_DataStore *self,
+                                                          char *domain_path,
+                                                          int SHT_domain_path_len,
+                                                          char *mesh_name,
+                                                          int SHT_mesh_name_len,
+                                                          char *index_path,
+                                                          int SHT_index_path_len,
                                                           int num_domains);
 
 #ifdef AXOM_USE_MPI
-bool SIDRE_DataStore_generate_blueprint_index_1(SIDRE_DataStore* self,
+bool SIDRE_DataStore_generate_blueprint_index_1(SIDRE_DataStore *self,
                                                 MPI_Fint comm,
-                                                const char* domain_path,
-                                                const char* mesh_name,
-                                                const char* index_path);
+                                                const char *domain_path,
+                                                const char *mesh_name,
+                                                const char *index_path);
 #endif
 
 #ifdef AXOM_USE_MPI
-bool SIDRE_DataStore_generate_blueprint_index_1_bufferify(SIDRE_DataStore* self,
+bool SIDRE_DataStore_generate_blueprint_index_1_bufferify(SIDRE_DataStore *self,
                                                           MPI_Fint comm,
-                                                          const char* domain_path,
-                                                          int Ldomain_path,
-                                                          const char* mesh_name,
-                                                          int Lmesh_name,
-                                                          const char* index_path,
-                                                          int Lindex_path);
+                                                          char *domain_path,
+                                                          int SHT_domain_path_len,
+                                                          char *mesh_name,
+                                                          int SHT_mesh_name_len,
+                                                          char *index_path,
+                                                          int SHT_index_path_len);
 #endif
 
-void SIDRE_DataStore_print(const SIDRE_DataStore* self);
+void SIDRE_DataStore_print(const SIDRE_DataStore *self);
 
 #ifdef __cplusplus
 }
diff --git a/src/axom/sidre/interface/c_fortran/wrapGroup.cpp b/src/axom/sidre/interface/c_fortran/wrapGroup.cpp
index ce2d3ef8ee..fdaca43484 100644
--- a/src/axom/sidre/interface/c_fortran/wrapGroup.cpp
+++ b/src/axom/sidre/interface/c_fortran/wrapGroup.cpp
@@ -1,23 +1,42 @@
 // wrapGroup.cpp
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
 //
 // SPDX-License-Identifier: (BSD-3-Clause)
-#include "wrapGroup.h"
-#include <cstring>
+
+#include "axom/sidre/core/Group.hpp"
 #include <string>
-#include "axom/sidre/core/Buffer.hpp"
 #include "axom/sidre/core/DataStore.hpp"
-#include "axom/sidre/core/Group.hpp"
 #include "axom/sidre/core/View.hpp"
+#include "axom/sidre/core/Buffer.hpp"
+#include <cstring>
+#include "wrapGroup.h"
 
 // splicer begin class.Group.CXX_definitions
 // splicer end class.Group.CXX_definitions
 
 extern "C" {
 
+// helper ShroudLenTrim
+// Returns the length of character string src with length nsrc,
+// ignoring any trailing blanks.
+static int ShroudLenTrim(const char *src, int nsrc)
+{
+  int i;
+
+  for(i = nsrc - 1; i >= 0; i--)
+  {
+    if(src[i] != ' ')
+    {
+      break;
+    }
+  }
+
+  return i + 1;
+}
+
 // helper ShroudStrCopy
 // Copy src into dest, blank fill to ndest characters
 // Truncate if dest is too short.
@@ -30,16 +49,10 @@ static void ShroudStrCopy(char *dest, int ndest, const char *src, int nsrc)
   }
   else
   {
-    if(nsrc < 0)
-    {
-      nsrc = std::strlen(src);
-    }
+    if(nsrc < 0) nsrc = std::strlen(src);
     int nm = nsrc < ndest ? nsrc : ndest;
     std::memcpy(dest, src, nm);
-    if(ndest > nm)
-    {
-      std::memset(dest + nm, ' ', ndest - nm);  // blank fill
-    }
+    if(ndest > nm) std::memset(dest + nm, ' ', ndest - nm);  // blank fill
   }
 }
 // splicer begin class.Group.C_definitions
@@ -48,110 +61,110 @@ static void ShroudStrCopy(char *dest, int ndest, const char *src, int nsrc)
 SIDRE_IndexType SIDRE_Group_get_index(SIDRE_Group *self)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_index
+  // splicer begin class.Group.method.getIndex
   axom::sidre::IndexType SHC_rv = SH_this->getIndex();
   return SHC_rv;
-  // splicer end class.Group.method.get_index
+  // splicer end class.Group.method.getIndex
 }
 
 const char *SIDRE_Group_get_name(const SIDRE_Group *self)
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_name
+  // splicer begin class.Group.method.getName
   const std::string &SHCXX_rv = SH_this->getName();
   const char *SHC_rv = SHCXX_rv.c_str();
   return SHC_rv;
-  // splicer end class.Group.method.get_name
+  // splicer end class.Group.method.getName
 }
 
 void SIDRE_Group_get_name_bufferify(const SIDRE_Group *self,
-                                    char *SHF_rv,
-                                    int NSHF_rv)
+                                    char *SHC_rv,
+                                    int SHT_rv_len)
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_name_bufferify
+  // splicer begin class.Group.method.getName_bufferify
   const std::string &SHCXX_rv = SH_this->getName();
   if(SHCXX_rv.empty())
   {
-    ShroudStrCopy(SHF_rv, NSHF_rv, nullptr, 0);
+    ShroudStrCopy(SHC_rv, SHT_rv_len, nullptr, 0);
   }
   else
   {
-    ShroudStrCopy(SHF_rv, NSHF_rv, SHCXX_rv.data(), SHCXX_rv.size());
+    ShroudStrCopy(SHC_rv, SHT_rv_len, SHCXX_rv.data(), SHCXX_rv.size());
   }
-  // splicer end class.Group.method.get_name_bufferify
+  // splicer end class.Group.method.getName_bufferify
 }
 
 void SIDRE_Group_get_path_bufferify(const SIDRE_Group *self,
-                                    char *SHF_rv,
-                                    int NSHF_rv)
+                                    char *SHC_rv,
+                                    int SHT_rv_len)
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_path_bufferify
+  // splicer begin class.Group.method.getPath_bufferify
   std::string SHCXX_rv = SH_this->getPath();
   if(SHCXX_rv.empty())
   {
-    ShroudStrCopy(SHF_rv, NSHF_rv, nullptr, 0);
+    ShroudStrCopy(SHC_rv, SHT_rv_len, nullptr, 0);
   }
   else
   {
-    ShroudStrCopy(SHF_rv, NSHF_rv, SHCXX_rv.data(), SHCXX_rv.size());
+    ShroudStrCopy(SHC_rv, SHT_rv_len, SHCXX_rv.data(), SHCXX_rv.size());
   }
-  // splicer end class.Group.method.get_path_bufferify
+  // splicer end class.Group.method.getPath_bufferify
 }
 
 void SIDRE_Group_get_path_name_bufferify(const SIDRE_Group *self,
-                                         char *SHF_rv,
-                                         int NSHF_rv)
+                                         char *SHC_rv,
+                                         int SHT_rv_len)
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_path_name_bufferify
+  // splicer begin class.Group.method.getPathName_bufferify
   std::string SHCXX_rv = SH_this->getPathName();
   if(SHCXX_rv.empty())
   {
-    ShroudStrCopy(SHF_rv, NSHF_rv, nullptr, 0);
+    ShroudStrCopy(SHC_rv, SHT_rv_len, nullptr, 0);
   }
   else
   {
-    ShroudStrCopy(SHF_rv, NSHF_rv, SHCXX_rv.data(), SHCXX_rv.size());
+    ShroudStrCopy(SHC_rv, SHT_rv_len, SHCXX_rv.data(), SHCXX_rv.size());
   }
-  // splicer end class.Group.method.get_path_name_bufferify
+  // splicer end class.Group.method.getPathName_bufferify
 }
 
 SIDRE_Group *SIDRE_Group_get_parent(const SIDRE_Group *self, SIDRE_Group *SHC_rv)
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_parent
+  // splicer begin class.Group.method.getParent
   const axom::sidre::Group *SHCXX_rv = SH_this->getParent();
   SHC_rv->addr = const_cast<axom::sidre::Group *>(SHCXX_rv);
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.get_parent
+  // splicer end class.Group.method.getParent
 }
 
 size_t SIDRE_Group_get_num_groups(const SIDRE_Group *self)
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_num_groups
+  // splicer begin class.Group.method.getNumGroups
   size_t SHC_rv = SH_this->getNumGroups();
   return SHC_rv;
-  // splicer end class.Group.method.get_num_groups
+  // splicer end class.Group.method.getNumGroups
 }
 
 size_t SIDRE_Group_get_num_views(const SIDRE_Group *self)
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_num_views
+  // splicer begin class.Group.method.getNumViews
   size_t SHC_rv = SH_this->getNumViews();
   return SHC_rv;
-  // splicer end class.Group.method.get_num_views
+  // splicer end class.Group.method.getNumViews
 }
 
 SIDRE_DataStore *SIDRE_Group_get_data_store(const SIDRE_Group *self,
@@ -159,60 +172,60 @@ SIDRE_DataStore *SIDRE_Group_get_data_store(const SIDRE_Group *self,
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_data_store
+  // splicer begin class.Group.method.getDataStore
   const axom::sidre::DataStore *SHCXX_rv = SH_this->getDataStore();
   SHC_rv->addr = const_cast<axom::sidre::DataStore *>(SHCXX_rv);
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.get_data_store
+  // splicer end class.Group.method.getDataStore
 }
 
 bool SIDRE_Group_has_view(const SIDRE_Group *self, const char *path)
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.has_view
+  // splicer begin class.Group.method.hasView
   const std::string SHCXX_path(path);
   bool SHC_rv = SH_this->hasView(SHCXX_path);
   return SHC_rv;
-  // splicer end class.Group.method.has_view
+  // splicer end class.Group.method.hasView
 }
 
 bool SIDRE_Group_has_view_bufferify(const SIDRE_Group *self,
-                                    const char *path,
-                                    int Lpath)
+                                    char *path,
+                                    int SHT_path_len)
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.has_view_bufferify
-  const std::string SHCXX_path(path, Lpath);
+  // splicer begin class.Group.method.hasView_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
   bool SHC_rv = SH_this->hasView(SHCXX_path);
   return SHC_rv;
-  // splicer end class.Group.method.has_view_bufferify
+  // splicer end class.Group.method.hasView_bufferify
 }
 
 bool SIDRE_Group_has_child_view(const SIDRE_Group *self, const char *name)
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.has_child_view
+  // splicer begin class.Group.method.hasChildView
   const std::string SHCXX_name(name);
   bool SHC_rv = SH_this->hasChildView(SHCXX_name);
   return SHC_rv;
-  // splicer end class.Group.method.has_child_view
+  // splicer end class.Group.method.hasChildView
 }
 
 bool SIDRE_Group_has_child_view_bufferify(const SIDRE_Group *self,
-                                          const char *name,
-                                          int Lname)
+                                          char *name,
+                                          int SHT_name_len)
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.has_child_view_bufferify
-  const std::string SHCXX_name(name, Lname);
+  // splicer begin class.Group.method.hasChildView_bufferify
+  const std::string SHCXX_name(name, ShroudLenTrim(name, SHT_name_len));
   bool SHC_rv = SH_this->hasChildView(SHCXX_name);
   return SHC_rv;
-  // splicer end class.Group.method.has_child_view_bufferify
+  // splicer end class.Group.method.hasChildView_bufferify
 }
 
 SIDRE_IndexType SIDRE_Group_get_view_index(const SIDRE_Group *self,
@@ -220,31 +233,31 @@ SIDRE_IndexType SIDRE_Group_get_view_index(const SIDRE_Group *self,
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_view_index
+  // splicer begin class.Group.method.getViewIndex
   const std::string SHCXX_name(name);
   axom::sidre::IndexType SHC_rv = SH_this->getViewIndex(SHCXX_name);
   return SHC_rv;
-  // splicer end class.Group.method.get_view_index
+  // splicer end class.Group.method.getViewIndex
 }
 
 SIDRE_IndexType SIDRE_Group_get_view_index_bufferify(const SIDRE_Group *self,
-                                                     const char *name,
-                                                     int Lname)
+                                                     char *name,
+                                                     int SHT_name_len)
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_view_index_bufferify
-  const std::string SHCXX_name(name, Lname);
+  // splicer begin class.Group.method.getViewIndex_bufferify
+  const std::string SHCXX_name(name, ShroudLenTrim(name, SHT_name_len));
   axom::sidre::IndexType SHC_rv = SH_this->getViewIndex(SHCXX_name);
   return SHC_rv;
-  // splicer end class.Group.method.get_view_index_bufferify
+  // splicer end class.Group.method.getViewIndex_bufferify
 }
 
 const char *SIDRE_Group_get_view_name(const SIDRE_Group *self, SIDRE_IndexType idx)
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_view_name
+  // splicer begin class.Group.method.getViewName
   const std::string &SHCXX_rv = SH_this->getViewName(idx);
   // C_error_pattern
   if(!axom::sidre::nameIsValid(SHCXX_rv))
@@ -254,34 +267,61 @@ const char *SIDRE_Group_get_view_name(const SIDRE_Group *self, SIDRE_IndexType i
 
   const char *SHC_rv = SHCXX_rv.c_str();
   return SHC_rv;
-  // splicer end class.Group.method.get_view_name
+  // splicer end class.Group.method.getViewName
 }
 
-void SIDRE_Group_get_view_name_bufferify(const SIDRE_Group *self,
-                                         SIDRE_IndexType idx,
-                                         char *SHF_rv,
-                                         int NSHF_rv)
+void SIDRE_Group_get_view_name_int32_t_bufferify(const SIDRE_Group *self,
+                                                 int32_t idx,
+                                                 char *SHC_rv,
+                                                 int SHT_rv_len)
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_view_name_bufferify
+  // splicer begin class.Group.method.getViewName_int32_t_bufferify
   const std::string &SHCXX_rv = SH_this->getViewName(idx);
   // C_error_pattern
   if(!axom::sidre::nameIsValid(SHCXX_rv))
   {
-    std::memset(SHF_rv, ' ', NSHF_rv);
+    std::memset(SHC_rv, ' ', SHT_rv_len);
     return;
   }
 
   if(SHCXX_rv.empty())
   {
-    ShroudStrCopy(SHF_rv, NSHF_rv, nullptr, 0);
+    ShroudStrCopy(SHC_rv, SHT_rv_len, nullptr, 0);
   }
   else
   {
-    ShroudStrCopy(SHF_rv, NSHF_rv, SHCXX_rv.data(), SHCXX_rv.size());
+    ShroudStrCopy(SHC_rv, SHT_rv_len, SHCXX_rv.data(), SHCXX_rv.size());
   }
-  // splicer end class.Group.method.get_view_name_bufferify
+  // splicer end class.Group.method.getViewName_int32_t_bufferify
+}
+
+void SIDRE_Group_get_view_name_int64_t_bufferify(const SIDRE_Group *self,
+                                                 int64_t idx,
+                                                 char *SHC_rv,
+                                                 int SHT_rv_len)
+{
+  const axom::sidre::Group *SH_this =
+    static_cast<const axom::sidre::Group *>(self->addr);
+  // splicer begin class.Group.method.getViewName_int64_t_bufferify
+  const std::string &SHCXX_rv = SH_this->getViewName(idx);
+  // C_error_pattern
+  if(!axom::sidre::nameIsValid(SHCXX_rv))
+  {
+    std::memset(SHC_rv, ' ', SHT_rv_len);
+    return;
+  }
+
+  if(SHCXX_rv.empty())
+  {
+    ShroudStrCopy(SHC_rv, SHT_rv_len, nullptr, 0);
+  }
+  else
+  {
+    ShroudStrCopy(SHC_rv, SHT_rv_len, SHCXX_rv.data(), SHCXX_rv.size());
+  }
+  // splicer end class.Group.method.getViewName_int64_t_bufferify
 }
 
 SIDRE_View *SIDRE_Group_get_view_from_name(SIDRE_Group *self,
@@ -289,7 +329,7 @@ SIDRE_View *SIDRE_Group_get_view_from_name(SIDRE_Group *self,
                                            SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_view_from_name
+  // splicer begin class.Group.method.getView_from_name
   const std::string SHCXX_path(path);
   axom::sidre::View *SHCXX_rv = SH_this->getView(SHCXX_path);
   // C_error_pattern
@@ -303,22 +343,22 @@ SIDRE_View *SIDRE_Group_get_view_from_name(SIDRE_Group *self,
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.get_view_from_name
+  // splicer end class.Group.method.getView_from_name
 }
 
 SIDRE_View *SIDRE_Group_get_view_from_name_bufferify(SIDRE_Group *self,
-                                                     const char *path,
-                                                     int Lpath,
+                                                     char *path,
+                                                     int SHT_path_len,
                                                      SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_view_from_name_bufferify
-  const std::string SHCXX_path(path, Lpath);
+  // splicer begin class.Group.method.getView_from_name_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
   axom::sidre::View *SHCXX_rv = SH_this->getView(SHCXX_path);
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.get_view_from_name_bufferify
+  // splicer end class.Group.method.getView_from_name_bufferify
 }
 
 SIDRE_View *SIDRE_Group_get_view_from_index(SIDRE_Group *self,
@@ -326,7 +366,49 @@ SIDRE_View *SIDRE_Group_get_view_from_index(SIDRE_Group *self,
                                             SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_view_from_index
+  // splicer begin class.Group.method.getView_from_index
+  axom::sidre::View *SHCXX_rv = SH_this->getView(idx);
+  // C_error_pattern
+  if(SHCXX_rv == nullptr)
+  {
+    SHC_rv->addr = NULL;
+    SHC_rv->idtor = 0;
+    return NULL;
+  }
+
+  SHC_rv->addr = SHCXX_rv;
+  SHC_rv->idtor = 0;
+  return SHC_rv;
+  // splicer end class.Group.method.getView_from_index
+}
+
+SIDRE_View *SIDRE_Group_get_view_from_index_int32_t(SIDRE_Group *self,
+                                                    int32_t idx,
+                                                    SIDRE_View *SHC_rv)
+{
+  axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
+  // splicer begin class.Group.method.getView_from_index_int32_t
+  axom::sidre::View *SHCXX_rv = SH_this->getView(idx);
+  // C_error_pattern
+  if(SHCXX_rv == nullptr)
+  {
+    SHC_rv->addr = NULL;
+    SHC_rv->idtor = 0;
+    return NULL;
+  }
+
+  SHC_rv->addr = SHCXX_rv;
+  SHC_rv->idtor = 0;
+  return SHC_rv;
+  // splicer end class.Group.method.getView_from_index_int32_t
+}
+
+SIDRE_View *SIDRE_Group_get_view_from_index_int64_t(SIDRE_Group *self,
+                                                    int64_t idx,
+                                                    SIDRE_View *SHC_rv)
+{
+  axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
+  // splicer begin class.Group.method.getView_from_index_int64_t
   axom::sidre::View *SHCXX_rv = SH_this->getView(idx);
   // C_error_pattern
   if(SHCXX_rv == nullptr)
@@ -339,17 +421,17 @@ SIDRE_View *SIDRE_Group_get_view_from_index(SIDRE_Group *self,
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.get_view_from_index
+  // splicer end class.Group.method.getView_from_index_int64_t
 }
 
 SIDRE_IndexType SIDRE_Group_get_first_valid_view_index(const SIDRE_Group *self)
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_first_valid_view_index
+  // splicer begin class.Group.method.getFirstValidViewIndex
   axom::sidre::IndexType SHC_rv = SH_this->getFirstValidViewIndex();
   return SHC_rv;
-  // splicer end class.Group.method.get_first_valid_view_index
+  // splicer end class.Group.method.getFirstValidViewIndex
 }
 
 SIDRE_IndexType SIDRE_Group_get_next_valid_view_index(const SIDRE_Group *self,
@@ -357,10 +439,10 @@ SIDRE_IndexType SIDRE_Group_get_next_valid_view_index(const SIDRE_Group *self,
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_next_valid_view_index
+  // splicer begin class.Group.method.getNextValidViewIndex
   axom::sidre::IndexType SHC_rv = SH_this->getNextValidViewIndex(idx);
   return SHC_rv;
-  // splicer end class.Group.method.get_next_valid_view_index
+  // splicer end class.Group.method.getNextValidViewIndex
 }
 
 SIDRE_View *SIDRE_Group_create_view_empty(SIDRE_Group *self,
@@ -368,7 +450,7 @@ SIDRE_View *SIDRE_Group_create_view_empty(SIDRE_Group *self,
                                           SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_empty
+  // splicer begin class.Group.method.createView_empty
   const std::string SHCXX_path(path);
   axom::sidre::View *SHCXX_rv = SH_this->createView(SHCXX_path);
   // C_error_pattern
@@ -382,22 +464,22 @@ SIDRE_View *SIDRE_Group_create_view_empty(SIDRE_Group *self,
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_empty
+  // splicer end class.Group.method.createView_empty
 }
 
 SIDRE_View *SIDRE_Group_create_view_empty_bufferify(SIDRE_Group *self,
-                                                    const char *path,
-                                                    int Lpath,
+                                                    char *path,
+                                                    int SHT_path_len,
                                                     SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_empty_bufferify
-  const std::string SHCXX_path(path, Lpath);
+  // splicer begin class.Group.method.createView_empty_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
   axom::sidre::View *SHCXX_rv = SH_this->createView(SHCXX_path);
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_empty_bufferify
+  // splicer end class.Group.method.createView_empty_bufferify
 }
 
 SIDRE_View *SIDRE_Group_create_view_from_type(SIDRE_Group *self,
@@ -407,7 +489,7 @@ SIDRE_View *SIDRE_Group_create_view_from_type(SIDRE_Group *self,
                                               SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_from_type
+  // splicer begin class.Group.method.createView_from_type
   const std::string SHCXX_path(path);
   axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
   axom::sidre::View *SHCXX_rv =
@@ -423,26 +505,45 @@ SIDRE_View *SIDRE_Group_create_view_from_type(SIDRE_Group *self,
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_from_type
+  // splicer end class.Group.method.createView_from_type
 }
 
-SIDRE_View *SIDRE_Group_create_view_from_type_bufferify(SIDRE_Group *self,
-                                                        const char *path,
-                                                        int Lpath,
-                                                        SIDRE_TypeID type,
-                                                        SIDRE_IndexType num_elems,
-                                                        SIDRE_View *SHC_rv)
+SIDRE_View *SIDRE_Group_create_view_from_type_int32_t_bufferify(SIDRE_Group *self,
+                                                                char *path,
+                                                                int SHT_path_len,
+                                                                SIDRE_TypeID type,
+                                                                int32_t num_elems,
+                                                                SIDRE_View *SHC_rv)
+{
+  axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
+  // splicer begin class.Group.method.createView_from_type_int32_t_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
+  axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
+  axom::sidre::View *SHCXX_rv =
+    SH_this->createView(SHCXX_path, SHCXX_type, num_elems);
+  SHC_rv->addr = SHCXX_rv;
+  SHC_rv->idtor = 0;
+  return SHC_rv;
+  // splicer end class.Group.method.createView_from_type_int32_t_bufferify
+}
+
+SIDRE_View *SIDRE_Group_create_view_from_type_int64_t_bufferify(SIDRE_Group *self,
+                                                                char *path,
+                                                                int SHT_path_len,
+                                                                SIDRE_TypeID type,
+                                                                int64_t num_elems,
+                                                                SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_from_type_bufferify
-  const std::string SHCXX_path(path, Lpath);
+  // splicer begin class.Group.method.createView_from_type_int64_t_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
   axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
   axom::sidre::View *SHCXX_rv =
     SH_this->createView(SHCXX_path, SHCXX_type, num_elems);
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_from_type_bufferify
+  // splicer end class.Group.method.createView_from_type_int64_t_bufferify
 }
 
 SIDRE_View *SIDRE_Group_create_view_with_shape_base(SIDRE_Group *self,
@@ -453,7 +554,7 @@ SIDRE_View *SIDRE_Group_create_view_with_shape_base(SIDRE_Group *self,
                                                     SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_with_shape_base
+  // splicer begin class.Group.method.createViewWithShape_base
   const std::string SHCXX_path(path);
   axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
   axom::sidre::View *SHCXX_rv =
@@ -469,28 +570,28 @@ SIDRE_View *SIDRE_Group_create_view_with_shape_base(SIDRE_Group *self,
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_with_shape_base
+  // splicer end class.Group.method.createViewWithShape_base
 }
 
 SIDRE_View *SIDRE_Group_create_view_with_shape_base_bufferify(
   SIDRE_Group *self,
-  const char *path,
-  int Lpath,
+  char *path,
+  int SHT_path_len,
   SIDRE_TypeID type,
   int ndims,
   const SIDRE_IndexType *shape,
   SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_with_shape_base_bufferify
-  const std::string SHCXX_path(path, Lpath);
+  // splicer begin class.Group.method.createViewWithShape_base_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
   axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
   axom::sidre::View *SHCXX_rv =
     SH_this->createViewWithShape(SHCXX_path, SHCXX_type, ndims, shape);
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_with_shape_base_bufferify
+  // splicer end class.Group.method.createViewWithShape_base_bufferify
 }
 
 SIDRE_View *SIDRE_Group_create_view_into_buffer(SIDRE_Group *self,
@@ -499,7 +600,7 @@ SIDRE_View *SIDRE_Group_create_view_into_buffer(SIDRE_Group *self,
                                                 SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_into_buffer
+  // splicer begin class.Group.method.createView_into_buffer
   const std::string SHCXX_path(path);
   axom::sidre::Buffer *SHCXX_buff =
     static_cast<axom::sidre::Buffer *>(buff->addr);
@@ -515,25 +616,25 @@ SIDRE_View *SIDRE_Group_create_view_into_buffer(SIDRE_Group *self,
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_into_buffer
+  // splicer end class.Group.method.createView_into_buffer
 }
 
 SIDRE_View *SIDRE_Group_create_view_into_buffer_bufferify(SIDRE_Group *self,
-                                                          const char *path,
-                                                          int Lpath,
+                                                          char *path,
+                                                          int SHT_path_len,
                                                           SIDRE_Buffer *buff,
                                                           SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_into_buffer_bufferify
-  const std::string SHCXX_path(path, Lpath);
+  // splicer begin class.Group.method.createView_into_buffer_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
   axom::sidre::Buffer *SHCXX_buff =
     static_cast<axom::sidre::Buffer *>(buff->addr);
   axom::sidre::View *SHCXX_rv = SH_this->createView(SHCXX_path, SHCXX_buff);
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_into_buffer_bufferify
+  // splicer end class.Group.method.createView_into_buffer_bufferify
 }
 
 SIDRE_View *SIDRE_Group_create_view_from_type_and_buffer(SIDRE_Group *self,
@@ -544,7 +645,7 @@ SIDRE_View *SIDRE_Group_create_view_from_type_and_buffer(SIDRE_Group *self,
                                                          SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_from_type_and_buffer
+  // splicer begin class.Group.method.createView_from_type_and_buffer
   const std::string SHCXX_path(path);
   axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
   axom::sidre::Buffer *SHCXX_buff =
@@ -562,21 +663,44 @@ SIDRE_View *SIDRE_Group_create_view_from_type_and_buffer(SIDRE_Group *self,
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_from_type_and_buffer
+  // splicer end class.Group.method.createView_from_type_and_buffer
 }
 
-SIDRE_View *SIDRE_Group_create_view_from_type_and_buffer_bufferify(
+SIDRE_View *SIDRE_Group_create_view_from_type_and_buffer_int32_t_bufferify(
   SIDRE_Group *self,
-  const char *path,
-  int Lpath,
+  char *path,
+  int SHT_path_len,
+  SIDRE_TypeID type,
+  int32_t num_elems,
+  SIDRE_Buffer *buff,
+  SIDRE_View *SHC_rv)
+{
+  axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
+  // splicer begin class.Group.method.createView_from_type_and_buffer_int32_t_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
+  axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
+  axom::sidre::Buffer *SHCXX_buff =
+    static_cast<axom::sidre::Buffer *>(buff->addr);
+  axom::sidre::View *SHCXX_rv =
+    SH_this->createView(SHCXX_path, SHCXX_type, num_elems, SHCXX_buff);
+  SHC_rv->addr = SHCXX_rv;
+  SHC_rv->idtor = 0;
+  return SHC_rv;
+  // splicer end class.Group.method.createView_from_type_and_buffer_int32_t_bufferify
+}
+
+SIDRE_View *SIDRE_Group_create_view_from_type_and_buffer_int64_t_bufferify(
+  SIDRE_Group *self,
+  char *path,
+  int SHT_path_len,
   SIDRE_TypeID type,
-  SIDRE_IndexType num_elems,
+  int64_t num_elems,
   SIDRE_Buffer *buff,
   SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_from_type_and_buffer_bufferify
-  const std::string SHCXX_path(path, Lpath);
+  // splicer begin class.Group.method.createView_from_type_and_buffer_int64_t_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
   axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
   axom::sidre::Buffer *SHCXX_buff =
     static_cast<axom::sidre::Buffer *>(buff->addr);
@@ -585,7 +709,7 @@ SIDRE_View *SIDRE_Group_create_view_from_type_and_buffer_bufferify(
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_from_type_and_buffer_bufferify
+  // splicer end class.Group.method.createView_from_type_and_buffer_int64_t_bufferify
 }
 
 SIDRE_View *SIDRE_Group_create_view_with_shape_and_buffer(SIDRE_Group *self,
@@ -597,7 +721,7 @@ SIDRE_View *SIDRE_Group_create_view_with_shape_and_buffer(SIDRE_Group *self,
                                                           SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_with_shape_and_buffer
+  // splicer begin class.Group.method.createViewWithShape_and_buffer
   const std::string SHCXX_path(path);
   axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
   axom::sidre::Buffer *SHCXX_buff =
@@ -615,13 +739,13 @@ SIDRE_View *SIDRE_Group_create_view_with_shape_and_buffer(SIDRE_Group *self,
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_with_shape_and_buffer
+  // splicer end class.Group.method.createViewWithShape_and_buffer
 }
 
 SIDRE_View *SIDRE_Group_create_view_with_shape_and_buffer_bufferify(
   SIDRE_Group *self,
-  const char *path,
-  int Lpath,
+  char *path,
+  int SHT_path_len,
   SIDRE_TypeID type,
   int ndims,
   const SIDRE_IndexType *shape,
@@ -629,8 +753,8 @@ SIDRE_View *SIDRE_Group_create_view_with_shape_and_buffer_bufferify(
   SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_with_shape_and_buffer_bufferify
-  const std::string SHCXX_path(path, Lpath);
+  // splicer begin class.Group.method.createViewWithShape_and_buffer_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
   axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
   axom::sidre::Buffer *SHCXX_buff =
     static_cast<axom::sidre::Buffer *>(buff->addr);
@@ -639,7 +763,7 @@ SIDRE_View *SIDRE_Group_create_view_with_shape_and_buffer_bufferify(
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_with_shape_and_buffer_bufferify
+  // splicer end class.Group.method.createViewWithShape_and_buffer_bufferify
 }
 
 SIDRE_View *SIDRE_Group_create_view_external(SIDRE_Group *self,
@@ -648,7 +772,7 @@ SIDRE_View *SIDRE_Group_create_view_external(SIDRE_Group *self,
                                              SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_external
+  // splicer begin class.Group.method.createView_external
   const std::string SHCXX_path(path);
   axom::sidre::View *SHCXX_rv = SH_this->createView(SHCXX_path, external_ptr);
   // C_error_pattern
@@ -662,23 +786,23 @@ SIDRE_View *SIDRE_Group_create_view_external(SIDRE_Group *self,
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_external
+  // splicer end class.Group.method.createView_external
 }
 
 SIDRE_View *SIDRE_Group_create_view_external_bufferify(SIDRE_Group *self,
-                                                       const char *path,
-                                                       int Lpath,
+                                                       char *path,
+                                                       int SHT_path_len,
                                                        void *external_ptr,
                                                        SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_external_bufferify
-  const std::string SHCXX_path(path, Lpath);
+  // splicer begin class.Group.method.createView_external_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
   axom::sidre::View *SHCXX_rv = SH_this->createView(SHCXX_path, external_ptr);
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_external_bufferify
+  // splicer end class.Group.method.createView_external_bufferify
 }
 
 SIDRE_View *SIDRE_Group_create_view_from_type_external(SIDRE_Group *self,
@@ -689,7 +813,7 @@ SIDRE_View *SIDRE_Group_create_view_from_type_external(SIDRE_Group *self,
                                                        SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_from_type_external
+  // splicer begin class.Group.method.createView_from_type_external
   const std::string SHCXX_path(path);
   axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
   axom::sidre::View *SHCXX_rv =
@@ -705,28 +829,49 @@ SIDRE_View *SIDRE_Group_create_view_from_type_external(SIDRE_Group *self,
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_from_type_external
+  // splicer end class.Group.method.createView_from_type_external
 }
 
-SIDRE_View *SIDRE_Group_create_view_from_type_external_bufferify(
+SIDRE_View *SIDRE_Group_create_view_from_type_external_int32_t_bufferify(
   SIDRE_Group *self,
-  const char *path,
-  int Lpath,
+  char *path,
+  int SHT_path_len,
   SIDRE_TypeID type,
-  SIDRE_IndexType num_elems,
+  int32_t num_elems,
   void *external_ptr,
   SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_from_type_external_bufferify
-  const std::string SHCXX_path(path, Lpath);
+  // splicer begin class.Group.method.createView_from_type_external_int32_t_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
   axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
   axom::sidre::View *SHCXX_rv =
     SH_this->createView(SHCXX_path, SHCXX_type, num_elems, external_ptr);
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_from_type_external_bufferify
+  // splicer end class.Group.method.createView_from_type_external_int32_t_bufferify
+}
+
+SIDRE_View *SIDRE_Group_create_view_from_type_external_int64_t_bufferify(
+  SIDRE_Group *self,
+  char *path,
+  int SHT_path_len,
+  SIDRE_TypeID type,
+  int64_t num_elems,
+  void *external_ptr,
+  SIDRE_View *SHC_rv)
+{
+  axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
+  // splicer begin class.Group.method.createView_from_type_external_int64_t_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
+  axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
+  axom::sidre::View *SHCXX_rv =
+    SH_this->createView(SHCXX_path, SHCXX_type, num_elems, external_ptr);
+  SHC_rv->addr = SHCXX_rv;
+  SHC_rv->idtor = 0;
+  return SHC_rv;
+  // splicer end class.Group.method.createView_from_type_external_int64_t_bufferify
 }
 
 SIDRE_View *SIDRE_Group_create_view_with_shape_external(SIDRE_Group *self,
@@ -738,7 +883,7 @@ SIDRE_View *SIDRE_Group_create_view_with_shape_external(SIDRE_Group *self,
                                                         SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_with_shape_external
+  // splicer begin class.Group.method.createViewWithShape_external
   const std::string SHCXX_path(path);
   axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
   axom::sidre::View *SHCXX_rv =
@@ -754,13 +899,13 @@ SIDRE_View *SIDRE_Group_create_view_with_shape_external(SIDRE_Group *self,
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_with_shape_external
+  // splicer end class.Group.method.createViewWithShape_external
 }
 
 SIDRE_View *SIDRE_Group_create_view_with_shape_external_bufferify(
   SIDRE_Group *self,
-  const char *path,
-  int Lpath,
+  char *path,
+  int SHT_path_len,
   SIDRE_TypeID type,
   int ndims,
   const SIDRE_IndexType *shape,
@@ -768,15 +913,15 @@ SIDRE_View *SIDRE_Group_create_view_with_shape_external_bufferify(
   SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_with_shape_external_bufferify
-  const std::string SHCXX_path(path, Lpath);
+  // splicer begin class.Group.method.createViewWithShape_external_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
   axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
   axom::sidre::View *SHCXX_rv =
     SH_this->createViewWithShape(SHCXX_path, SHCXX_type, ndims, shape, external_ptr);
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_with_shape_external_bufferify
+  // splicer end class.Group.method.createViewWithShape_external_bufferify
 }
 
 SIDRE_View *SIDRE_Group_create_view_and_allocate_nelems(SIDRE_Group *self,
@@ -786,7 +931,7 @@ SIDRE_View *SIDRE_Group_create_view_and_allocate_nelems(SIDRE_Group *self,
                                                         SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_and_allocate_nelems
+  // splicer begin class.Group.method.createViewAndAllocate_nelems
   const std::string SHCXX_path(path);
   axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
   axom::sidre::View *SHCXX_rv =
@@ -802,27 +947,47 @@ SIDRE_View *SIDRE_Group_create_view_and_allocate_nelems(SIDRE_Group *self,
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_and_allocate_nelems
+  // splicer end class.Group.method.createViewAndAllocate_nelems
 }
 
-SIDRE_View *SIDRE_Group_create_view_and_allocate_nelems_bufferify(
+SIDRE_View *SIDRE_Group_create_view_and_allocate_nelems_int32_t_bufferify(
   SIDRE_Group *self,
-  const char *path,
-  int Lpath,
+  char *path,
+  int SHT_path_len,
+  SIDRE_TypeID type,
+  int32_t num_elems,
+  SIDRE_View *SHC_rv)
+{
+  axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
+  // splicer begin class.Group.method.createViewAndAllocate_nelems_int32_t_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
+  axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
+  axom::sidre::View *SHCXX_rv =
+    SH_this->createViewAndAllocate(SHCXX_path, SHCXX_type, num_elems);
+  SHC_rv->addr = SHCXX_rv;
+  SHC_rv->idtor = 0;
+  return SHC_rv;
+  // splicer end class.Group.method.createViewAndAllocate_nelems_int32_t_bufferify
+}
+
+SIDRE_View *SIDRE_Group_create_view_and_allocate_nelems_int64_t_bufferify(
+  SIDRE_Group *self,
+  char *path,
+  int SHT_path_len,
   SIDRE_TypeID type,
-  SIDRE_IndexType num_elems,
+  int64_t num_elems,
   SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_and_allocate_nelems_bufferify
-  const std::string SHCXX_path(path, Lpath);
+  // splicer begin class.Group.method.createViewAndAllocate_nelems_int64_t_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
   axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
   axom::sidre::View *SHCXX_rv =
     SH_this->createViewAndAllocate(SHCXX_path, SHCXX_type, num_elems);
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_and_allocate_nelems_bufferify
+  // splicer end class.Group.method.createViewAndAllocate_nelems_int64_t_bufferify
 }
 
 SIDRE_View *SIDRE_Group_create_view_with_shape_and_allocate(
@@ -834,7 +999,7 @@ SIDRE_View *SIDRE_Group_create_view_with_shape_and_allocate(
   SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_with_shape_and_allocate
+  // splicer begin class.Group.method.createViewWithShapeAndAllocate
   const std::string SHCXX_path(path);
   axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
   axom::sidre::View *SHCXX_rv =
@@ -850,28 +1015,28 @@ SIDRE_View *SIDRE_Group_create_view_with_shape_and_allocate(
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_with_shape_and_allocate
+  // splicer end class.Group.method.createViewWithShapeAndAllocate
 }
 
 SIDRE_View *SIDRE_Group_create_view_with_shape_and_allocate_bufferify(
   SIDRE_Group *self,
-  const char *path,
-  int Lpath,
+  char *path,
+  int SHT_path_len,
   SIDRE_TypeID type,
   int ndims,
   const SIDRE_IndexType *shape,
   SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_with_shape_and_allocate_bufferify
-  const std::string SHCXX_path(path, Lpath);
+  // splicer begin class.Group.method.createViewWithShapeAndAllocate_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
   axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
   axom::sidre::View *SHCXX_rv =
     SH_this->createViewWithShapeAndAllocate(SHCXX_path, SHCXX_type, ndims, shape);
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_with_shape_and_allocate_bufferify
+  // splicer end class.Group.method.createViewWithShapeAndAllocate_bufferify
 }
 
 SIDRE_View *SIDRE_Group_create_view_scalar_int(SIDRE_Group *self,
@@ -880,7 +1045,7 @@ SIDRE_View *SIDRE_Group_create_view_scalar_int(SIDRE_Group *self,
                                                SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_scalar_int
+  // splicer begin class.Group.method.createViewScalar_int
   const std::string SHCXX_path(path);
   axom::sidre::View *SHCXX_rv = SH_this->createViewScalar<int>(SHCXX_path, value);
   // C_error_pattern
@@ -894,23 +1059,23 @@ SIDRE_View *SIDRE_Group_create_view_scalar_int(SIDRE_Group *self,
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_scalar_int
+  // splicer end class.Group.method.createViewScalar_int
 }
 
 SIDRE_View *SIDRE_Group_create_view_scalar_bufferify_int(SIDRE_Group *self,
-                                                         const char *path,
-                                                         int Lpath,
+                                                         char *path,
+                                                         int SHT_path_len,
                                                          int value,
                                                          SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_scalar_bufferify_int
-  const std::string SHCXX_path(path, Lpath);
+  // splicer begin class.Group.method.createViewScalar_bufferify_int
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
   axom::sidre::View *SHCXX_rv = SH_this->createViewScalar<int>(SHCXX_path, value);
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_scalar_bufferify_int
+  // splicer end class.Group.method.createViewScalar_bufferify_int
 }
 
 SIDRE_View *SIDRE_Group_create_view_scalar_long(SIDRE_Group *self,
@@ -919,7 +1084,7 @@ SIDRE_View *SIDRE_Group_create_view_scalar_long(SIDRE_Group *self,
                                                 SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_scalar_long
+  // splicer begin class.Group.method.createViewScalar_long
   const std::string SHCXX_path(path);
   axom::sidre::View *SHCXX_rv =
     SH_this->createViewScalar<long>(SHCXX_path, value);
@@ -934,24 +1099,24 @@ SIDRE_View *SIDRE_Group_create_view_scalar_long(SIDRE_Group *self,
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_scalar_long
+  // splicer end class.Group.method.createViewScalar_long
 }
 
 SIDRE_View *SIDRE_Group_create_view_scalar_bufferify_long(SIDRE_Group *self,
-                                                          const char *path,
-                                                          int Lpath,
+                                                          char *path,
+                                                          int SHT_path_len,
                                                           long value,
                                                           SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_scalar_bufferify_long
-  const std::string SHCXX_path(path, Lpath);
+  // splicer begin class.Group.method.createViewScalar_bufferify_long
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
   axom::sidre::View *SHCXX_rv =
     SH_this->createViewScalar<long>(SHCXX_path, value);
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_scalar_bufferify_long
+  // splicer end class.Group.method.createViewScalar_bufferify_long
 }
 
 SIDRE_View *SIDRE_Group_create_view_scalar_float(SIDRE_Group *self,
@@ -960,7 +1125,7 @@ SIDRE_View *SIDRE_Group_create_view_scalar_float(SIDRE_Group *self,
                                                  SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_scalar_float
+  // splicer begin class.Group.method.createViewScalar_float
   const std::string SHCXX_path(path);
   axom::sidre::View *SHCXX_rv =
     SH_this->createViewScalar<float>(SHCXX_path, value);
@@ -975,24 +1140,24 @@ SIDRE_View *SIDRE_Group_create_view_scalar_float(SIDRE_Group *self,
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_scalar_float
+  // splicer end class.Group.method.createViewScalar_float
 }
 
 SIDRE_View *SIDRE_Group_create_view_scalar_bufferify_float(SIDRE_Group *self,
-                                                           const char *path,
-                                                           int Lpath,
+                                                           char *path,
+                                                           int SHT_path_len,
                                                            float value,
                                                            SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_scalar_bufferify_float
-  const std::string SHCXX_path(path, Lpath);
+  // splicer begin class.Group.method.createViewScalar_bufferify_float
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
   axom::sidre::View *SHCXX_rv =
     SH_this->createViewScalar<float>(SHCXX_path, value);
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_scalar_bufferify_float
+  // splicer end class.Group.method.createViewScalar_bufferify_float
 }
 
 SIDRE_View *SIDRE_Group_create_view_scalar_double(SIDRE_Group *self,
@@ -1001,7 +1166,7 @@ SIDRE_View *SIDRE_Group_create_view_scalar_double(SIDRE_Group *self,
                                                   SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_scalar_double
+  // splicer begin class.Group.method.createViewScalar_double
   const std::string SHCXX_path(path);
   axom::sidre::View *SHCXX_rv =
     SH_this->createViewScalar<double>(SHCXX_path, value);
@@ -1016,24 +1181,24 @@ SIDRE_View *SIDRE_Group_create_view_scalar_double(SIDRE_Group *self,
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_scalar_double
+  // splicer end class.Group.method.createViewScalar_double
 }
 
 SIDRE_View *SIDRE_Group_create_view_scalar_bufferify_double(SIDRE_Group *self,
-                                                            const char *path,
-                                                            int Lpath,
+                                                            char *path,
+                                                            int SHT_path_len,
                                                             double value,
                                                             SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_scalar_bufferify_double
-  const std::string SHCXX_path(path, Lpath);
+  // splicer begin class.Group.method.createViewScalar_bufferify_double
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
   axom::sidre::View *SHCXX_rv =
     SH_this->createViewScalar<double>(SHCXX_path, value);
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_scalar_bufferify_double
+  // splicer end class.Group.method.createViewScalar_bufferify_double
 }
 
 SIDRE_View *SIDRE_Group_create_view_string(SIDRE_Group *self,
@@ -1042,7 +1207,7 @@ SIDRE_View *SIDRE_Group_create_view_string(SIDRE_Group *self,
                                            SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_string
+  // splicer begin class.Group.method.createViewString
   const std::string SHCXX_path(path);
   const std::string SHCXX_value(value);
   axom::sidre::View *SHCXX_rv =
@@ -1058,75 +1223,75 @@ SIDRE_View *SIDRE_Group_create_view_string(SIDRE_Group *self,
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_string
+  // splicer end class.Group.method.createViewString
 }
 
 SIDRE_View *SIDRE_Group_create_view_string_bufferify(SIDRE_Group *self,
-                                                     const char *path,
-                                                     int Lpath,
-                                                     const char *value,
-                                                     int Lvalue,
+                                                     char *path,
+                                                     int SHT_path_len,
+                                                     char *value,
+                                                     int SHT_value_len,
                                                      SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_view_string_bufferify
-  const std::string SHCXX_path(path, Lpath);
-  const std::string SHCXX_value(value, Lvalue);
+  // splicer begin class.Group.method.createViewString_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
+  const std::string SHCXX_value(value, ShroudLenTrim(value, SHT_value_len));
   axom::sidre::View *SHCXX_rv =
     SH_this->createViewString(SHCXX_path, SHCXX_value);
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_view_string_bufferify
+  // splicer end class.Group.method.createViewString_bufferify
 }
 
 void SIDRE_Group_destroy_view(SIDRE_Group *self, const char *path)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.destroy_view
+  // splicer begin class.Group.method.destroyView
   const std::string SHCXX_path(path);
   SH_this->destroyView(SHCXX_path);
-  // splicer end class.Group.method.destroy_view
+  // splicer end class.Group.method.destroyView
 }
 
 void SIDRE_Group_destroy_view_bufferify(SIDRE_Group *self,
-                                        const char *path,
-                                        int Lpath)
+                                        char *path,
+                                        int SHT_path_len)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.destroy_view_bufferify
-  const std::string SHCXX_path(path, Lpath);
+  // splicer begin class.Group.method.destroyView_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
   SH_this->destroyView(SHCXX_path);
-  // splicer end class.Group.method.destroy_view_bufferify
+  // splicer end class.Group.method.destroyView_bufferify
 }
 
 void SIDRE_Group_destroy_view_and_data_name(SIDRE_Group *self, const char *path)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.destroy_view_and_data_name
+  // splicer begin class.Group.method.destroyViewAndData_name
   const std::string SHCXX_path(path);
   SH_this->destroyViewAndData(SHCXX_path);
-  // splicer end class.Group.method.destroy_view_and_data_name
+  // splicer end class.Group.method.destroyViewAndData_name
 }
 
 void SIDRE_Group_destroy_view_and_data_name_bufferify(SIDRE_Group *self,
-                                                      const char *path,
-                                                      int Lpath)
+                                                      char *path,
+                                                      int SHT_path_len)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.destroy_view_and_data_name_bufferify
-  const std::string SHCXX_path(path, Lpath);
+  // splicer begin class.Group.method.destroyViewAndData_name_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
   SH_this->destroyViewAndData(SHCXX_path);
-  // splicer end class.Group.method.destroy_view_and_data_name_bufferify
+  // splicer end class.Group.method.destroyViewAndData_name_bufferify
 }
 
 void SIDRE_Group_destroy_view_and_data_index(SIDRE_Group *self,
                                              SIDRE_IndexType idx)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.destroy_view_and_data_index
+  // splicer begin class.Group.method.destroyViewAndData_index
   SH_this->destroyViewAndData(idx);
-  // splicer end class.Group.method.destroy_view_and_data_index
+  // splicer end class.Group.method.destroyViewAndData_index
 }
 
 SIDRE_View *SIDRE_Group_move_view(SIDRE_Group *self,
@@ -1134,13 +1299,13 @@ SIDRE_View *SIDRE_Group_move_view(SIDRE_Group *self,
                                   SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.move_view
+  // splicer begin class.Group.method.moveView
   axom::sidre::View *SHCXX_view = static_cast<axom::sidre::View *>(view->addr);
   axom::sidre::View *SHCXX_rv = SH_this->moveView(SHCXX_view);
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.move_view
+  // splicer end class.Group.method.moveView
 }
 
 SIDRE_View *SIDRE_Group_copy_view(SIDRE_Group *self,
@@ -1148,55 +1313,55 @@ SIDRE_View *SIDRE_Group_copy_view(SIDRE_Group *self,
                                   SIDRE_View *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.copy_view
+  // splicer begin class.Group.method.copyView
   axom::sidre::View *SHCXX_view = static_cast<axom::sidre::View *>(view->addr);
   axom::sidre::View *SHCXX_rv = SH_this->copyView(SHCXX_view);
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.copy_view
+  // splicer end class.Group.method.copyView
 }
 
 bool SIDRE_Group_has_group(SIDRE_Group *self, const char *path)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.has_group
+  // splicer begin class.Group.method.hasGroup
   const std::string SHCXX_path(path);
   bool SHC_rv = SH_this->hasGroup(SHCXX_path);
   return SHC_rv;
-  // splicer end class.Group.method.has_group
+  // splicer end class.Group.method.hasGroup
 }
 
-bool SIDRE_Group_has_group_bufferify(SIDRE_Group *self, const char *path, int Lpath)
+bool SIDRE_Group_has_group_bufferify(SIDRE_Group *self, char *path, int SHT_path_len)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.has_group_bufferify
-  const std::string SHCXX_path(path, Lpath);
+  // splicer begin class.Group.method.hasGroup_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
   bool SHC_rv = SH_this->hasGroup(SHCXX_path);
   return SHC_rv;
-  // splicer end class.Group.method.has_group_bufferify
+  // splicer end class.Group.method.hasGroup_bufferify
 }
 
 bool SIDRE_Group_has_child_group(SIDRE_Group *self, const char *name)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.has_child_group
+  // splicer begin class.Group.method.hasChildGroup
   const std::string SHCXX_name(name);
   bool SHC_rv = SH_this->hasChildGroup(SHCXX_name);
   return SHC_rv;
-  // splicer end class.Group.method.has_child_group
+  // splicer end class.Group.method.hasChildGroup
 }
 
 bool SIDRE_Group_has_child_group_bufferify(SIDRE_Group *self,
-                                           const char *name,
-                                           int Lname)
+                                           char *name,
+                                           int SHT_name_len)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.has_child_group_bufferify
-  const std::string SHCXX_name(name, Lname);
+  // splicer begin class.Group.method.hasChildGroup_bufferify
+  const std::string SHCXX_name(name, ShroudLenTrim(name, SHT_name_len));
   bool SHC_rv = SH_this->hasChildGroup(SHCXX_name);
   return SHC_rv;
-  // splicer end class.Group.method.has_child_group_bufferify
+  // splicer end class.Group.method.hasChildGroup_bufferify
 }
 
 SIDRE_IndexType SIDRE_Group_get_group_index(const SIDRE_Group *self,
@@ -1204,24 +1369,24 @@ SIDRE_IndexType SIDRE_Group_get_group_index(const SIDRE_Group *self,
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_group_index
+  // splicer begin class.Group.method.getGroupIndex
   const std::string SHCXX_name(name);
   axom::sidre::IndexType SHC_rv = SH_this->getGroupIndex(SHCXX_name);
   return SHC_rv;
-  // splicer end class.Group.method.get_group_index
+  // splicer end class.Group.method.getGroupIndex
 }
 
 SIDRE_IndexType SIDRE_Group_get_group_index_bufferify(const SIDRE_Group *self,
-                                                      const char *name,
-                                                      int Lname)
+                                                      char *name,
+                                                      int SHT_name_len)
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_group_index_bufferify
-  const std::string SHCXX_name(name, Lname);
+  // splicer begin class.Group.method.getGroupIndex_bufferify
+  const std::string SHCXX_name(name, ShroudLenTrim(name, SHT_name_len));
   axom::sidre::IndexType SHC_rv = SH_this->getGroupIndex(SHCXX_name);
   return SHC_rv;
-  // splicer end class.Group.method.get_group_index_bufferify
+  // splicer end class.Group.method.getGroupIndex_bufferify
 }
 
 const char *SIDRE_Group_get_group_name(const SIDRE_Group *self,
@@ -1229,7 +1394,7 @@ const char *SIDRE_Group_get_group_name(const SIDRE_Group *self,
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_group_name
+  // splicer begin class.Group.method.getGroupName
   const std::string &SHCXX_rv = SH_this->getGroupName(idx);
   // C_error_pattern
   if(!axom::sidre::nameIsValid(SHCXX_rv))
@@ -1239,34 +1404,61 @@ const char *SIDRE_Group_get_group_name(const SIDRE_Group *self,
 
   const char *SHC_rv = SHCXX_rv.c_str();
   return SHC_rv;
-  // splicer end class.Group.method.get_group_name
+  // splicer end class.Group.method.getGroupName
+}
+
+void SIDRE_Group_get_group_name_int32_t_bufferify(const SIDRE_Group *self,
+                                                  int32_t idx,
+                                                  char *SHC_rv,
+                                                  int SHT_rv_len)
+{
+  const axom::sidre::Group *SH_this =
+    static_cast<const axom::sidre::Group *>(self->addr);
+  // splicer begin class.Group.method.getGroupName_int32_t_bufferify
+  const std::string &SHCXX_rv = SH_this->getGroupName(idx);
+  // C_error_pattern
+  if(!axom::sidre::nameIsValid(SHCXX_rv))
+  {
+    std::memset(SHC_rv, ' ', SHT_rv_len);
+    return;
+  }
+
+  if(SHCXX_rv.empty())
+  {
+    ShroudStrCopy(SHC_rv, SHT_rv_len, nullptr, 0);
+  }
+  else
+  {
+    ShroudStrCopy(SHC_rv, SHT_rv_len, SHCXX_rv.data(), SHCXX_rv.size());
+  }
+  // splicer end class.Group.method.getGroupName_int32_t_bufferify
 }
 
-void SIDRE_Group_get_group_name_bufferify(const SIDRE_Group *self,
-                                          SIDRE_IndexType idx,
-                                          char *SHF_rv,
-                                          int NSHF_rv)
+void SIDRE_Group_get_group_name_int64_t_bufferify(const SIDRE_Group *self,
+                                                  int64_t idx,
+                                                  char *SHC_rv,
+                                                  int SHT_rv_len)
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_group_name_bufferify
+  // splicer begin class.Group.method.getGroupName_int64_t_bufferify
   const std::string &SHCXX_rv = SH_this->getGroupName(idx);
   // C_error_pattern
   if(!axom::sidre::nameIsValid(SHCXX_rv))
   {
-    std::memset(SHF_rv, ' ', NSHF_rv);
+    std::memset(SHC_rv, ' ', SHT_rv_len);
     return;
   }
 
   if(SHCXX_rv.empty())
   {
-    ShroudStrCopy(SHF_rv, NSHF_rv, nullptr, 0);
+    ShroudStrCopy(SHC_rv, SHT_rv_len, nullptr, 0);
   }
   else
   {
-    ShroudStrCopy(SHF_rv, NSHF_rv, SHCXX_rv.data(), SHCXX_rv.size());
+    ShroudStrCopy(SHC_rv, SHT_rv_len, SHCXX_rv.data(), SHCXX_rv.size());
   }
-  // splicer end class.Group.method.get_group_name_bufferify
+  // splicer end class.Group.method.getGroupName_int64_t_bufferify
 }
 
 SIDRE_Group *SIDRE_Group_get_group_from_name(SIDRE_Group *self,
@@ -1274,7 +1466,7 @@ SIDRE_Group *SIDRE_Group_get_group_from_name(SIDRE_Group *self,
                                              SIDRE_Group *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_group_from_name
+  // splicer begin class.Group.method.getGroup_from_name
   const std::string SHCXX_path(path);
   axom::sidre::Group *SHCXX_rv = SH_this->getGroup(SHCXX_path);
   // C_error_pattern
@@ -1288,22 +1480,22 @@ SIDRE_Group *SIDRE_Group_get_group_from_name(SIDRE_Group *self,
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.get_group_from_name
+  // splicer end class.Group.method.getGroup_from_name
 }
 
 SIDRE_Group *SIDRE_Group_get_group_from_name_bufferify(SIDRE_Group *self,
-                                                       const char *path,
-                                                       int Lpath,
+                                                       char *path,
+                                                       int SHT_path_len,
                                                        SIDRE_Group *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_group_from_name_bufferify
-  const std::string SHCXX_path(path, Lpath);
+  // splicer begin class.Group.method.getGroup_from_name_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
   axom::sidre::Group *SHCXX_rv = SH_this->getGroup(SHCXX_path);
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.get_group_from_name_bufferify
+  // splicer end class.Group.method.getGroup_from_name_bufferify
 }
 
 SIDRE_Group *SIDRE_Group_get_group_from_index(SIDRE_Group *self,
@@ -1311,7 +1503,7 @@ SIDRE_Group *SIDRE_Group_get_group_from_index(SIDRE_Group *self,
                                               SIDRE_Group *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_group_from_index
+  // splicer begin class.Group.method.getGroup_from_index
   axom::sidre::Group *SHCXX_rv = SH_this->getGroup(idx);
   // C_error_pattern
   if(SHCXX_rv == nullptr)
@@ -1324,17 +1516,59 @@ SIDRE_Group *SIDRE_Group_get_group_from_index(SIDRE_Group *self,
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.get_group_from_index
+  // splicer end class.Group.method.getGroup_from_index
+}
+
+SIDRE_Group *SIDRE_Group_get_group_from_index_int32_t(SIDRE_Group *self,
+                                                      int32_t idx,
+                                                      SIDRE_Group *SHC_rv)
+{
+  axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
+  // splicer begin class.Group.method.getGroup_from_index_int32_t
+  axom::sidre::Group *SHCXX_rv = SH_this->getGroup(idx);
+  // C_error_pattern
+  if(SHCXX_rv == nullptr)
+  {
+    SHC_rv->addr = NULL;
+    SHC_rv->idtor = 0;
+    return NULL;
+  }
+
+  SHC_rv->addr = SHCXX_rv;
+  SHC_rv->idtor = 0;
+  return SHC_rv;
+  // splicer end class.Group.method.getGroup_from_index_int32_t
+}
+
+SIDRE_Group *SIDRE_Group_get_group_from_index_int64_t(SIDRE_Group *self,
+                                                      int64_t idx,
+                                                      SIDRE_Group *SHC_rv)
+{
+  axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
+  // splicer begin class.Group.method.getGroup_from_index_int64_t
+  axom::sidre::Group *SHCXX_rv = SH_this->getGroup(idx);
+  // C_error_pattern
+  if(SHCXX_rv == nullptr)
+  {
+    SHC_rv->addr = NULL;
+    SHC_rv->idtor = 0;
+    return NULL;
+  }
+
+  SHC_rv->addr = SHCXX_rv;
+  SHC_rv->idtor = 0;
+  return SHC_rv;
+  // splicer end class.Group.method.getGroup_from_index_int64_t
 }
 
 SIDRE_IndexType SIDRE_Group_get_first_valid_group_index(const SIDRE_Group *self)
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_first_valid_group_index
+  // splicer begin class.Group.method.getFirstValidGroupIndex
   axom::sidre::IndexType SHC_rv = SH_this->getFirstValidGroupIndex();
   return SHC_rv;
-  // splicer end class.Group.method.get_first_valid_group_index
+  // splicer end class.Group.method.getFirstValidGroupIndex
 }
 
 SIDRE_IndexType SIDRE_Group_get_next_valid_group_index(const SIDRE_Group *self,
@@ -1342,10 +1576,10 @@ SIDRE_IndexType SIDRE_Group_get_next_valid_group_index(const SIDRE_Group *self,
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.get_next_valid_group_index
+  // splicer begin class.Group.method.getNextValidGroupIndex
   axom::sidre::IndexType SHC_rv = SH_this->getNextValidGroupIndex(idx);
   return SHC_rv;
-  // splicer end class.Group.method.get_next_valid_group_index
+  // splicer end class.Group.method.getNextValidGroupIndex
 }
 
 SIDRE_Group *SIDRE_Group_create_group(SIDRE_Group *self,
@@ -1353,7 +1587,7 @@ SIDRE_Group *SIDRE_Group_create_group(SIDRE_Group *self,
                                       SIDRE_Group *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_group
+  // splicer begin class.Group.method.createGroup
   const std::string SHCXX_path(path);
   axom::sidre::Group *SHCXX_rv = SH_this->createGroup(SHCXX_path);
   // C_error_pattern
@@ -1367,50 +1601,50 @@ SIDRE_Group *SIDRE_Group_create_group(SIDRE_Group *self,
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_group
+  // splicer end class.Group.method.createGroup
 }
 
 SIDRE_Group *SIDRE_Group_create_group_bufferify(SIDRE_Group *self,
-                                                const char *path,
-                                                int Lpath,
+                                                char *path,
+                                                int SHT_path_len,
                                                 SIDRE_Group *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.create_group_bufferify
-  const std::string SHCXX_path(path, Lpath);
+  // splicer begin class.Group.method.createGroup_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
   axom::sidre::Group *SHCXX_rv = SH_this->createGroup(SHCXX_path);
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.create_group_bufferify
+  // splicer end class.Group.method.createGroup_bufferify
 }
 
 void SIDRE_Group_destroy_group_name(SIDRE_Group *self, const char *path)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.destroy_group_name
+  // splicer begin class.Group.method.destroyGroup_name
   const std::string SHCXX_path(path);
   SH_this->destroyGroup(SHCXX_path);
-  // splicer end class.Group.method.destroy_group_name
+  // splicer end class.Group.method.destroyGroup_name
 }
 
 void SIDRE_Group_destroy_group_name_bufferify(SIDRE_Group *self,
-                                              const char *path,
-                                              int Lpath)
+                                              char *path,
+                                              int SHT_path_len)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.destroy_group_name_bufferify
-  const std::string SHCXX_path(path, Lpath);
+  // splicer begin class.Group.method.destroyGroup_name_bufferify
+  const std::string SHCXX_path(path, ShroudLenTrim(path, SHT_path_len));
   SH_this->destroyGroup(SHCXX_path);
-  // splicer end class.Group.method.destroy_group_name_bufferify
+  // splicer end class.Group.method.destroyGroup_name_bufferify
 }
 
 void SIDRE_Group_destroy_group_index(SIDRE_Group *self, SIDRE_IndexType idx)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.destroy_group_index
+  // splicer begin class.Group.method.destroyGroup_index
   SH_this->destroyGroup(idx);
-  // splicer end class.Group.method.destroy_group_index
+  // splicer end class.Group.method.destroyGroup_index
 }
 
 SIDRE_Group *SIDRE_Group_move_group(SIDRE_Group *self,
@@ -1418,13 +1652,13 @@ SIDRE_Group *SIDRE_Group_move_group(SIDRE_Group *self,
                                     SIDRE_Group *SHC_rv)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.move_group
+  // splicer begin class.Group.method.moveGroup
   axom::sidre::Group *SHCXX_grp = static_cast<axom::sidre::Group *>(grp->addr);
   axom::sidre::Group *SHCXX_rv = SH_this->moveGroup(SHCXX_grp);
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.Group.method.move_group
+  // splicer end class.Group.method.moveGroup
 }
 
 void SIDRE_Group_print(const SIDRE_Group *self)
@@ -1440,12 +1674,12 @@ bool SIDRE_Group_is_equivalent_to(const SIDRE_Group *self, SIDRE_Group *other)
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.is_equivalent_to
+  // splicer begin class.Group.method.isEquivalentTo
   const axom::sidre::Group *SHCXX_other =
     static_cast<const axom::sidre::Group *>(other->addr);
   bool SHC_rv = SH_this->isEquivalentTo(SHCXX_other);
   return SHC_rv;
-  // splicer end class.Group.method.is_equivalent_to
+  // splicer end class.Group.method.isEquivalentTo
 }
 
 void SIDRE_Group_save(const SIDRE_Group *self,
@@ -1462,16 +1696,18 @@ void SIDRE_Group_save(const SIDRE_Group *self,
 }
 
 void SIDRE_Group_save_bufferify(const SIDRE_Group *self,
-                                const char *file_path,
-                                int Lfile_path,
-                                const char *protocol,
-                                int Lprotocol)
+                                char *file_path,
+                                int SHT_file_path_len,
+                                char *protocol,
+                                int SHT_protocol_len)
 {
   const axom::sidre::Group *SH_this =
     static_cast<const axom::sidre::Group *>(self->addr);
   // splicer begin class.Group.method.save_bufferify
-  const std::string SHCXX_file_path(file_path, Lfile_path);
-  const std::string SHCXX_protocol(protocol, Lprotocol);
+  const std::string SHCXX_file_path(file_path,
+                                    ShroudLenTrim(file_path, SHT_file_path_len));
+  const std::string SHCXX_protocol(protocol,
+                                   ShroudLenTrim(protocol, SHT_protocol_len));
   SH_this->save(SHCXX_file_path, SHCXX_protocol);
   // splicer end class.Group.method.save_bufferify
 }
@@ -1489,15 +1725,17 @@ void SIDRE_Group_load_0(SIDRE_Group *self,
 }
 
 void SIDRE_Group_load_0_bufferify(SIDRE_Group *self,
-                                  const char *file_path,
-                                  int Lfile_path,
-                                  const char *protocol,
-                                  int Lprotocol)
+                                  char *file_path,
+                                  int SHT_file_path_len,
+                                  char *protocol,
+                                  int SHT_protocol_len)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
   // splicer begin class.Group.method.load_0_bufferify
-  const std::string SHCXX_file_path(file_path, Lfile_path);
-  const std::string SHCXX_protocol(protocol, Lprotocol);
+  const std::string SHCXX_file_path(file_path,
+                                    ShroudLenTrim(file_path, SHT_file_path_len));
+  const std::string SHCXX_protocol(protocol,
+                                   ShroudLenTrim(protocol, SHT_protocol_len));
   SH_this->load(SHCXX_file_path, SHCXX_protocol);
   // splicer end class.Group.method.load_0_bufferify
 }
@@ -1516,16 +1754,18 @@ void SIDRE_Group_load_1(SIDRE_Group *self,
 }
 
 void SIDRE_Group_load_1_bufferify(SIDRE_Group *self,
-                                  const char *file_path,
-                                  int Lfile_path,
-                                  const char *protocol,
-                                  int Lprotocol,
+                                  char *file_path,
+                                  int SHT_file_path_len,
+                                  char *protocol,
+                                  int SHT_protocol_len,
                                   bool preserve_contents)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
   // splicer begin class.Group.method.load_1_bufferify
-  const std::string SHCXX_file_path(file_path, Lfile_path);
-  const std::string SHCXX_protocol(protocol, Lprotocol);
+  const std::string SHCXX_file_path(file_path,
+                                    ShroudLenTrim(file_path, SHT_file_path_len));
+  const std::string SHCXX_protocol(protocol,
+                                   ShroudLenTrim(protocol, SHT_protocol_len));
   SH_this->load(SHCXX_file_path, SHCXX_protocol, preserve_contents);
   // splicer end class.Group.method.load_1_bufferify
 }
@@ -1533,21 +1773,22 @@ void SIDRE_Group_load_1_bufferify(SIDRE_Group *self,
 void SIDRE_Group_load_external_data(SIDRE_Group *self, const char *file_path)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.load_external_data
+  // splicer begin class.Group.method.loadExternalData
   const std::string SHCXX_file_path(file_path);
   SH_this->loadExternalData(SHCXX_file_path);
-  // splicer end class.Group.method.load_external_data
+  // splicer end class.Group.method.loadExternalData
 }
 
 void SIDRE_Group_load_external_data_bufferify(SIDRE_Group *self,
-                                              const char *file_path,
-                                              int Lfile_path)
+                                              char *file_path,
+                                              int SHT_file_path_len)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
-  // splicer begin class.Group.method.load_external_data_bufferify
-  const std::string SHCXX_file_path(file_path, Lfile_path);
+  // splicer begin class.Group.method.loadExternalData_bufferify
+  const std::string SHCXX_file_path(file_path,
+                                    ShroudLenTrim(file_path, SHT_file_path_len));
   SH_this->loadExternalData(SHCXX_file_path);
-  // splicer end class.Group.method.load_external_data_bufferify
+  // splicer end class.Group.method.loadExternalData_bufferify
 }
 
 bool SIDRE_Group_rename(SIDRE_Group *self, const char *new_name)
@@ -1561,12 +1802,13 @@ bool SIDRE_Group_rename(SIDRE_Group *self, const char *new_name)
 }
 
 bool SIDRE_Group_rename_bufferify(SIDRE_Group *self,
-                                  const char *new_name,
-                                  int Lnew_name)
+                                  char *new_name,
+                                  int SHT_new_name_len)
 {
   axom::sidre::Group *SH_this = static_cast<axom::sidre::Group *>(self->addr);
   // splicer begin class.Group.method.rename_bufferify
-  const std::string SHCXX_new_name(new_name, Lnew_name);
+  const std::string SHCXX_new_name(new_name,
+                                   ShroudLenTrim(new_name, SHT_new_name_len));
   bool SHC_rv = SH_this->rename(SHCXX_new_name);
   return SHC_rv;
   // splicer end class.Group.method.rename_bufferify
diff --git a/src/axom/sidre/interface/c_fortran/wrapGroup.h b/src/axom/sidre/interface/c_fortran/wrapGroup.h
index f246e1a132..63e5024e2c 100644
--- a/src/axom/sidre/interface/c_fortran/wrapGroup.h
+++ b/src/axom/sidre/interface/c_fortran/wrapGroup.h
@@ -1,5 +1,5 @@
 // wrapGroup.h
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
@@ -14,15 +14,18 @@
 #ifndef WRAPGROUP_H
 #define WRAPGROUP_H
 
+#include "wrapSidre.h"
 #include "axom/sidre/interface/SidreTypes.h"
-#include "typesSidre.h"
 #ifdef __cplusplus
   #include <cstddef>
+  #include <cstdint>
   #include "axom/sidre/core/SidreTypes.hpp"
 #else
-  #include <stdbool.h>
   #include <stddef.h>
+  #include <stdbool.h>
+  #include <stdint.h>
 #endif
+#include "typesSidre.h"
 
 // splicer begin class.Group.CXX_declarations
 // splicer end class.Group.CXX_declarations
@@ -34,427 +37,488 @@ extern "C" {
 // splicer begin class.Group.C_declarations
 // splicer end class.Group.C_declarations
 
-SIDRE_IndexType SIDRE_Group_get_index(SIDRE_Group* self);
+SIDRE_IndexType SIDRE_Group_get_index(SIDRE_Group *self);
 
-const char* SIDRE_Group_get_name(const SIDRE_Group* self);
+const char *SIDRE_Group_get_name(const SIDRE_Group *self);
 
-void SIDRE_Group_get_name_bufferify(const SIDRE_Group* self,
-                                    char* SHF_rv,
-                                    int NSHF_rv);
+void SIDRE_Group_get_name_bufferify(const SIDRE_Group *self,
+                                    char *SHC_rv,
+                                    int SHT_rv_len);
 
-void SIDRE_Group_get_path_bufferify(const SIDRE_Group* self,
-                                    char* SHF_rv,
-                                    int NSHF_rv);
+void SIDRE_Group_get_path_bufferify(const SIDRE_Group *self,
+                                    char *SHC_rv,
+                                    int SHT_rv_len);
 
-void SIDRE_Group_get_path_name_bufferify(const SIDRE_Group* self,
-                                         char* SHF_rv,
-                                         int NSHF_rv);
+void SIDRE_Group_get_path_name_bufferify(const SIDRE_Group *self,
+                                         char *SHC_rv,
+                                         int SHT_rv_len);
 
-SIDRE_Group* SIDRE_Group_get_parent(const SIDRE_Group* self, SIDRE_Group* SHC_rv);
+SIDRE_Group *SIDRE_Group_get_parent(const SIDRE_Group *self, SIDRE_Group *SHC_rv);
 
-size_t SIDRE_Group_get_num_groups(const SIDRE_Group* self);
+size_t SIDRE_Group_get_num_groups(const SIDRE_Group *self);
 
-size_t SIDRE_Group_get_num_views(const SIDRE_Group* self);
+size_t SIDRE_Group_get_num_views(const SIDRE_Group *self);
 
-SIDRE_DataStore* SIDRE_Group_get_data_store(const SIDRE_Group* self,
-                                            SIDRE_DataStore* SHC_rv);
+SIDRE_DataStore *SIDRE_Group_get_data_store(const SIDRE_Group *self,
+                                            SIDRE_DataStore *SHC_rv);
 
-bool SIDRE_Group_has_view(const SIDRE_Group* self, const char* path);
+bool SIDRE_Group_has_view(const SIDRE_Group *self, const char *path);
 
-bool SIDRE_Group_has_view_bufferify(const SIDRE_Group* self,
-                                    const char* path,
-                                    int Lpath);
+bool SIDRE_Group_has_view_bufferify(const SIDRE_Group *self,
+                                    char *path,
+                                    int SHT_path_len);
 
-bool SIDRE_Group_has_child_view(const SIDRE_Group* self, const char* name);
+bool SIDRE_Group_has_child_view(const SIDRE_Group *self, const char *name);
 
-bool SIDRE_Group_has_child_view_bufferify(const SIDRE_Group* self,
-                                          const char* name,
-                                          int Lname);
+bool SIDRE_Group_has_child_view_bufferify(const SIDRE_Group *self,
+                                          char *name,
+                                          int SHT_name_len);
 
-SIDRE_IndexType SIDRE_Group_get_view_index(const SIDRE_Group* self,
-                                           const char* name);
+SIDRE_IndexType SIDRE_Group_get_view_index(const SIDRE_Group *self,
+                                           const char *name);
 
-SIDRE_IndexType SIDRE_Group_get_view_index_bufferify(const SIDRE_Group* self,
-                                                     const char* name,
-                                                     int Lname);
+SIDRE_IndexType SIDRE_Group_get_view_index_bufferify(const SIDRE_Group *self,
+                                                     char *name,
+                                                     int SHT_name_len);
 
-const char* SIDRE_Group_get_view_name(const SIDRE_Group* self,
+const char *SIDRE_Group_get_view_name(const SIDRE_Group *self,
                                       SIDRE_IndexType idx);
 
-void SIDRE_Group_get_view_name_bufferify(const SIDRE_Group* self,
-                                         SIDRE_IndexType idx,
-                                         char* SHF_rv,
-                                         int NSHF_rv);
+void SIDRE_Group_get_view_name_int32_t_bufferify(const SIDRE_Group *self,
+                                                 int32_t idx,
+                                                 char *SHC_rv,
+                                                 int SHT_rv_len);
+
+void SIDRE_Group_get_view_name_int64_t_bufferify(const SIDRE_Group *self,
+                                                 int64_t idx,
+                                                 char *SHC_rv,
+                                                 int SHT_rv_len);
 
-SIDRE_View* SIDRE_Group_get_view_from_name(SIDRE_Group* self,
-                                           const char* path,
-                                           SIDRE_View* SHC_rv);
+SIDRE_View *SIDRE_Group_get_view_from_name(SIDRE_Group *self,
+                                           const char *path,
+                                           SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_get_view_from_name_bufferify(SIDRE_Group* self,
-                                                     const char* path,
-                                                     int Lpath,
-                                                     SIDRE_View* SHC_rv);
+SIDRE_View *SIDRE_Group_get_view_from_name_bufferify(SIDRE_Group *self,
+                                                     char *path,
+                                                     int SHT_path_len,
+                                                     SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_get_view_from_index(SIDRE_Group* self,
+SIDRE_View *SIDRE_Group_get_view_from_index(SIDRE_Group *self,
                                             const SIDRE_IndexType idx,
-                                            SIDRE_View* SHC_rv);
+                                            SIDRE_View *SHC_rv);
 
-SIDRE_IndexType SIDRE_Group_get_first_valid_view_index(const SIDRE_Group* self);
+SIDRE_View *SIDRE_Group_get_view_from_index_int32_t(SIDRE_Group *self,
+                                                    int32_t idx,
+                                                    SIDRE_View *SHC_rv);
 
-SIDRE_IndexType SIDRE_Group_get_next_valid_view_index(const SIDRE_Group* self,
+SIDRE_View *SIDRE_Group_get_view_from_index_int64_t(SIDRE_Group *self,
+                                                    int64_t idx,
+                                                    SIDRE_View *SHC_rv);
+
+SIDRE_IndexType SIDRE_Group_get_first_valid_view_index(const SIDRE_Group *self);
+
+SIDRE_IndexType SIDRE_Group_get_next_valid_view_index(const SIDRE_Group *self,
                                                       SIDRE_IndexType idx);
 
-SIDRE_View* SIDRE_Group_create_view_empty(SIDRE_Group* self,
-                                          const char* path,
-                                          SIDRE_View* SHC_rv);
+SIDRE_View *SIDRE_Group_create_view_empty(SIDRE_Group *self,
+                                          const char *path,
+                                          SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_create_view_empty_bufferify(SIDRE_Group* self,
-                                                    const char* path,
-                                                    int Lpath,
-                                                    SIDRE_View* SHC_rv);
+SIDRE_View *SIDRE_Group_create_view_empty_bufferify(SIDRE_Group *self,
+                                                    char *path,
+                                                    int SHT_path_len,
+                                                    SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_create_view_from_type(SIDRE_Group* self,
-                                              const char* path,
+SIDRE_View *SIDRE_Group_create_view_from_type(SIDRE_Group *self,
+                                              const char *path,
                                               SIDRE_TypeID type,
                                               SIDRE_IndexType num_elems,
-                                              SIDRE_View* SHC_rv);
+                                              SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_create_view_from_type_bufferify(SIDRE_Group* self,
-                                                        const char* path,
-                                                        int Lpath,
-                                                        SIDRE_TypeID type,
-                                                        SIDRE_IndexType num_elems,
-                                                        SIDRE_View* SHC_rv);
+SIDRE_View *SIDRE_Group_create_view_from_type_int32_t_bufferify(
+  SIDRE_Group *self,
+  char *path,
+  int SHT_path_len,
+  SIDRE_TypeID type,
+  int32_t num_elems,
+  SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_create_view_with_shape_base(SIDRE_Group* self,
-                                                    const char* path,
+SIDRE_View *SIDRE_Group_create_view_from_type_int64_t_bufferify(
+  SIDRE_Group *self,
+  char *path,
+  int SHT_path_len,
+  SIDRE_TypeID type,
+  int64_t num_elems,
+  SIDRE_View *SHC_rv);
+
+SIDRE_View *SIDRE_Group_create_view_with_shape_base(SIDRE_Group *self,
+                                                    const char *path,
                                                     SIDRE_TypeID type,
                                                     int ndims,
-                                                    const SIDRE_IndexType* shape,
-                                                    SIDRE_View* SHC_rv);
+                                                    const SIDRE_IndexType *shape,
+                                                    SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_create_view_with_shape_base_bufferify(
-  SIDRE_Group* self,
-  const char* path,
-  int Lpath,
+SIDRE_View *SIDRE_Group_create_view_with_shape_base_bufferify(
+  SIDRE_Group *self,
+  char *path,
+  int SHT_path_len,
   SIDRE_TypeID type,
   int ndims,
-  const SIDRE_IndexType* shape,
-  SIDRE_View* SHC_rv);
-
-SIDRE_View* SIDRE_Group_create_view_into_buffer(SIDRE_Group* self,
-                                                const char* path,
-                                                SIDRE_Buffer* buff,
-                                                SIDRE_View* SHC_rv);
-
-SIDRE_View* SIDRE_Group_create_view_into_buffer_bufferify(SIDRE_Group* self,
-                                                          const char* path,
-                                                          int Lpath,
-                                                          SIDRE_Buffer* buff,
-                                                          SIDRE_View* SHC_rv);
-
-SIDRE_View* SIDRE_Group_create_view_from_type_and_buffer(SIDRE_Group* self,
-                                                         const char* path,
+  const SIDRE_IndexType *shape,
+  SIDRE_View *SHC_rv);
+
+SIDRE_View *SIDRE_Group_create_view_into_buffer(SIDRE_Group *self,
+                                                const char *path,
+                                                SIDRE_Buffer *buff,
+                                                SIDRE_View *SHC_rv);
+
+SIDRE_View *SIDRE_Group_create_view_into_buffer_bufferify(SIDRE_Group *self,
+                                                          char *path,
+                                                          int SHT_path_len,
+                                                          SIDRE_Buffer *buff,
+                                                          SIDRE_View *SHC_rv);
+
+SIDRE_View *SIDRE_Group_create_view_from_type_and_buffer(SIDRE_Group *self,
+                                                         const char *path,
                                                          SIDRE_TypeID type,
                                                          SIDRE_IndexType num_elems,
-                                                         SIDRE_Buffer* buff,
-                                                         SIDRE_View* SHC_rv);
+                                                         SIDRE_Buffer *buff,
+                                                         SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_create_view_from_type_and_buffer_bufferify(
-  SIDRE_Group* self,
-  const char* path,
-  int Lpath,
+SIDRE_View *SIDRE_Group_create_view_from_type_and_buffer_int32_t_bufferify(
+  SIDRE_Group *self,
+  char *path,
+  int SHT_path_len,
+  SIDRE_TypeID type,
+  int32_t num_elems,
+  SIDRE_Buffer *buff,
+  SIDRE_View *SHC_rv);
+
+SIDRE_View *SIDRE_Group_create_view_from_type_and_buffer_int64_t_bufferify(
+  SIDRE_Group *self,
+  char *path,
+  int SHT_path_len,
   SIDRE_TypeID type,
-  SIDRE_IndexType num_elems,
-  SIDRE_Buffer* buff,
-  SIDRE_View* SHC_rv);
+  int64_t num_elems,
+  SIDRE_Buffer *buff,
+  SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_create_view_with_shape_and_buffer(SIDRE_Group* self,
-                                                          const char* path,
+SIDRE_View *SIDRE_Group_create_view_with_shape_and_buffer(SIDRE_Group *self,
+                                                          const char *path,
                                                           SIDRE_TypeID type,
                                                           int ndims,
-                                                          const SIDRE_IndexType* shape,
-                                                          SIDRE_Buffer* buff,
-                                                          SIDRE_View* SHC_rv);
-
-SIDRE_View* SIDRE_Group_create_view_with_shape_and_buffer_bufferify(
-  SIDRE_Group* self,
-  const char* path,
-  int Lpath,
+                                                          const SIDRE_IndexType *shape,
+                                                          SIDRE_Buffer *buff,
+                                                          SIDRE_View *SHC_rv);
+
+SIDRE_View *SIDRE_Group_create_view_with_shape_and_buffer_bufferify(
+  SIDRE_Group *self,
+  char *path,
+  int SHT_path_len,
   SIDRE_TypeID type,
   int ndims,
-  const SIDRE_IndexType* shape,
-  SIDRE_Buffer* buff,
-  SIDRE_View* SHC_rv);
-
-SIDRE_View* SIDRE_Group_create_view_external(SIDRE_Group* self,
-                                             const char* path,
-                                             void* external_ptr,
-                                             SIDRE_View* SHC_rv);
-
-SIDRE_View* SIDRE_Group_create_view_external_bufferify(SIDRE_Group* self,
-                                                       const char* path,
-                                                       int Lpath,
-                                                       void* external_ptr,
-                                                       SIDRE_View* SHC_rv);
-
-SIDRE_View* SIDRE_Group_create_view_from_type_external(SIDRE_Group* self,
-                                                       const char* path,
+  const SIDRE_IndexType *shape,
+  SIDRE_Buffer *buff,
+  SIDRE_View *SHC_rv);
+
+SIDRE_View *SIDRE_Group_create_view_external(SIDRE_Group *self,
+                                             const char *path,
+                                             void *external_ptr,
+                                             SIDRE_View *SHC_rv);
+
+SIDRE_View *SIDRE_Group_create_view_external_bufferify(SIDRE_Group *self,
+                                                       char *path,
+                                                       int SHT_path_len,
+                                                       void *external_ptr,
+                                                       SIDRE_View *SHC_rv);
+
+SIDRE_View *SIDRE_Group_create_view_from_type_external(SIDRE_Group *self,
+                                                       const char *path,
                                                        SIDRE_TypeID type,
                                                        SIDRE_IndexType num_elems,
-                                                       void* external_ptr,
-                                                       SIDRE_View* SHC_rv);
+                                                       void *external_ptr,
+                                                       SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_create_view_from_type_external_bufferify(
-  SIDRE_Group* self,
-  const char* path,
-  int Lpath,
+SIDRE_View *SIDRE_Group_create_view_from_type_external_int32_t_bufferify(
+  SIDRE_Group *self,
+  char *path,
+  int SHT_path_len,
   SIDRE_TypeID type,
-  SIDRE_IndexType num_elems,
-  void* external_ptr,
-  SIDRE_View* SHC_rv);
+  int32_t num_elems,
+  void *external_ptr,
+  SIDRE_View *SHC_rv);
+
+SIDRE_View *SIDRE_Group_create_view_from_type_external_int64_t_bufferify(
+  SIDRE_Group *self,
+  char *path,
+  int SHT_path_len,
+  SIDRE_TypeID type,
+  int64_t num_elems,
+  void *external_ptr,
+  SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_create_view_with_shape_external(SIDRE_Group* self,
-                                                        const char* path,
+SIDRE_View *SIDRE_Group_create_view_with_shape_external(SIDRE_Group *self,
+                                                        const char *path,
                                                         SIDRE_TypeID type,
                                                         int ndims,
-                                                        const SIDRE_IndexType* shape,
-                                                        void* external_ptr,
-                                                        SIDRE_View* SHC_rv);
-
-SIDRE_View* SIDRE_Group_create_view_with_shape_external_bufferify(
-  SIDRE_Group* self,
-  const char* path,
-  int Lpath,
+                                                        const SIDRE_IndexType *shape,
+                                                        void *external_ptr,
+                                                        SIDRE_View *SHC_rv);
+
+SIDRE_View *SIDRE_Group_create_view_with_shape_external_bufferify(
+  SIDRE_Group *self,
+  char *path,
+  int SHT_path_len,
   SIDRE_TypeID type,
   int ndims,
-  const SIDRE_IndexType* shape,
-  void* external_ptr,
-  SIDRE_View* SHC_rv);
+  const SIDRE_IndexType *shape,
+  void *external_ptr,
+  SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_create_view_and_allocate_nelems(SIDRE_Group* self,
-                                                        const char* path,
+SIDRE_View *SIDRE_Group_create_view_and_allocate_nelems(SIDRE_Group *self,
+                                                        const char *path,
                                                         SIDRE_TypeID type,
                                                         SIDRE_IndexType num_elems,
-                                                        SIDRE_View* SHC_rv);
+                                                        SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_create_view_and_allocate_nelems_bufferify(
-  SIDRE_Group* self,
-  const char* path,
-  int Lpath,
+SIDRE_View *SIDRE_Group_create_view_and_allocate_nelems_int32_t_bufferify(
+  SIDRE_Group *self,
+  char *path,
+  int SHT_path_len,
   SIDRE_TypeID type,
-  SIDRE_IndexType num_elems,
-  SIDRE_View* SHC_rv);
+  int32_t num_elems,
+  SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_create_view_with_shape_and_allocate(
-  SIDRE_Group* self,
-  const char* path,
+SIDRE_View *SIDRE_Group_create_view_and_allocate_nelems_int64_t_bufferify(
+  SIDRE_Group *self,
+  char *path,
+  int SHT_path_len,
+  SIDRE_TypeID type,
+  int64_t num_elems,
+  SIDRE_View *SHC_rv);
+
+SIDRE_View *SIDRE_Group_create_view_with_shape_and_allocate(
+  SIDRE_Group *self,
+  const char *path,
   SIDRE_TypeID type,
   int ndims,
-  const SIDRE_IndexType* shape,
-  SIDRE_View* SHC_rv);
+  const SIDRE_IndexType *shape,
+  SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_create_view_with_shape_and_allocate_bufferify(
-  SIDRE_Group* self,
-  const char* path,
-  int Lpath,
+SIDRE_View *SIDRE_Group_create_view_with_shape_and_allocate_bufferify(
+  SIDRE_Group *self,
+  char *path,
+  int SHT_path_len,
   SIDRE_TypeID type,
   int ndims,
-  const SIDRE_IndexType* shape,
-  SIDRE_View* SHC_rv);
+  const SIDRE_IndexType *shape,
+  SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_create_view_scalar_int(SIDRE_Group* self,
-                                               const char* path,
+SIDRE_View *SIDRE_Group_create_view_scalar_int(SIDRE_Group *self,
+                                               const char *path,
                                                int value,
-                                               SIDRE_View* SHC_rv);
+                                               SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_create_view_scalar_bufferify_int(SIDRE_Group* self,
-                                                         const char* path,
-                                                         int Lpath,
+SIDRE_View *SIDRE_Group_create_view_scalar_bufferify_int(SIDRE_Group *self,
+                                                         char *path,
+                                                         int SHT_path_len,
                                                          int value,
-                                                         SIDRE_View* SHC_rv);
+                                                         SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_create_view_scalar_long(SIDRE_Group* self,
-                                                const char* path,
+SIDRE_View *SIDRE_Group_create_view_scalar_long(SIDRE_Group *self,
+                                                const char *path,
                                                 long value,
-                                                SIDRE_View* SHC_rv);
+                                                SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_create_view_scalar_bufferify_long(SIDRE_Group* self,
-                                                          const char* path,
-                                                          int Lpath,
+SIDRE_View *SIDRE_Group_create_view_scalar_bufferify_long(SIDRE_Group *self,
+                                                          char *path,
+                                                          int SHT_path_len,
                                                           long value,
-                                                          SIDRE_View* SHC_rv);
+                                                          SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_create_view_scalar_float(SIDRE_Group* self,
-                                                 const char* path,
+SIDRE_View *SIDRE_Group_create_view_scalar_float(SIDRE_Group *self,
+                                                 const char *path,
                                                  float value,
-                                                 SIDRE_View* SHC_rv);
+                                                 SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_create_view_scalar_bufferify_float(SIDRE_Group* self,
-                                                           const char* path,
-                                                           int Lpath,
+SIDRE_View *SIDRE_Group_create_view_scalar_bufferify_float(SIDRE_Group *self,
+                                                           char *path,
+                                                           int SHT_path_len,
                                                            float value,
-                                                           SIDRE_View* SHC_rv);
+                                                           SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_create_view_scalar_double(SIDRE_Group* self,
-                                                  const char* path,
+SIDRE_View *SIDRE_Group_create_view_scalar_double(SIDRE_Group *self,
+                                                  const char *path,
                                                   double value,
-                                                  SIDRE_View* SHC_rv);
+                                                  SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_create_view_scalar_bufferify_double(SIDRE_Group* self,
-                                                            const char* path,
-                                                            int Lpath,
+SIDRE_View *SIDRE_Group_create_view_scalar_bufferify_double(SIDRE_Group *self,
+                                                            char *path,
+                                                            int SHT_path_len,
                                                             double value,
-                                                            SIDRE_View* SHC_rv);
+                                                            SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_create_view_string(SIDRE_Group* self,
-                                           const char* path,
-                                           const char* value,
-                                           SIDRE_View* SHC_rv);
+SIDRE_View *SIDRE_Group_create_view_string(SIDRE_Group *self,
+                                           const char *path,
+                                           const char *value,
+                                           SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_create_view_string_bufferify(SIDRE_Group* self,
-                                                     const char* path,
-                                                     int Lpath,
-                                                     const char* value,
-                                                     int Lvalue,
-                                                     SIDRE_View* SHC_rv);
+SIDRE_View *SIDRE_Group_create_view_string_bufferify(SIDRE_Group *self,
+                                                     char *path,
+                                                     int SHT_path_len,
+                                                     char *value,
+                                                     int SHT_value_len,
+                                                     SIDRE_View *SHC_rv);
 
-void SIDRE_Group_destroy_view(SIDRE_Group* self, const char* path);
+void SIDRE_Group_destroy_view(SIDRE_Group *self, const char *path);
 
-void SIDRE_Group_destroy_view_bufferify(SIDRE_Group* self,
-                                        const char* path,
-                                        int Lpath);
+void SIDRE_Group_destroy_view_bufferify(SIDRE_Group *self,
+                                        char *path,
+                                        int SHT_path_len);
 
-void SIDRE_Group_destroy_view_and_data_name(SIDRE_Group* self, const char* path);
+void SIDRE_Group_destroy_view_and_data_name(SIDRE_Group *self, const char *path);
 
-void SIDRE_Group_destroy_view_and_data_name_bufferify(SIDRE_Group* self,
-                                                      const char* path,
-                                                      int Lpath);
+void SIDRE_Group_destroy_view_and_data_name_bufferify(SIDRE_Group *self,
+                                                      char *path,
+                                                      int SHT_path_len);
 
-void SIDRE_Group_destroy_view_and_data_index(SIDRE_Group* self,
+void SIDRE_Group_destroy_view_and_data_index(SIDRE_Group *self,
                                              SIDRE_IndexType idx);
 
-SIDRE_View* SIDRE_Group_move_view(SIDRE_Group* self,
-                                  SIDRE_View* view,
-                                  SIDRE_View* SHC_rv);
+SIDRE_View *SIDRE_Group_move_view(SIDRE_Group *self,
+                                  SIDRE_View *view,
+                                  SIDRE_View *SHC_rv);
 
-SIDRE_View* SIDRE_Group_copy_view(SIDRE_Group* self,
-                                  SIDRE_View* view,
-                                  SIDRE_View* SHC_rv);
+SIDRE_View *SIDRE_Group_copy_view(SIDRE_Group *self,
+                                  SIDRE_View *view,
+                                  SIDRE_View *SHC_rv);
 
-bool SIDRE_Group_has_group(SIDRE_Group* self, const char* path);
+bool SIDRE_Group_has_group(SIDRE_Group *self, const char *path);
 
-bool SIDRE_Group_has_group_bufferify(SIDRE_Group* self,
-                                     const char* path,
-                                     int Lpath);
+bool SIDRE_Group_has_group_bufferify(SIDRE_Group *self,
+                                     char *path,
+                                     int SHT_path_len);
 
-bool SIDRE_Group_has_child_group(SIDRE_Group* self, const char* name);
+bool SIDRE_Group_has_child_group(SIDRE_Group *self, const char *name);
 
-bool SIDRE_Group_has_child_group_bufferify(SIDRE_Group* self,
-                                           const char* name,
-                                           int Lname);
+bool SIDRE_Group_has_child_group_bufferify(SIDRE_Group *self,
+                                           char *name,
+                                           int SHT_name_len);
 
-SIDRE_IndexType SIDRE_Group_get_group_index(const SIDRE_Group* self,
-                                            const char* name);
+SIDRE_IndexType SIDRE_Group_get_group_index(const SIDRE_Group *self,
+                                            const char *name);
 
-SIDRE_IndexType SIDRE_Group_get_group_index_bufferify(const SIDRE_Group* self,
-                                                      const char* name,
-                                                      int Lname);
+SIDRE_IndexType SIDRE_Group_get_group_index_bufferify(const SIDRE_Group *self,
+                                                      char *name,
+                                                      int SHT_name_len);
 
-const char* SIDRE_Group_get_group_name(const SIDRE_Group* self,
+const char *SIDRE_Group_get_group_name(const SIDRE_Group *self,
                                        SIDRE_IndexType idx);
 
-void SIDRE_Group_get_group_name_bufferify(const SIDRE_Group* self,
-                                          SIDRE_IndexType idx,
-                                          char* SHF_rv,
-                                          int NSHF_rv);
+void SIDRE_Group_get_group_name_int32_t_bufferify(const SIDRE_Group *self,
+                                                  int32_t idx,
+                                                  char *SHC_rv,
+                                                  int SHT_rv_len);
+
+void SIDRE_Group_get_group_name_int64_t_bufferify(const SIDRE_Group *self,
+                                                  int64_t idx,
+                                                  char *SHC_rv,
+                                                  int SHT_rv_len);
 
-SIDRE_Group* SIDRE_Group_get_group_from_name(SIDRE_Group* self,
-                                             const char* path,
-                                             SIDRE_Group* SHC_rv);
+SIDRE_Group *SIDRE_Group_get_group_from_name(SIDRE_Group *self,
+                                             const char *path,
+                                             SIDRE_Group *SHC_rv);
 
-SIDRE_Group* SIDRE_Group_get_group_from_name_bufferify(SIDRE_Group* self,
-                                                       const char* path,
-                                                       int Lpath,
-                                                       SIDRE_Group* SHC_rv);
+SIDRE_Group *SIDRE_Group_get_group_from_name_bufferify(SIDRE_Group *self,
+                                                       char *path,
+                                                       int SHT_path_len,
+                                                       SIDRE_Group *SHC_rv);
 
-SIDRE_Group* SIDRE_Group_get_group_from_index(SIDRE_Group* self,
+SIDRE_Group *SIDRE_Group_get_group_from_index(SIDRE_Group *self,
                                               SIDRE_IndexType idx,
-                                              SIDRE_Group* SHC_rv);
+                                              SIDRE_Group *SHC_rv);
+
+SIDRE_Group *SIDRE_Group_get_group_from_index_int32_t(SIDRE_Group *self,
+                                                      int32_t idx,
+                                                      SIDRE_Group *SHC_rv);
+
+SIDRE_Group *SIDRE_Group_get_group_from_index_int64_t(SIDRE_Group *self,
+                                                      int64_t idx,
+                                                      SIDRE_Group *SHC_rv);
 
-SIDRE_IndexType SIDRE_Group_get_first_valid_group_index(const SIDRE_Group* self);
+SIDRE_IndexType SIDRE_Group_get_first_valid_group_index(const SIDRE_Group *self);
 
-SIDRE_IndexType SIDRE_Group_get_next_valid_group_index(const SIDRE_Group* self,
+SIDRE_IndexType SIDRE_Group_get_next_valid_group_index(const SIDRE_Group *self,
                                                        SIDRE_IndexType idx);
 
-SIDRE_Group* SIDRE_Group_create_group(SIDRE_Group* self,
-                                      const char* path,
-                                      SIDRE_Group* SHC_rv);
+SIDRE_Group *SIDRE_Group_create_group(SIDRE_Group *self,
+                                      const char *path,
+                                      SIDRE_Group *SHC_rv);
 
-SIDRE_Group* SIDRE_Group_create_group_bufferify(SIDRE_Group* self,
-                                                const char* path,
-                                                int Lpath,
-                                                SIDRE_Group* SHC_rv);
+SIDRE_Group *SIDRE_Group_create_group_bufferify(SIDRE_Group *self,
+                                                char *path,
+                                                int SHT_path_len,
+                                                SIDRE_Group *SHC_rv);
 
-void SIDRE_Group_destroy_group_name(SIDRE_Group* self, const char* path);
+void SIDRE_Group_destroy_group_name(SIDRE_Group *self, const char *path);
 
-void SIDRE_Group_destroy_group_name_bufferify(SIDRE_Group* self,
-                                              const char* path,
-                                              int Lpath);
+void SIDRE_Group_destroy_group_name_bufferify(SIDRE_Group *self,
+                                              char *path,
+                                              int SHT_path_len);
 
-void SIDRE_Group_destroy_group_index(SIDRE_Group* self, SIDRE_IndexType idx);
+void SIDRE_Group_destroy_group_index(SIDRE_Group *self, SIDRE_IndexType idx);
 
-SIDRE_Group* SIDRE_Group_move_group(SIDRE_Group* self,
-                                    SIDRE_Group* grp,
-                                    SIDRE_Group* SHC_rv);
+SIDRE_Group *SIDRE_Group_move_group(SIDRE_Group *self,
+                                    SIDRE_Group *grp,
+                                    SIDRE_Group *SHC_rv);
 
-void SIDRE_Group_print(const SIDRE_Group* self);
+void SIDRE_Group_print(const SIDRE_Group *self);
 
-bool SIDRE_Group_is_equivalent_to(const SIDRE_Group* self, SIDRE_Group* other);
+bool SIDRE_Group_is_equivalent_to(const SIDRE_Group *self, SIDRE_Group *other);
 
-void SIDRE_Group_save(const SIDRE_Group* self,
-                      const char* file_path,
-                      const char* protocol);
+void SIDRE_Group_save(const SIDRE_Group *self,
+                      const char *file_path,
+                      const char *protocol);
 
-void SIDRE_Group_save_bufferify(const SIDRE_Group* self,
-                                const char* file_path,
-                                int Lfile_path,
-                                const char* protocol,
-                                int Lprotocol);
+void SIDRE_Group_save_bufferify(const SIDRE_Group *self,
+                                char *file_path,
+                                int SHT_file_path_len,
+                                char *protocol,
+                                int SHT_protocol_len);
 
-void SIDRE_Group_load_0(SIDRE_Group* self,
-                        const char* file_path,
-                        const char* protocol);
+void SIDRE_Group_load_0(SIDRE_Group *self,
+                        const char *file_path,
+                        const char *protocol);
 
-void SIDRE_Group_load_0_bufferify(SIDRE_Group* self,
-                                  const char* file_path,
-                                  int Lfile_path,
-                                  const char* protocol,
-                                  int Lprotocol);
+void SIDRE_Group_load_0_bufferify(SIDRE_Group *self,
+                                  char *file_path,
+                                  int SHT_file_path_len,
+                                  char *protocol,
+                                  int SHT_protocol_len);
 
-void SIDRE_Group_load_1(SIDRE_Group* self,
-                        const char* file_path,
-                        const char* protocol,
+void SIDRE_Group_load_1(SIDRE_Group *self,
+                        const char *file_path,
+                        const char *protocol,
                         bool preserve_contents);
 
-void SIDRE_Group_load_1_bufferify(SIDRE_Group* self,
-                                  const char* file_path,
-                                  int Lfile_path,
-                                  const char* protocol,
-                                  int Lprotocol,
+void SIDRE_Group_load_1_bufferify(SIDRE_Group *self,
+                                  char *file_path,
+                                  int SHT_file_path_len,
+                                  char *protocol,
+                                  int SHT_protocol_len,
                                   bool preserve_contents);
 
-void SIDRE_Group_load_external_data(SIDRE_Group* self, const char* file_path);
+void SIDRE_Group_load_external_data(SIDRE_Group *self, const char *file_path);
 
-void SIDRE_Group_load_external_data_bufferify(SIDRE_Group* self,
-                                              const char* file_path,
-                                              int Lfile_path);
+void SIDRE_Group_load_external_data_bufferify(SIDRE_Group *self,
+                                              char *file_path,
+                                              int SHT_file_path_len);
 
-bool SIDRE_Group_rename(SIDRE_Group* self, const char* new_name);
+bool SIDRE_Group_rename(SIDRE_Group *self, const char *new_name);
 
-bool SIDRE_Group_rename_bufferify(SIDRE_Group* self,
-                                  const char* new_name,
-                                  int Lnew_name);
+bool SIDRE_Group_rename_bufferify(SIDRE_Group *self,
+                                  char *new_name,
+                                  int SHT_new_name_len);
 
 #ifdef __cplusplus
 }
diff --git a/src/axom/sidre/interface/c_fortran/wrapSidre.cpp b/src/axom/sidre/interface/c_fortran/wrapSidre.cpp
index 3bbedda102..a1d1ba5910 100644
--- a/src/axom/sidre/interface/c_fortran/wrapSidre.cpp
+++ b/src/axom/sidre/interface/c_fortran/wrapSidre.cpp
@@ -1,16 +1,13 @@
 // wrapSidre.cpp
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
 //
 // SPDX-License-Identifier: (BSD-3-Clause)
-#include "wrapSidre.h"
-#include <cstdlib>
-#include <string>
-#include "typesSidre.h"
 
-#include "axom/sidre/core/DataStore.hpp"
+#include <string>
+#include "wrapSidre.h"
 
 // splicer begin CXX_definitions
 // splicer end CXX_definitions
@@ -38,37 +35,9 @@ void sidre_c_loc_(void* addr, void** out) { *out = addr; }
 
 bool SIDRE_name_is_valid(const char* name)
 {
-  // splicer begin function.name_is_valid
+  // splicer begin function.nameIsValid
   return name != NULL;
-  // splicer end function.name_is_valid
-}
-
-// Release library allocated memory.
-void SIDRE_SHROUD_memory_destructor(SIDRE_SHROUD_capsule_data* cap)
-{
-  void* ptr = cap->addr;
-  switch(cap->idtor)
-  {
-  case 0:  // --none--
-  {
-    // Nothing to delete
-    break;
-  }
-  case 1:  // axom::sidre::DataStore
-  {
-    axom::sidre::DataStore* cxx_ptr =
-      reinterpret_cast<axom::sidre::DataStore*>(ptr);
-    delete cxx_ptr;
-    break;
-  }
-  default:
-  {
-    // Unexpected case in destructor
-    break;
-  }
-  }
-  cap->addr = nullptr;
-  cap->idtor = 0;  // avoid deleting again
+  // splicer end function.nameIsValid
 }
 
 }  // extern "C"
diff --git a/src/axom/sidre/interface/c_fortran/wrapSidre.h b/src/axom/sidre/interface/c_fortran/wrapSidre.h
index 062ee46ab0..005c67323b 100644
--- a/src/axom/sidre/interface/c_fortran/wrapSidre.h
+++ b/src/axom/sidre/interface/c_fortran/wrapSidre.h
@@ -1,5 +1,5 @@
 // wrapSidre.h
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
@@ -14,10 +14,10 @@
 #ifndef WRAPSIDRE_H
 #define WRAPSIDRE_H
 
-#include "typesSidre.h"
 #ifndef __cplusplus
   #include <stdbool.h>
 #endif
+#include "typesSidre.h"
 
 // splicer begin CXX_declarations
 // splicer end CXX_declarations
@@ -26,7 +26,31 @@
 extern "C" {
 #endif
 
+// typedef axom::sidre::IndexType
+// splicer begin typedef.IndexType
+// See SidreTypes.h
+// splicer end typedef.IndexType
+
+// typedef axom::sidre::TypeID
+// splicer begin typedef.TypeID
+typedef short SIDRE_TypeID;
+// splicer end typedef.TypeID
+
+// typedef axom::sidre::TypeIDint
+// splicer begin typedef.TypeIDint
+typedef int SIDRE_TypeIDint;
+// splicer end typedef.TypeIDint
+
 // splicer begin C_declarations
+#if 0
+  #ifndef __cplusplus
+    #if defined(USE_64BIT_INDEXTYPE)
+typedef int64_t IndexType;
+    #else
+typedef int32_t IndexType;
+    #endif
+  #endif
+#endif
 // splicer end C_declarations
 
 bool SIDRE_name_is_valid(const char* name);
diff --git a/src/axom/sidre/interface/c_fortran/wrapView.cpp b/src/axom/sidre/interface/c_fortran/wrapView.cpp
index 86d6f368a2..fe8e62dee9 100644
--- a/src/axom/sidre/interface/c_fortran/wrapView.cpp
+++ b/src/axom/sidre/interface/c_fortran/wrapView.cpp
@@ -1,22 +1,41 @@
 // wrapView.cpp
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
 //
 // SPDX-License-Identifier: (BSD-3-Clause)
-#include "wrapView.h"
-#include <cstring>
+
+#include "axom/sidre/core/View.hpp"
 #include <string>
-#include "axom/sidre/core/Buffer.hpp"
 #include "axom/sidre/core/Group.hpp"
-#include "axom/sidre/core/View.hpp"
+#include "axom/sidre/core/Buffer.hpp"
+#include <cstring>
+#include "wrapView.h"
 
 // splicer begin class.View.CXX_definitions
 // splicer end class.View.CXX_definitions
 
 extern "C" {
 
+// helper ShroudLenTrim
+// Returns the length of character string src with length nsrc,
+// ignoring any trailing blanks.
+static int ShroudLenTrim(const char *src, int nsrc)
+{
+  int i;
+
+  for(i = nsrc - 1; i >= 0; i--)
+  {
+    if(src[i] != ' ')
+    {
+      break;
+    }
+  }
+
+  return i + 1;
+}
+
 // helper ShroudStrCopy
 // Copy src into dest, blank fill to ndest characters
 // Truncate if dest is too short.
@@ -29,16 +48,10 @@ static void ShroudStrCopy(char *dest, int ndest, const char *src, int nsrc)
   }
   else
   {
-    if(nsrc < 0)
-    {
-      nsrc = std::strlen(src);
-    }
+    if(nsrc < 0) nsrc = std::strlen(src);
     int nm = nsrc < ndest ? nsrc : ndest;
     std::memcpy(dest, src, nm);
-    if(ndest > nm)
-    {
-      std::memset(dest + nm, ' ', ndest - nm);  // blank fill
-    }
+    if(ndest > nm) std::memset(dest + nm, ' ', ndest - nm);  // blank fill
   }
 }
 // splicer begin class.View.C_definitions
@@ -47,266 +60,270 @@ static void ShroudStrCopy(char *dest, int ndest, const char *src, int nsrc)
 SIDRE_IndexType SIDRE_View_get_index(SIDRE_View *self)
 {
   axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.get_index
+  // splicer begin class.View.method.getIndex
   axom::sidre::IndexType SHC_rv = SH_this->getIndex();
   return SHC_rv;
-  // splicer end class.View.method.get_index
+  // splicer end class.View.method.getIndex
 }
 
 const char *SIDRE_View_get_name(const SIDRE_View *self)
 {
   const axom::sidre::View *SH_this =
     static_cast<const axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.get_name
+  // splicer begin class.View.method.getName
   const std::string &SHCXX_rv = SH_this->getName();
   const char *SHC_rv = SHCXX_rv.c_str();
   return SHC_rv;
-  // splicer end class.View.method.get_name
+  // splicer end class.View.method.getName
 }
 
-void SIDRE_View_get_name_bufferify(const SIDRE_View *self, char *SHF_rv, int NSHF_rv)
+void SIDRE_View_get_name_bufferify(const SIDRE_View *self,
+                                   char *SHC_rv,
+                                   int SHT_rv_len)
 {
   const axom::sidre::View *SH_this =
     static_cast<const axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.get_name_bufferify
+  // splicer begin class.View.method.getName_bufferify
   const std::string &SHCXX_rv = SH_this->getName();
   if(SHCXX_rv.empty())
   {
-    ShroudStrCopy(SHF_rv, NSHF_rv, nullptr, 0);
+    ShroudStrCopy(SHC_rv, SHT_rv_len, nullptr, 0);
   }
   else
   {
-    ShroudStrCopy(SHF_rv, NSHF_rv, SHCXX_rv.data(), SHCXX_rv.size());
+    ShroudStrCopy(SHC_rv, SHT_rv_len, SHCXX_rv.data(), SHCXX_rv.size());
   }
-  // splicer end class.View.method.get_name_bufferify
+  // splicer end class.View.method.getName_bufferify
 }
 
-void SIDRE_View_get_path_bufferify(const SIDRE_View *self, char *SHF_rv, int NSHF_rv)
+void SIDRE_View_get_path_bufferify(const SIDRE_View *self,
+                                   char *SHC_rv,
+                                   int SHT_rv_len)
 {
   const axom::sidre::View *SH_this =
     static_cast<const axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.get_path_bufferify
+  // splicer begin class.View.method.getPath_bufferify
   std::string SHCXX_rv = SH_this->getPath();
   if(SHCXX_rv.empty())
   {
-    ShroudStrCopy(SHF_rv, NSHF_rv, nullptr, 0);
+    ShroudStrCopy(SHC_rv, SHT_rv_len, nullptr, 0);
   }
   else
   {
-    ShroudStrCopy(SHF_rv, NSHF_rv, SHCXX_rv.data(), SHCXX_rv.size());
+    ShroudStrCopy(SHC_rv, SHT_rv_len, SHCXX_rv.data(), SHCXX_rv.size());
   }
-  // splicer end class.View.method.get_path_bufferify
+  // splicer end class.View.method.getPath_bufferify
 }
 
 void SIDRE_View_get_path_name_bufferify(const SIDRE_View *self,
-                                        char *SHF_rv,
-                                        int NSHF_rv)
+                                        char *SHC_rv,
+                                        int SHT_rv_len)
 {
   const axom::sidre::View *SH_this =
     static_cast<const axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.get_path_name_bufferify
+  // splicer begin class.View.method.getPathName_bufferify
   std::string SHCXX_rv = SH_this->getPathName();
   if(SHCXX_rv.empty())
   {
-    ShroudStrCopy(SHF_rv, NSHF_rv, nullptr, 0);
+    ShroudStrCopy(SHC_rv, SHT_rv_len, nullptr, 0);
   }
   else
   {
-    ShroudStrCopy(SHF_rv, NSHF_rv, SHCXX_rv.data(), SHCXX_rv.size());
+    ShroudStrCopy(SHC_rv, SHT_rv_len, SHCXX_rv.data(), SHCXX_rv.size());
   }
-  // splicer end class.View.method.get_path_name_bufferify
+  // splicer end class.View.method.getPathName_bufferify
 }
 
 SIDRE_Group *SIDRE_View_get_owning_group(SIDRE_View *self, SIDRE_Group *SHC_rv)
 {
   axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.get_owning_group
+  // splicer begin class.View.method.getOwningGroup
   axom::sidre::Group *SHCXX_rv = SH_this->getOwningGroup();
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.View.method.get_owning_group
+  // splicer end class.View.method.getOwningGroup
 }
 
 bool SIDRE_View_has_buffer(const SIDRE_View *self)
 {
   const axom::sidre::View *SH_this =
     static_cast<const axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.has_buffer
+  // splicer begin class.View.method.hasBuffer
   bool SHC_rv = SH_this->hasBuffer();
   return SHC_rv;
-  // splicer end class.View.method.has_buffer
+  // splicer end class.View.method.hasBuffer
 }
 
 SIDRE_Buffer *SIDRE_View_get_buffer(SIDRE_View *self, SIDRE_Buffer *SHC_rv)
 {
   axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.get_buffer
+  // splicer begin class.View.method.getBuffer
   axom::sidre::Buffer *SHCXX_rv = SH_this->getBuffer();
   SHC_rv->addr = SHCXX_rv;
   SHC_rv->idtor = 0;
   return SHC_rv;
-  // splicer end class.View.method.get_buffer
+  // splicer end class.View.method.getBuffer
 }
 
 bool SIDRE_View_is_external(const SIDRE_View *self)
 {
   const axom::sidre::View *SH_this =
     static_cast<const axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.is_external
+  // splicer begin class.View.method.isExternal
   bool SHC_rv = SH_this->isExternal();
   return SHC_rv;
-  // splicer end class.View.method.is_external
+  // splicer end class.View.method.isExternal
 }
 
 bool SIDRE_View_is_allocated(SIDRE_View *self)
 {
   axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.is_allocated
+  // splicer begin class.View.method.isAllocated
   bool SHC_rv = SH_this->isAllocated();
   return SHC_rv;
-  // splicer end class.View.method.is_allocated
+  // splicer end class.View.method.isAllocated
 }
 
 bool SIDRE_View_is_applied(const SIDRE_View *self)
 {
   const axom::sidre::View *SH_this =
     static_cast<const axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.is_applied
+  // splicer begin class.View.method.isApplied
   bool SHC_rv = SH_this->isApplied();
   return SHC_rv;
-  // splicer end class.View.method.is_applied
+  // splicer end class.View.method.isApplied
 }
 
 bool SIDRE_View_is_described(const SIDRE_View *self)
 {
   const axom::sidre::View *SH_this =
     static_cast<const axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.is_described
+  // splicer begin class.View.method.isDescribed
   bool SHC_rv = SH_this->isDescribed();
   return SHC_rv;
-  // splicer end class.View.method.is_described
+  // splicer end class.View.method.isDescribed
 }
 
 bool SIDRE_View_is_empty(const SIDRE_View *self)
 {
   const axom::sidre::View *SH_this =
     static_cast<const axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.is_empty
+  // splicer begin class.View.method.isEmpty
   bool SHC_rv = SH_this->isEmpty();
   return SHC_rv;
-  // splicer end class.View.method.is_empty
+  // splicer end class.View.method.isEmpty
 }
 
 bool SIDRE_View_is_opaque(const SIDRE_View *self)
 {
   const axom::sidre::View *SH_this =
     static_cast<const axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.is_opaque
+  // splicer begin class.View.method.isOpaque
   bool SHC_rv = SH_this->isOpaque();
   return SHC_rv;
-  // splicer end class.View.method.is_opaque
+  // splicer end class.View.method.isOpaque
 }
 
 bool SIDRE_View_is_scalar(const SIDRE_View *self)
 {
   const axom::sidre::View *SH_this =
     static_cast<const axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.is_scalar
+  // splicer begin class.View.method.isScalar
   bool SHC_rv = SH_this->isScalar();
   return SHC_rv;
-  // splicer end class.View.method.is_scalar
+  // splicer end class.View.method.isScalar
 }
 
 bool SIDRE_View_is_string(const SIDRE_View *self)
 {
   const axom::sidre::View *SH_this =
     static_cast<const axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.is_string
+  // splicer begin class.View.method.isString
   bool SHC_rv = SH_this->isString();
   return SHC_rv;
-  // splicer end class.View.method.is_string
+  // splicer end class.View.method.isString
 }
 
 SIDRE_TypeIDint SIDRE_View_get_type_id(const SIDRE_View *self)
 {
   const axom::sidre::View *SH_this =
     static_cast<const axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.get_type_id
+  // splicer begin class.View.method.getTypeID
   axom::sidre::TypeID SHCXX_rv = SH_this->getTypeID();
   SIDRE_TypeIDint SHC_rv = static_cast<SIDRE_TypeIDint>(SHCXX_rv);
   return SHC_rv;
-  // splicer end class.View.method.get_type_id
+  // splicer end class.View.method.getTypeID
 }
 
 size_t SIDRE_View_get_total_bytes(const SIDRE_View *self)
 {
   const axom::sidre::View *SH_this =
     static_cast<const axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.get_total_bytes
+  // splicer begin class.View.method.getTotalBytes
   size_t SHC_rv = SH_this->getTotalBytes();
   return SHC_rv;
-  // splicer end class.View.method.get_total_bytes
+  // splicer end class.View.method.getTotalBytes
 }
 
 size_t SIDRE_View_get_num_elements(const SIDRE_View *self)
 {
   const axom::sidre::View *SH_this =
     static_cast<const axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.get_num_elements
+  // splicer begin class.View.method.getNumElements
   size_t SHC_rv = SH_this->getNumElements();
   return SHC_rv;
-  // splicer end class.View.method.get_num_elements
+  // splicer end class.View.method.getNumElements
 }
 
 size_t SIDRE_View_get_bytes_per_element(const SIDRE_View *self)
 {
   const axom::sidre::View *SH_this =
     static_cast<const axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.get_bytes_per_element
+  // splicer begin class.View.method.getBytesPerElement
   size_t SHC_rv = SH_this->getBytesPerElement();
   return SHC_rv;
-  // splicer end class.View.method.get_bytes_per_element
+  // splicer end class.View.method.getBytesPerElement
 }
 
 size_t SIDRE_View_get_offset(const SIDRE_View *self)
 {
   const axom::sidre::View *SH_this =
     static_cast<const axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.get_offset
+  // splicer begin class.View.method.getOffset
   size_t SHC_rv = SH_this->getOffset();
   return SHC_rv;
-  // splicer end class.View.method.get_offset
+  // splicer end class.View.method.getOffset
 }
 
 size_t SIDRE_View_get_stride(const SIDRE_View *self)
 {
   const axom::sidre::View *SH_this =
     static_cast<const axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.get_stride
+  // splicer begin class.View.method.getStride
   size_t SHC_rv = SH_this->getStride();
   return SHC_rv;
-  // splicer end class.View.method.get_stride
+  // splicer end class.View.method.getStride
 }
 
 int SIDRE_View_get_num_dimensions(const SIDRE_View *self)
 {
   const axom::sidre::View *SH_this =
     static_cast<const axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.get_num_dimensions
+  // splicer begin class.View.method.getNumDimensions
   int SHC_rv = SH_this->getNumDimensions();
   return SHC_rv;
-  // splicer end class.View.method.get_num_dimensions
+  // splicer end class.View.method.getNumDimensions
 }
 
 int SIDRE_View_get_shape(const SIDRE_View *self, int ndims, SIDRE_IndexType *shape)
 {
   const axom::sidre::View *SH_this =
     static_cast<const axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.get_shape
+  // splicer begin class.View.method.getShape
   int SHC_rv = SH_this->getShape(ndims, shape);
   return SHC_rv;
-  // splicer end class.View.method.get_shape
+  // splicer end class.View.method.getShape
 }
 
 void SIDRE_View_allocate_simple(SIDRE_View *self)
@@ -339,11 +356,11 @@ void SIDRE_View_reallocate(SIDRE_View *self, SIDRE_IndexType num_elems)
 void SIDRE_View_attach_buffer_only(SIDRE_View *self, SIDRE_Buffer *buff)
 {
   axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.attach_buffer_only
+  // splicer begin class.View.method.attachBuffer_only
   axom::sidre::Buffer *SHCXX_buff =
     static_cast<axom::sidre::Buffer *>(buff->addr);
   SH_this->attachBuffer(SHCXX_buff);
-  // splicer end class.View.method.attach_buffer_only
+  // splicer end class.View.method.attachBuffer_only
 }
 
 void SIDRE_View_attach_buffer_type(SIDRE_View *self,
@@ -352,12 +369,40 @@ void SIDRE_View_attach_buffer_type(SIDRE_View *self,
                                    SIDRE_Buffer *buff)
 {
   axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.attach_buffer_type
+  // splicer begin class.View.method.attachBuffer_type
+  axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
+  axom::sidre::Buffer *SHCXX_buff =
+    static_cast<axom::sidre::Buffer *>(buff->addr);
+  SH_this->attachBuffer(SHCXX_type, num_elems, SHCXX_buff);
+  // splicer end class.View.method.attachBuffer_type
+}
+
+void SIDRE_View_attach_buffer_type_int32_t(SIDRE_View *self,
+                                           SIDRE_TypeID type,
+                                           int32_t num_elems,
+                                           SIDRE_Buffer *buff)
+{
+  axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
+  // splicer begin class.View.method.attachBuffer_type_int32_t
+  axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
+  axom::sidre::Buffer *SHCXX_buff =
+    static_cast<axom::sidre::Buffer *>(buff->addr);
+  SH_this->attachBuffer(SHCXX_type, num_elems, SHCXX_buff);
+  // splicer end class.View.method.attachBuffer_type_int32_t
+}
+
+void SIDRE_View_attach_buffer_type_int64_t(SIDRE_View *self,
+                                           SIDRE_TypeID type,
+                                           int64_t num_elems,
+                                           SIDRE_Buffer *buff)
+{
+  axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
+  // splicer begin class.View.method.attachBuffer_type_int64_t
   axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
   axom::sidre::Buffer *SHCXX_buff =
     static_cast<axom::sidre::Buffer *>(buff->addr);
   SH_this->attachBuffer(SHCXX_type, num_elems, SHCXX_buff);
-  // splicer end class.View.method.attach_buffer_type
+  // splicer end class.View.method.attachBuffer_type_int64_t
 }
 
 void SIDRE_View_attach_buffer_shape(SIDRE_View *self,
@@ -367,12 +412,12 @@ void SIDRE_View_attach_buffer_shape(SIDRE_View *self,
                                     SIDRE_Buffer *buff)
 {
   axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.attach_buffer_shape
+  // splicer begin class.View.method.attachBuffer_shape
   axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
   axom::sidre::Buffer *SHCXX_buff =
     static_cast<axom::sidre::Buffer *>(buff->addr);
   SH_this->attachBuffer(SHCXX_type, ndims, shape, SHCXX_buff);
-  // splicer end class.View.method.attach_buffer_shape
+  // splicer end class.View.method.attachBuffer_shape
 }
 
 void SIDRE_View_clear(SIDRE_View *self)
@@ -471,59 +516,61 @@ void SIDRE_View_apply_type_shape(SIDRE_View *self,
 void SIDRE_View_set_scalar_int(SIDRE_View *self, int value)
 {
   axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.set_scalar_int
+  // splicer begin class.View.method.setScalar_int
   SH_this->setScalar<int>(value);
-  // splicer end class.View.method.set_scalar_int
+  // splicer end class.View.method.setScalar_int
 }
 
 void SIDRE_View_set_scalar_long(SIDRE_View *self, long value)
 {
   axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.set_scalar_long
+  // splicer begin class.View.method.setScalar_long
   SH_this->setScalar<long>(value);
-  // splicer end class.View.method.set_scalar_long
+  // splicer end class.View.method.setScalar_long
 }
 
 void SIDRE_View_set_scalar_float(SIDRE_View *self, float value)
 {
   axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.set_scalar_float
+  // splicer begin class.View.method.setScalar_float
   SH_this->setScalar<float>(value);
-  // splicer end class.View.method.set_scalar_float
+  // splicer end class.View.method.setScalar_float
 }
 
 void SIDRE_View_set_scalar_double(SIDRE_View *self, double value)
 {
   axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.set_scalar_double
+  // splicer begin class.View.method.setScalar_double
   SH_this->setScalar<double>(value);
-  // splicer end class.View.method.set_scalar_double
+  // splicer end class.View.method.setScalar_double
 }
 
 void SIDRE_View_set_string(SIDRE_View *self, const char *value)
 {
   axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.set_string
+  // splicer begin class.View.method.setString
   const std::string SHCXX_value(value);
   SH_this->setString(SHCXX_value);
-  // splicer end class.View.method.set_string
+  // splicer end class.View.method.setString
 }
 
-void SIDRE_View_set_string_bufferify(SIDRE_View *self, const char *value, int Lvalue)
+void SIDRE_View_set_string_bufferify(SIDRE_View *self,
+                                     char *value,
+                                     int SHT_value_len)
 {
   axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.set_string_bufferify
-  const std::string SHCXX_value(value, Lvalue);
+  // splicer begin class.View.method.setString_bufferify
+  const std::string SHCXX_value(value, ShroudLenTrim(value, SHT_value_len));
   SH_this->setString(SHCXX_value);
-  // splicer end class.View.method.set_string_bufferify
+  // splicer end class.View.method.setString_bufferify
 }
 
 void SIDRE_View_set_external_data_ptr_only(SIDRE_View *self, void *external_ptr)
 {
   axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.set_external_data_ptr_only
+  // splicer begin class.View.method.setExternalDataPtr_only
   SH_this->setExternalDataPtr(external_ptr);
-  // splicer end class.View.method.set_external_data_ptr_only
+  // splicer end class.View.method.setExternalDataPtr_only
 }
 
 void SIDRE_View_set_external_data_ptr_type(SIDRE_View *self,
@@ -532,10 +579,34 @@ void SIDRE_View_set_external_data_ptr_type(SIDRE_View *self,
                                            void *external_ptr)
 {
   axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.set_external_data_ptr_type
+  // splicer begin class.View.method.setExternalDataPtr_type
+  axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
+  SH_this->setExternalDataPtr(SHCXX_type, num_elems, external_ptr);
+  // splicer end class.View.method.setExternalDataPtr_type
+}
+
+void SIDRE_View_set_external_data_ptr_type_int32_t(SIDRE_View *self,
+                                                   SIDRE_TypeID type,
+                                                   int32_t num_elems,
+                                                   void *external_ptr)
+{
+  axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
+  // splicer begin class.View.method.setExternalDataPtr_type_int32_t
+  axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
+  SH_this->setExternalDataPtr(SHCXX_type, num_elems, external_ptr);
+  // splicer end class.View.method.setExternalDataPtr_type_int32_t
+}
+
+void SIDRE_View_set_external_data_ptr_type_int64_t(SIDRE_View *self,
+                                                   SIDRE_TypeID type,
+                                                   int64_t num_elems,
+                                                   void *external_ptr)
+{
+  axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
+  // splicer begin class.View.method.setExternalDataPtr_type_int64_t
   axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
   SH_this->setExternalDataPtr(SHCXX_type, num_elems, external_ptr);
-  // splicer end class.View.method.set_external_data_ptr_type
+  // splicer end class.View.method.setExternalDataPtr_type_int64_t
 }
 
 void SIDRE_View_set_external_data_ptr_shape(SIDRE_View *self,
@@ -545,74 +616,74 @@ void SIDRE_View_set_external_data_ptr_shape(SIDRE_View *self,
                                             void *external_ptr)
 {
   axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.set_external_data_ptr_shape
+  // splicer begin class.View.method.setExternalDataPtr_shape
   axom::sidre::TypeID SHCXX_type = static_cast<axom::sidre::TypeID>(type);
   SH_this->setExternalDataPtr(SHCXX_type, ndims, shape, external_ptr);
-  // splicer end class.View.method.set_external_data_ptr_shape
+  // splicer end class.View.method.setExternalDataPtr_shape
 }
 
 const char *SIDRE_View_get_string(SIDRE_View *self)
 {
   axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.get_string
+  // splicer begin class.View.method.getString
   const char *SHC_rv = SH_this->getString();
   return SHC_rv;
-  // splicer end class.View.method.get_string
+  // splicer end class.View.method.getString
 }
 
-void SIDRE_View_get_string_bufferify(SIDRE_View *self, char *name, int Nname)
+void SIDRE_View_get_string_bufferify(SIDRE_View *self, char *name, int SHT_name_len)
 {
   axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.get_string_bufferify
+  // splicer begin class.View.method.getString_bufferify
   const char *SHC_rv = SH_this->getString();
-  ShroudStrCopy(name, Nname, SHC_rv, -1);
-  // splicer end class.View.method.get_string_bufferify
+  ShroudStrCopy(name, SHT_name_len, SHC_rv, -1);
+  // splicer end class.View.method.getString_bufferify
 }
 
 int SIDRE_View_get_data_int(SIDRE_View *self)
 {
   axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.get_data_int
+  // splicer begin class.View.method.getData_int
   int SHC_rv = SH_this->getData<int>();
   return SHC_rv;
-  // splicer end class.View.method.get_data_int
+  // splicer end class.View.method.getData_int
 }
 
 long SIDRE_View_get_data_long(SIDRE_View *self)
 {
   axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.get_data_long
+  // splicer begin class.View.method.getData_long
   long SHC_rv = SH_this->getData<long>();
   return SHC_rv;
-  // splicer end class.View.method.get_data_long
+  // splicer end class.View.method.getData_long
 }
 
 float SIDRE_View_get_data_float(SIDRE_View *self)
 {
   axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.get_data_float
+  // splicer begin class.View.method.getData_float
   float SHC_rv = SH_this->getData<float>();
   return SHC_rv;
-  // splicer end class.View.method.get_data_float
+  // splicer end class.View.method.getData_float
 }
 
 double SIDRE_View_get_data_double(SIDRE_View *self)
 {
   axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.get_data_double
+  // splicer begin class.View.method.getData_double
   double SHC_rv = SH_this->getData<double>();
   return SHC_rv;
-  // splicer end class.View.method.get_data_double
+  // splicer end class.View.method.getData_double
 }
 
 void *SIDRE_View_get_void_ptr(const SIDRE_View *self)
 {
   const axom::sidre::View *SH_this =
     static_cast<const axom::sidre::View *>(self->addr);
-  // splicer begin class.View.method.get_void_ptr
+  // splicer begin class.View.method.getVoidPtr
   void *SHC_rv = SH_this->getVoidPtr();
   return SHC_rv;
-  // splicer end class.View.method.get_void_ptr
+  // splicer end class.View.method.getVoidPtr
 }
 
 void SIDRE_View_print(const SIDRE_View *self)
@@ -635,12 +706,13 @@ bool SIDRE_View_rename(SIDRE_View *self, const char *new_name)
 }
 
 bool SIDRE_View_rename_bufferify(SIDRE_View *self,
-                                 const char *new_name,
-                                 int Lnew_name)
+                                 char *new_name,
+                                 int SHT_new_name_len)
 {
   axom::sidre::View *SH_this = static_cast<axom::sidre::View *>(self->addr);
   // splicer begin class.View.method.rename_bufferify
-  const std::string SHCXX_new_name(new_name, Lnew_name);
+  const std::string SHCXX_new_name(new_name,
+                                   ShroudLenTrim(new_name, SHT_new_name_len));
   bool SHC_rv = SH_this->rename(SHCXX_new_name);
   return SHC_rv;
   // splicer end class.View.method.rename_bufferify
diff --git a/src/axom/sidre/interface/c_fortran/wrapView.h b/src/axom/sidre/interface/c_fortran/wrapView.h
index 30834d2b11..8e8227a1ec 100644
--- a/src/axom/sidre/interface/c_fortran/wrapView.h
+++ b/src/axom/sidre/interface/c_fortran/wrapView.h
@@ -1,5 +1,5 @@
 // wrapView.h
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
@@ -14,15 +14,18 @@
 #ifndef WRAPVIEW_H
 #define WRAPVIEW_H
 
+#include "wrapSidre.h"
 #include "axom/sidre/interface/SidreTypes.h"
-#include "typesSidre.h"
 #ifdef __cplusplus
-  #include <cstddef>
   #include "axom/sidre/core/SidreTypes.hpp"
+  #include <cstddef>
+  #include <cstdint>
 #else
   #include <stdbool.h>
   #include <stddef.h>
+  #include <stdint.h>
 #endif
+#include "typesSidre.h"
 
 // splicer begin class.View.CXX_declarations
 // splicer end class.View.CXX_declarations
@@ -34,164 +37,186 @@ extern "C" {
 // splicer begin class.View.C_declarations
 // splicer end class.View.C_declarations
 
-SIDRE_IndexType SIDRE_View_get_index(SIDRE_View* self);
+SIDRE_IndexType SIDRE_View_get_index(SIDRE_View *self);
 
-const char* SIDRE_View_get_name(const SIDRE_View* self);
+const char *SIDRE_View_get_name(const SIDRE_View *self);
 
-void SIDRE_View_get_name_bufferify(const SIDRE_View* self,
-                                   char* SHF_rv,
-                                   int NSHF_rv);
+void SIDRE_View_get_name_bufferify(const SIDRE_View *self,
+                                   char *SHC_rv,
+                                   int SHT_rv_len);
 
-void SIDRE_View_get_path_bufferify(const SIDRE_View* self,
-                                   char* SHF_rv,
-                                   int NSHF_rv);
+void SIDRE_View_get_path_bufferify(const SIDRE_View *self,
+                                   char *SHC_rv,
+                                   int SHT_rv_len);
 
-void SIDRE_View_get_path_name_bufferify(const SIDRE_View* self,
-                                        char* SHF_rv,
-                                        int NSHF_rv);
+void SIDRE_View_get_path_name_bufferify(const SIDRE_View *self,
+                                        char *SHC_rv,
+                                        int SHT_rv_len);
 
-SIDRE_Group* SIDRE_View_get_owning_group(SIDRE_View* self, SIDRE_Group* SHC_rv);
+SIDRE_Group *SIDRE_View_get_owning_group(SIDRE_View *self, SIDRE_Group *SHC_rv);
 
-bool SIDRE_View_has_buffer(const SIDRE_View* self);
+bool SIDRE_View_has_buffer(const SIDRE_View *self);
 
-SIDRE_Buffer* SIDRE_View_get_buffer(SIDRE_View* self, SIDRE_Buffer* SHC_rv);
+SIDRE_Buffer *SIDRE_View_get_buffer(SIDRE_View *self, SIDRE_Buffer *SHC_rv);
 
-bool SIDRE_View_is_external(const SIDRE_View* self);
+bool SIDRE_View_is_external(const SIDRE_View *self);
 
-bool SIDRE_View_is_allocated(SIDRE_View* self);
+bool SIDRE_View_is_allocated(SIDRE_View *self);
 
-bool SIDRE_View_is_applied(const SIDRE_View* self);
+bool SIDRE_View_is_applied(const SIDRE_View *self);
 
-bool SIDRE_View_is_described(const SIDRE_View* self);
+bool SIDRE_View_is_described(const SIDRE_View *self);
 
-bool SIDRE_View_is_empty(const SIDRE_View* self);
+bool SIDRE_View_is_empty(const SIDRE_View *self);
 
-bool SIDRE_View_is_opaque(const SIDRE_View* self);
+bool SIDRE_View_is_opaque(const SIDRE_View *self);
 
-bool SIDRE_View_is_scalar(const SIDRE_View* self);
+bool SIDRE_View_is_scalar(const SIDRE_View *self);
 
-bool SIDRE_View_is_string(const SIDRE_View* self);
+bool SIDRE_View_is_string(const SIDRE_View *self);
 
-SIDRE_TypeIDint SIDRE_View_get_type_id(const SIDRE_View* self);
+SIDRE_TypeIDint SIDRE_View_get_type_id(const SIDRE_View *self);
 
-size_t SIDRE_View_get_total_bytes(const SIDRE_View* self);
+size_t SIDRE_View_get_total_bytes(const SIDRE_View *self);
 
-size_t SIDRE_View_get_num_elements(const SIDRE_View* self);
+size_t SIDRE_View_get_num_elements(const SIDRE_View *self);
 
-size_t SIDRE_View_get_bytes_per_element(const SIDRE_View* self);
+size_t SIDRE_View_get_bytes_per_element(const SIDRE_View *self);
 
-size_t SIDRE_View_get_offset(const SIDRE_View* self);
+size_t SIDRE_View_get_offset(const SIDRE_View *self);
 
-size_t SIDRE_View_get_stride(const SIDRE_View* self);
+size_t SIDRE_View_get_stride(const SIDRE_View *self);
 
-int SIDRE_View_get_num_dimensions(const SIDRE_View* self);
+int SIDRE_View_get_num_dimensions(const SIDRE_View *self);
 
-int SIDRE_View_get_shape(const SIDRE_View* self, int ndims, SIDRE_IndexType* shape);
+int SIDRE_View_get_shape(const SIDRE_View *self, int ndims, SIDRE_IndexType *shape);
 
-void SIDRE_View_allocate_simple(SIDRE_View* self);
+void SIDRE_View_allocate_simple(SIDRE_View *self);
 
-void SIDRE_View_allocate_from_type(SIDRE_View* self,
+void SIDRE_View_allocate_from_type(SIDRE_View *self,
                                    SIDRE_TypeID type,
                                    SIDRE_IndexType num_elems);
 
-void SIDRE_View_reallocate(SIDRE_View* self, SIDRE_IndexType num_elems);
+void SIDRE_View_reallocate(SIDRE_View *self, SIDRE_IndexType num_elems);
 
-void SIDRE_View_attach_buffer_only(SIDRE_View* self, SIDRE_Buffer* buff);
+void SIDRE_View_attach_buffer_only(SIDRE_View *self, SIDRE_Buffer *buff);
 
-void SIDRE_View_attach_buffer_type(SIDRE_View* self,
+void SIDRE_View_attach_buffer_type(SIDRE_View *self,
                                    SIDRE_TypeID type,
                                    SIDRE_IndexType num_elems,
-                                   SIDRE_Buffer* buff);
+                                   SIDRE_Buffer *buff);
+
+void SIDRE_View_attach_buffer_type_int32_t(SIDRE_View *self,
+                                           SIDRE_TypeID type,
+                                           int32_t num_elems,
+                                           SIDRE_Buffer *buff);
+
+void SIDRE_View_attach_buffer_type_int64_t(SIDRE_View *self,
+                                           SIDRE_TypeID type,
+                                           int64_t num_elems,
+                                           SIDRE_Buffer *buff);
 
-void SIDRE_View_attach_buffer_shape(SIDRE_View* self,
+void SIDRE_View_attach_buffer_shape(SIDRE_View *self,
                                     SIDRE_TypeID type,
                                     int ndims,
-                                    const SIDRE_IndexType* shape,
-                                    SIDRE_Buffer* buff);
+                                    const SIDRE_IndexType *shape,
+                                    SIDRE_Buffer *buff);
 
-void SIDRE_View_clear(SIDRE_View* self);
+void SIDRE_View_clear(SIDRE_View *self);
 
-void SIDRE_View_apply_0(SIDRE_View* self);
+void SIDRE_View_apply_0(SIDRE_View *self);
 
-void SIDRE_View_apply_nelems(SIDRE_View* self, SIDRE_IndexType num_elems);
+void SIDRE_View_apply_nelems(SIDRE_View *self, SIDRE_IndexType num_elems);
 
-void SIDRE_View_apply_nelems_offset(SIDRE_View* self,
+void SIDRE_View_apply_nelems_offset(SIDRE_View *self,
                                     SIDRE_IndexType num_elems,
                                     SIDRE_IndexType offset);
 
-void SIDRE_View_apply_nelems_offset_stride(SIDRE_View* self,
+void SIDRE_View_apply_nelems_offset_stride(SIDRE_View *self,
                                            SIDRE_IndexType num_elems,
                                            SIDRE_IndexType offset,
                                            SIDRE_IndexType stride);
 
-void SIDRE_View_apply_type_nelems(SIDRE_View* self,
+void SIDRE_View_apply_type_nelems(SIDRE_View *self,
                                   SIDRE_TypeID type,
                                   SIDRE_IndexType num_elems);
 
-void SIDRE_View_apply_type_nelems_offset(SIDRE_View* self,
+void SIDRE_View_apply_type_nelems_offset(SIDRE_View *self,
                                          SIDRE_TypeID type,
                                          SIDRE_IndexType num_elems,
                                          SIDRE_IndexType offset);
 
-void SIDRE_View_apply_type_nelems_offset_stride(SIDRE_View* self,
+void SIDRE_View_apply_type_nelems_offset_stride(SIDRE_View *self,
                                                 SIDRE_TypeID type,
                                                 SIDRE_IndexType num_elems,
                                                 SIDRE_IndexType offset,
                                                 SIDRE_IndexType stride);
 
-void SIDRE_View_apply_type_shape(SIDRE_View* self,
+void SIDRE_View_apply_type_shape(SIDRE_View *self,
                                  SIDRE_TypeID type,
                                  int ndims,
-                                 const SIDRE_IndexType* shape);
+                                 const SIDRE_IndexType *shape);
 
-void SIDRE_View_set_scalar_int(SIDRE_View* self, int value);
+void SIDRE_View_set_scalar_int(SIDRE_View *self, int value);
 
-void SIDRE_View_set_scalar_long(SIDRE_View* self, long value);
+void SIDRE_View_set_scalar_long(SIDRE_View *self, long value);
 
-void SIDRE_View_set_scalar_float(SIDRE_View* self, float value);
+void SIDRE_View_set_scalar_float(SIDRE_View *self, float value);
 
-void SIDRE_View_set_scalar_double(SIDRE_View* self, double value);
+void SIDRE_View_set_scalar_double(SIDRE_View *self, double value);
 
-void SIDRE_View_set_string(SIDRE_View* self, const char* value);
+void SIDRE_View_set_string(SIDRE_View *self, const char *value);
 
-void SIDRE_View_set_string_bufferify(SIDRE_View* self,
-                                     const char* value,
-                                     int Lvalue);
+void SIDRE_View_set_string_bufferify(SIDRE_View *self,
+                                     char *value,
+                                     int SHT_value_len);
 
-void SIDRE_View_set_external_data_ptr_only(SIDRE_View* self, void* external_ptr);
+void SIDRE_View_set_external_data_ptr_only(SIDRE_View *self, void *external_ptr);
 
-void SIDRE_View_set_external_data_ptr_type(SIDRE_View* self,
+void SIDRE_View_set_external_data_ptr_type(SIDRE_View *self,
                                            SIDRE_TypeID type,
                                            SIDRE_IndexType num_elems,
-                                           void* external_ptr);
+                                           void *external_ptr);
+
+void SIDRE_View_set_external_data_ptr_type_int32_t(SIDRE_View *self,
+                                                   SIDRE_TypeID type,
+                                                   int32_t num_elems,
+                                                   void *external_ptr);
+
+void SIDRE_View_set_external_data_ptr_type_int64_t(SIDRE_View *self,
+                                                   SIDRE_TypeID type,
+                                                   int64_t num_elems,
+                                                   void *external_ptr);
 
-void SIDRE_View_set_external_data_ptr_shape(SIDRE_View* self,
+void SIDRE_View_set_external_data_ptr_shape(SIDRE_View *self,
                                             SIDRE_TypeID type,
                                             int ndims,
-                                            const SIDRE_IndexType* shape,
-                                            void* external_ptr);
+                                            const SIDRE_IndexType *shape,
+                                            void *external_ptr);
 
-const char* SIDRE_View_get_string(SIDRE_View* self);
+const char *SIDRE_View_get_string(SIDRE_View *self);
 
-void SIDRE_View_get_string_bufferify(SIDRE_View* self, char* name, int Nname);
+void SIDRE_View_get_string_bufferify(SIDRE_View *self,
+                                     char *name,
+                                     int SHT_name_len);
 
-int SIDRE_View_get_data_int(SIDRE_View* self);
+int SIDRE_View_get_data_int(SIDRE_View *self);
 
-long SIDRE_View_get_data_long(SIDRE_View* self);
+long SIDRE_View_get_data_long(SIDRE_View *self);
 
-float SIDRE_View_get_data_float(SIDRE_View* self);
+float SIDRE_View_get_data_float(SIDRE_View *self);
 
-double SIDRE_View_get_data_double(SIDRE_View* self);
+double SIDRE_View_get_data_double(SIDRE_View *self);
 
-void* SIDRE_View_get_void_ptr(const SIDRE_View* self);
+void *SIDRE_View_get_void_ptr(const SIDRE_View *self);
 
-void SIDRE_View_print(const SIDRE_View* self);
+void SIDRE_View_print(const SIDRE_View *self);
 
-bool SIDRE_View_rename(SIDRE_View* self, const char* new_name);
+bool SIDRE_View_rename(SIDRE_View *self, const char *new_name);
 
-bool SIDRE_View_rename_bufferify(SIDRE_View* self,
-                                 const char* new_name,
-                                 int Lnew_name);
+bool SIDRE_View_rename_bufferify(SIDRE_View *self,
+                                 char *new_name,
+                                 int SHT_new_name_len);
 
 #ifdef __cplusplus
 }
diff --git a/src/axom/sidre/interface/c_fortran/wrapfsidre.F b/src/axom/sidre/interface/c_fortran/wrapfsidre.F
index ea7b1aa2af..e360720ea4 100644
--- a/src/axom/sidre/interface/c_fortran/wrapfsidre.F
+++ b/src/axom/sidre/interface/c_fortran/wrapfsidre.F
@@ -1,5 +1,5 @@
 ! wrapfsidre.F
-! This file is generated by Shroud 0.12.2. Do not edit.
+! This file is generated by Shroud 0.13.0. Do not edit.
 !
 ! Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 ! other Axom Project Developers. See the top-level LICENSE file for details.
@@ -13,7 +13,7 @@
 #include "axom/config.hpp"
 ! splicer end file_top
 module axom_sidre
-    use iso_c_binding, only : C_INT, C_NULL_PTR, C_PTR
+    use iso_c_binding, only : C_INT, C_INT64_T, C_NULL_PTR, C_PTR, C_SHORT
     ! splicer begin module_use
     use conduit, only : &
         CONDUIT_EMPTY_ID, &
@@ -41,12 +41,6 @@ module axom_sidre
     ! splicer begin module_top
     integer, parameter :: MAXNAMESIZE = 128
 
-#if defined(AXOM_USE_64BIT_INDEXTYPE) && !defined(AXOM_NO_INT64_T)
-    integer, parameter :: SIDRE_IndexType = C_INT64_T
-#else
-    integer, parameter :: SIDRE_IndexType = C_INT32_T
-#endif
-
     integer, parameter :: TypeID = C_SHORT
     integer, parameter :: TypeIDint = C_INT
 
@@ -69,17 +63,36 @@ module axom_sidre
         SIDRE_ULONG_ID      = CONDUIT_ULONG_ID, &
         SIDRE_FLOAT_ID      = CONDUIT_FLOAT_ID, &
         SIDRE_DOUBLE_ID     = CONDUIT_DOUBLE_ID
-
-    integer, parameter :: invalid_index = -1_SIDRE_IndexType
     ! splicer end module_top
 
-    type, bind(C) :: SIDRE_SHROUD_buffer_capsule
+    ! helper capsule_data_helper
+    type, bind(C) :: SIDRE_SHROUD_capsule_data
         type(C_PTR) :: addr = C_NULL_PTR  ! address of C++ memory
         integer(C_INT) :: idtor = 0       ! index of destructor
-    end type SIDRE_SHROUD_buffer_capsule
+    end type SIDRE_SHROUD_capsule_data
+
+    ! typedef axom::sidre::IndexType
+    ! splicer begin typedef.IndexType
+#if defined(AXOM_USE_64BIT_INDEXTYPE) && !defined(AXOM_NO_INT64_T)
+    integer, parameter :: SIDRE_IndexType = C_INT64_T
+#else
+    integer, parameter :: SIDRE_IndexType = C_INT32_T
+#endif
+    integer, parameter :: invalid_index = -1_SIDRE_IndexType
+    ! splicer end typedef.IndexType
+
+    ! typedef axom::sidre::TypeID
+    ! splicer begin typedef.TypeID
+    integer, parameter :: type_id = C_SHORT
+    ! splicer end typedef.TypeID
+
+    ! typedef axom::sidre::TypeIDint
+    ! splicer begin typedef.TypeIDint
+    integer, parameter :: type_i_dint = C_INT
+    ! splicer end typedef.TypeIDint
 
     type SidreBuffer
-        type(SIDRE_SHROUD_buffer_capsule) :: cxxmem
+        type(SIDRE_SHROUD_capsule_data) :: cxxmem
         ! splicer begin class.Buffer.component_part
         ! splicer end class.Buffer.component_part
     contains
@@ -109,13 +122,8 @@ module axom_sidre
         ! splicer end class.Buffer.type_bound_procedure_part
     end type SidreBuffer
 
-    type, bind(C) :: SIDRE_SHROUD_group_capsule
-        type(C_PTR) :: addr = C_NULL_PTR  ! address of C++ memory
-        integer(C_INT) :: idtor = 0       ! index of destructor
-    end type SIDRE_SHROUD_group_capsule
-
     type SidreGroup
-        type(SIDRE_SHROUD_group_capsule) :: cxxmem
+        type(SIDRE_SHROUD_capsule_data) :: cxxmem
         ! splicer begin class.Group.component_part
         ! splicer end class.Group.component_part
     contains
@@ -332,13 +340,8 @@ module axom_sidre
         ! splicer end class.Group.type_bound_procedure_part
     end type SidreGroup
 
-    type, bind(C) :: SIDRE_SHROUD_view_capsule
-        type(C_PTR) :: addr = C_NULL_PTR  ! address of C++ memory
-        integer(C_INT) :: idtor = 0       ! index of destructor
-    end type SIDRE_SHROUD_view_capsule
-
     type SidreView
-        type(SIDRE_SHROUD_view_capsule) :: cxxmem
+        type(SIDRE_SHROUD_capsule_data) :: cxxmem
         ! splicer begin class.View.component_part
         ! splicer end class.View.component_part
     contains
@@ -505,13 +508,8 @@ module axom_sidre
         ! splicer end class.View.type_bound_procedure_part
     end type SidreView
 
-    type, bind(C) :: SIDRE_SHROUD_datastore_capsule
-        type(C_PTR) :: addr = C_NULL_PTR  ! address of C++ memory
-        integer(C_INT) :: idtor = 0       ! index of destructor
-    end type SIDRE_SHROUD_datastore_capsule
-
     type SidreDataStore
-        type(SIDRE_SHROUD_datastore_capsule) :: cxxmem
+        type(SIDRE_SHROUD_capsule_data) :: cxxmem
         ! splicer begin class.DataStore.component_part
         ! splicer end class.DataStore.component_part
     contains
@@ -566,9 +564,9 @@ module axom_sidre
         pure function c_buffer_get_index(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Buffer_get_index")
-            import :: SIDRE_IndexType, SIDRE_SHROUD_buffer_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_buffer_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(SIDRE_IndexType) :: SHT_rv
         end function c_buffer_get_index
 
@@ -576,9 +574,9 @@ pure function c_buffer_get_num_views(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Buffer_get_num_views")
             use iso_c_binding, only : C_SIZE_T
-            import :: SIDRE_SHROUD_buffer_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_buffer_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(C_SIZE_T) :: SHT_rv
         end function c_buffer_get_num_views
 
@@ -586,18 +584,18 @@ function c_buffer_get_void_ptr(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Buffer_get_void_ptr")
             use iso_c_binding, only : C_PTR
-            import :: SIDRE_SHROUD_buffer_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_buffer_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             type(C_PTR) :: SHT_rv
         end function c_buffer_get_void_ptr
 
         pure function c_buffer_get_type_id(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Buffer_get_type_id")
-            import :: SIDRE_SHROUD_buffer_capsule, TypeIDint
+            import :: SIDRE_SHROUD_capsule_data, TypeIDint
             implicit none
-            type(SIDRE_SHROUD_buffer_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(TypeIDint) :: SHT_rv
         end function c_buffer_get_type_id
 
@@ -605,9 +603,9 @@ pure function c_buffer_get_num_elements(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Buffer_get_num_elements")
             use iso_c_binding, only : C_SIZE_T
-            import :: SIDRE_SHROUD_buffer_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_buffer_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(C_SIZE_T) :: SHT_rv
         end function c_buffer_get_num_elements
 
@@ -615,9 +613,9 @@ pure function c_buffer_get_total_bytes(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Buffer_get_total_bytes")
             use iso_c_binding, only : C_SIZE_T
-            import :: SIDRE_SHROUD_buffer_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_buffer_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(C_SIZE_T) :: SHT_rv
         end function c_buffer_get_total_bytes
 
@@ -625,61 +623,58 @@ pure function c_buffer_get_bytes_per_element(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Buffer_get_bytes_per_element")
             use iso_c_binding, only : C_SIZE_T
-            import :: SIDRE_SHROUD_buffer_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_buffer_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(C_SIZE_T) :: SHT_rv
         end function c_buffer_get_bytes_per_element
 
         subroutine c_buffer_describe(self, type, num_elems) &
                 bind(C, name="SIDRE_Buffer_describe")
-            import :: SIDRE_IndexType, SIDRE_SHROUD_buffer_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_buffer_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(TypeID), value, intent(IN) :: type
             integer(SIDRE_IndexType), value, intent(IN) :: num_elems
         end subroutine c_buffer_describe
 
         subroutine c_buffer_allocate_existing(self) &
                 bind(C, name="SIDRE_Buffer_allocate_existing")
-            import :: SIDRE_SHROUD_buffer_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_buffer_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
         end subroutine c_buffer_allocate_existing
 
         subroutine c_buffer_allocate_from_type(self, type, num_elems) &
                 bind(C, name="SIDRE_Buffer_allocate_from_type")
-            import :: SIDRE_IndexType, SIDRE_SHROUD_buffer_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_buffer_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(TypeID), value, intent(IN) :: type
             integer(SIDRE_IndexType), value, intent(IN) :: num_elems
         end subroutine c_buffer_allocate_from_type
 
         subroutine c_buffer_reallocate(self, num_elems) &
                 bind(C, name="SIDRE_Buffer_reallocate")
-            import :: SIDRE_IndexType, SIDRE_SHROUD_buffer_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_buffer_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(SIDRE_IndexType), value, intent(IN) :: num_elems
         end subroutine c_buffer_reallocate
 
         subroutine c_buffer_print(self) &
                 bind(C, name="SIDRE_Buffer_print")
-            import :: SIDRE_SHROUD_buffer_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_buffer_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
         end subroutine c_buffer_print
 
-        ! splicer begin class.Buffer.additional_interfaces
-        ! splicer end class.Buffer.additional_interfaces
-
         function c_group_get_index(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_get_index")
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(SIDRE_IndexType) :: SHT_rv
         end function c_group_get_index
 
@@ -687,61 +682,61 @@ pure function c_group_get_name(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_get_name")
             use iso_c_binding, only : C_PTR
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             type(C_PTR) SHT_rv
         end function c_group_get_name
 
-        subroutine c_group_get_name_bufferify(self, SHF_rv, NSHF_rv) &
+        subroutine c_group_get_name_bufferify(self, SHT_rv, SHT_rv_len) &
                 bind(C, name="SIDRE_Group_get_name_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
-            character(kind=C_CHAR), intent(OUT) :: SHF_rv(*)
-            integer(C_INT), value, intent(IN) :: NSHF_rv
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            character(kind=C_CHAR), intent(OUT) :: SHT_rv(*)
+            integer(C_INT), value, intent(IN) :: SHT_rv_len
         end subroutine c_group_get_name_bufferify
 
-        subroutine c_group_get_path_bufferify(self, SHF_rv, NSHF_rv) &
+        subroutine c_group_get_path_bufferify(self, SHT_rv, SHT_rv_len) &
                 bind(C, name="SIDRE_Group_get_path_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
-            character(kind=C_CHAR), intent(OUT) :: SHF_rv(*)
-            integer(C_INT), value, intent(IN) :: NSHF_rv
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            character(kind=C_CHAR), intent(OUT) :: SHT_rv(*)
+            integer(C_INT), value, intent(IN) :: SHT_rv_len
         end subroutine c_group_get_path_bufferify
 
-        subroutine c_group_get_path_name_bufferify(self, SHF_rv, &
-                NSHF_rv) &
+        subroutine c_group_get_path_name_bufferify(self, SHT_rv, &
+                SHT_rv_len) &
                 bind(C, name="SIDRE_Group_get_path_name_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
-            character(kind=C_CHAR), intent(OUT) :: SHF_rv(*)
-            integer(C_INT), value, intent(IN) :: NSHF_rv
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            character(kind=C_CHAR), intent(OUT) :: SHT_rv(*)
+            integer(C_INT), value, intent(IN) :: SHT_rv_len
         end subroutine c_group_get_path_name_bufferify
 
-        function c_group_get_parent(self, SHT_crv) &
-                result(SHT_rv) &
+        function c_group_get_parent(self, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_get_parent")
             use iso_c_binding, only : C_PTR
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_group_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_get_parent
 
         pure function c_group_get_num_groups(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_get_num_groups")
             use iso_c_binding, only : C_SIZE_T
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(C_SIZE_T) :: SHT_rv
         end function c_group_get_num_groups
 
@@ -749,43 +744,44 @@ pure function c_group_get_num_views(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_get_num_views")
             use iso_c_binding, only : C_SIZE_T
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(C_SIZE_T) :: SHT_rv
         end function c_group_get_num_views
 
-        function c_group_get_data_store(self, SHT_crv) &
-                result(SHT_rv) &
+        function c_group_get_data_store(self, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_get_data_store")
             use iso_c_binding, only : C_PTR
-            import :: SIDRE_SHROUD_datastore_capsule, SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_datastore_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_get_data_store
 
         pure function c_group_has_view(self, path) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_has_view")
             use iso_c_binding, only : C_BOOL, C_CHAR
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
             logical(C_BOOL) :: SHT_rv
         end function c_group_has_view
 
-        pure function c_group_has_view_bufferify(self, path, Lpath) &
+        pure function c_group_has_view_bufferify(self, path, &
+                SHT_path_len) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_has_view_bufferify")
             use iso_c_binding, only : C_BOOL, C_CHAR, C_INT
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
+            integer(C_INT), value, intent(IN) :: SHT_path_len
             logical(C_BOOL) :: SHT_rv
         end function c_group_has_view_bufferify
 
@@ -793,23 +789,23 @@ pure function c_group_has_child_view(self, name) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_has_child_view")
             use iso_c_binding, only : C_BOOL, C_CHAR
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: name(*)
             logical(C_BOOL) :: SHT_rv
         end function c_group_has_child_view
 
         pure function c_group_has_child_view_bufferify(self, name, &
-                Lname) &
+                SHT_name_len) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_has_child_view_bufferify")
             use iso_c_binding, only : C_BOOL, C_CHAR, C_INT
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: name(*)
-            integer(C_INT), value, intent(IN) :: Lname
+            integer(C_INT), value, intent(IN) :: SHT_name_len
             logical(C_BOOL) :: SHT_rv
         end function c_group_has_child_view_bufferify
 
@@ -817,23 +813,23 @@ pure function c_group_get_view_index(self, name) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_get_view_index")
             use iso_c_binding, only : C_CHAR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: name(*)
             integer(SIDRE_IndexType) :: SHT_rv
         end function c_group_get_view_index
 
         pure function c_group_get_view_index_bufferify(self, name, &
-                Lname) &
+                SHT_name_len) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_get_view_index_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: name(*)
-            integer(C_INT), value, intent(IN) :: Lname
+            integer(C_INT), value, intent(IN) :: SHT_name_len
             integer(SIDRE_IndexType) :: SHT_rv
         end function c_group_get_view_index_bufferify
 
@@ -841,666 +837,773 @@ pure function c_group_get_view_name(self, idx) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_get_view_name")
             use iso_c_binding, only : C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(SIDRE_IndexType), value, intent(IN) :: idx
             type(C_PTR) SHT_rv
         end function c_group_get_view_name
 
-        subroutine c_group_get_view_name_bufferify(self, idx, SHF_rv, &
-                NSHF_rv) &
-                bind(C, name="SIDRE_Group_get_view_name_bufferify")
-            use iso_c_binding, only : C_CHAR, C_INT
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule
-            implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
-            integer(SIDRE_IndexType), value, intent(IN) :: idx
-            character(kind=C_CHAR), intent(OUT) :: SHF_rv(*)
-            integer(C_INT), value, intent(IN) :: NSHF_rv
-        end subroutine c_group_get_view_name_bufferify
-
-        function c_group_get_view_from_name(self, path, SHT_crv) &
-                result(SHT_rv) &
+        subroutine c_group_get_view_name_int32_t_bufferify(self, idx, &
+                SHT_rv, SHT_rv_len) &
+                bind(C, name="SIDRE_Group_get_view_name_int32_t_bufferify")
+            use iso_c_binding, only : C_CHAR, C_INT, C_INT32_T
+            import :: SIDRE_SHROUD_capsule_data
+            implicit none
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            integer(C_INT32_T), value, intent(IN) :: idx
+            character(kind=C_CHAR), intent(OUT) :: SHT_rv(*)
+            integer(C_INT), value, intent(IN) :: SHT_rv_len
+        end subroutine c_group_get_view_name_int32_t_bufferify
+
+        subroutine c_group_get_view_name_int64_t_bufferify(self, idx, &
+                SHT_rv, SHT_rv_len) &
+                bind(C, name="SIDRE_Group_get_view_name_int64_t_bufferify")
+            use iso_c_binding, only : C_CHAR, C_INT, C_INT64_T
+            import :: SIDRE_SHROUD_capsule_data
+            implicit none
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            integer(C_INT64_T), value, intent(IN) :: idx
+            character(kind=C_CHAR), intent(OUT) :: SHT_rv(*)
+            integer(C_INT), value, intent(IN) :: SHT_rv_len
+        end subroutine c_group_get_view_name_int64_t_bufferify
+
+        function c_group_get_view_from_name(self, path, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_get_view_from_name")
             use iso_c_binding, only : C_CHAR, C_PTR
-            import :: SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_get_view_from_name
 
-        function c_group_get_view_from_name_bufferify(self, path, Lpath, &
-                SHT_crv) &
-                result(SHT_rv) &
+        function c_group_get_view_from_name_bufferify(self, path, &
+                SHT_path_len, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_get_view_from_name_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT, C_PTR
-            import :: SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            integer(C_INT), value, intent(IN) :: SHT_path_len
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_get_view_from_name_bufferify
 
-        function c_group_get_view_from_index(self, idx, SHT_crv) &
-                result(SHT_rv) &
+        function c_group_get_view_from_index(self, idx, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_get_view_from_index")
             use iso_c_binding, only : C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(SIDRE_IndexType), value, intent(IN) :: idx
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_get_view_from_index
 
+        function c_group_get_view_from_index_int32_t(self, idx, SHT_rv) &
+                result(SHT_prv) &
+                bind(C, name="SIDRE_Group_get_view_from_index_int32_t")
+            use iso_c_binding, only : C_INT32_T, C_PTR
+            import :: SIDRE_SHROUD_capsule_data
+            implicit none
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            integer(C_INT32_T), value, intent(IN) :: idx
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
+        end function c_group_get_view_from_index_int32_t
+
+        function c_group_get_view_from_index_int64_t(self, idx, SHT_rv) &
+                result(SHT_prv) &
+                bind(C, name="SIDRE_Group_get_view_from_index_int64_t")
+            use iso_c_binding, only : C_INT64_T, C_PTR
+            import :: SIDRE_SHROUD_capsule_data
+            implicit none
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            integer(C_INT64_T), value, intent(IN) :: idx
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
+        end function c_group_get_view_from_index_int64_t
+
         pure function c_group_get_first_valid_view_index(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_get_first_valid_view_index")
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(SIDRE_IndexType) :: SHT_rv
         end function c_group_get_first_valid_view_index
 
         pure function c_group_get_next_valid_view_index(self, idx) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_get_next_valid_view_index")
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(SIDRE_IndexType), value, intent(IN) :: idx
             integer(SIDRE_IndexType) :: SHT_rv
         end function c_group_get_next_valid_view_index
 
-        function c_group_create_view_empty(self, path, SHT_crv) &
-                result(SHT_rv) &
+        function c_group_create_view_empty(self, path, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_empty")
             use iso_c_binding, only : C_CHAR, C_PTR
-            import :: SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_empty
 
-        function c_group_create_view_empty_bufferify(self, path, Lpath, &
-                SHT_crv) &
-                result(SHT_rv) &
+        function c_group_create_view_empty_bufferify(self, path, &
+                SHT_path_len, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_empty_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT, C_PTR
-            import :: SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            integer(C_INT), value, intent(IN) :: SHT_path_len
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_empty_bufferify
 
         function c_group_create_view_from_type(self, path, type, &
-                num_elems, SHT_crv) &
-                result(SHT_rv) &
+                num_elems, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_from_type")
             use iso_c_binding, only : C_CHAR, C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
             integer(TypeID), value, intent(IN) :: type
             integer(SIDRE_IndexType), value, intent(IN) :: num_elems
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_from_type
 
-        function c_group_create_view_from_type_bufferify(self, path, &
-                Lpath, type, num_elems, SHT_crv) &
-                result(SHT_rv) &
-                bind(C, name="SIDRE_Group_create_view_from_type_bufferify")
-            use iso_c_binding, only : C_CHAR, C_INT, C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule, TypeID
+        function c_group_create_view_from_type_int32_t_bufferify(self, &
+                path, SHT_path_len, type, num_elems, SHT_rv) &
+                result(SHT_prv) &
+                bind(C, name="SIDRE_Group_create_view_from_type_int32_t_bufferify")
+            use iso_c_binding, only : C_CHAR, C_INT, C_INT32_T, C_PTR
+            import :: SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
+            integer(C_INT), value, intent(IN) :: SHT_path_len
             integer(TypeID), value, intent(IN) :: type
-            integer(SIDRE_IndexType), value, intent(IN) :: num_elems
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
-        end function c_group_create_view_from_type_bufferify
+            integer(C_INT32_T), value, intent(IN) :: num_elems
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
+        end function c_group_create_view_from_type_int32_t_bufferify
+
+        function c_group_create_view_from_type_int64_t_bufferify(self, &
+                path, SHT_path_len, type, num_elems, SHT_rv) &
+                result(SHT_prv) &
+                bind(C, name="SIDRE_Group_create_view_from_type_int64_t_bufferify")
+            use iso_c_binding, only : C_CHAR, C_INT, C_INT64_T, C_PTR
+            import :: SIDRE_SHROUD_capsule_data, TypeID
+            implicit none
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            character(kind=C_CHAR), intent(IN) :: path(*)
+            integer(C_INT), value, intent(IN) :: SHT_path_len
+            integer(TypeID), value, intent(IN) :: type
+            integer(C_INT64_T), value, intent(IN) :: num_elems
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
+        end function c_group_create_view_from_type_int64_t_bufferify
 
         function c_group_create_view_with_shape_base(self, path, type, &
-                ndims, shape, SHT_crv) &
-                result(SHT_rv) &
+                ndims, shape, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_with_shape_base")
             use iso_c_binding, only : C_CHAR, C_INT, C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
             integer(TypeID), value, intent(IN) :: type
             integer(C_INT), value, intent(IN) :: ndims
             integer(SIDRE_IndexType), intent(IN) :: shape(*)
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_with_shape_base
 
         function c_group_create_view_with_shape_base_bufferify(self, &
-                path, Lpath, type, ndims, shape, SHT_crv) &
-                result(SHT_rv) &
+                path, SHT_path_len, type, ndims, shape, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_with_shape_base_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT, C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
+            integer(C_INT), value, intent(IN) :: SHT_path_len
             integer(TypeID), value, intent(IN) :: type
             integer(C_INT), value, intent(IN) :: ndims
             integer(SIDRE_IndexType), intent(IN) :: shape(*)
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_with_shape_base_bufferify
 
         function c_group_create_view_into_buffer(self, path, buff, &
-                SHT_crv) &
-                result(SHT_rv) &
+                SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_into_buffer")
             use iso_c_binding, only : C_CHAR, C_PTR
-            import :: SIDRE_SHROUD_buffer_capsule, SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            type(SIDRE_SHROUD_buffer_capsule), intent(INOUT) :: buff
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: buff
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_into_buffer
 
         function c_group_create_view_into_buffer_bufferify(self, path, &
-                Lpath, buff, SHT_crv) &
-                result(SHT_rv) &
+                SHT_path_len, buff, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_into_buffer_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT, C_PTR
-            import :: SIDRE_SHROUD_buffer_capsule, SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
-            type(SIDRE_SHROUD_buffer_capsule), intent(INOUT) :: buff
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            integer(C_INT), value, intent(IN) :: SHT_path_len
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: buff
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_into_buffer_bufferify
 
         function c_group_create_view_from_type_and_buffer(self, path, &
-                type, num_elems, buff, SHT_crv) &
-                result(SHT_rv) &
+                type, num_elems, buff, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_from_type_and_buffer")
             use iso_c_binding, only : C_CHAR, C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_buffer_capsule, SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
             integer(TypeID), value, intent(IN) :: type
             integer(SIDRE_IndexType), value, intent(IN) :: num_elems
-            type(SIDRE_SHROUD_buffer_capsule), intent(INOUT) :: buff
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: buff
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_from_type_and_buffer
 
-        function c_group_create_view_from_type_and_buffer_bufferify( &
-                self, path, Lpath, type, num_elems, buff, SHT_crv) &
-                result(SHT_rv) &
-                bind(C, name="SIDRE_Group_create_view_from_type_and_buffer_bufferify")
-            use iso_c_binding, only : C_CHAR, C_INT, C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_buffer_capsule, SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule, TypeID
+        function c_group_create_view_from_type_and_buffer_int32_t_bufferify( &
+                self, path, SHT_path_len, type, num_elems, buff, SHT_rv) &
+                result(SHT_prv) &
+                bind(C, name="SIDRE_Group_create_view_from_type_and_buffer_int32_t_bufferify")
+            use iso_c_binding, only : C_CHAR, C_INT, C_INT32_T, C_PTR
+            import :: SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
+            integer(C_INT), value, intent(IN) :: SHT_path_len
             integer(TypeID), value, intent(IN) :: type
-            integer(SIDRE_IndexType), value, intent(IN) :: num_elems
-            type(SIDRE_SHROUD_buffer_capsule), intent(INOUT) :: buff
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
-        end function c_group_create_view_from_type_and_buffer_bufferify
+            integer(C_INT32_T), value, intent(IN) :: num_elems
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: buff
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
+        end function c_group_create_view_from_type_and_buffer_int32_t_bufferify
+
+        function c_group_create_view_from_type_and_buffer_int64_t_bufferify( &
+                self, path, SHT_path_len, type, num_elems, buff, SHT_rv) &
+                result(SHT_prv) &
+                bind(C, name="SIDRE_Group_create_view_from_type_and_buffer_int64_t_bufferify")
+            use iso_c_binding, only : C_CHAR, C_INT, C_INT64_T, C_PTR
+            import :: SIDRE_SHROUD_capsule_data, TypeID
+            implicit none
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            character(kind=C_CHAR), intent(IN) :: path(*)
+            integer(C_INT), value, intent(IN) :: SHT_path_len
+            integer(TypeID), value, intent(IN) :: type
+            integer(C_INT64_T), value, intent(IN) :: num_elems
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: buff
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
+        end function c_group_create_view_from_type_and_buffer_int64_t_bufferify
 
         function c_group_create_view_with_shape_and_buffer(self, path, &
-                type, ndims, shape, buff, SHT_crv) &
-                result(SHT_rv) &
+                type, ndims, shape, buff, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_with_shape_and_buffer")
             use iso_c_binding, only : C_CHAR, C_INT, C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_buffer_capsule, SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
             integer(TypeID), value, intent(IN) :: type
             integer(C_INT), value, intent(IN) :: ndims
             integer(SIDRE_IndexType), intent(IN) :: shape(*)
-            type(SIDRE_SHROUD_buffer_capsule), intent(INOUT) :: buff
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: buff
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_with_shape_and_buffer
 
         function c_group_create_view_with_shape_and_buffer_bufferify( &
-                self, path, Lpath, type, ndims, shape, buff, SHT_crv) &
-                result(SHT_rv) &
+                self, path, SHT_path_len, type, ndims, shape, buff, &
+                SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_with_shape_and_buffer_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT, C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_buffer_capsule, SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
+            integer(C_INT), value, intent(IN) :: SHT_path_len
             integer(TypeID), value, intent(IN) :: type
             integer(C_INT), value, intent(IN) :: ndims
             integer(SIDRE_IndexType), intent(IN) :: shape(*)
-            type(SIDRE_SHROUD_buffer_capsule), intent(INOUT) :: buff
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: buff
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_with_shape_and_buffer_bufferify
 
         function c_group_create_view_external(self, path, external_ptr, &
-                SHT_crv) &
-                result(SHT_rv) &
+                SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_external")
             use iso_c_binding, only : C_CHAR, C_PTR
-            import :: SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
             type(C_PTR), value, intent(IN) :: external_ptr
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_external
 
         function c_group_create_view_external_bufferify(self, path, &
-                Lpath, external_ptr, SHT_crv) &
-                result(SHT_rv) &
+                SHT_path_len, external_ptr, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_external_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT, C_PTR
-            import :: SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
+            integer(C_INT), value, intent(IN) :: SHT_path_len
             type(C_PTR), value, intent(IN) :: external_ptr
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_external_bufferify
 
         function c_group_create_view_from_type_external(self, path, &
-                type, num_elems, external_ptr, SHT_crv) &
-                result(SHT_rv) &
+                type, num_elems, external_ptr, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_from_type_external")
             use iso_c_binding, only : C_CHAR, C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
             integer(TypeID), value, intent(IN) :: type
             integer(SIDRE_IndexType), value, intent(IN) :: num_elems
             type(C_PTR), value, intent(IN) :: external_ptr
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_from_type_external
 
-        function c_group_create_view_from_type_external_bufferify(self, &
-                path, Lpath, type, num_elems, external_ptr, SHT_crv) &
-                result(SHT_rv) &
-                bind(C, name="SIDRE_Group_create_view_from_type_external_bufferify")
-            use iso_c_binding, only : C_CHAR, C_INT, C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule, TypeID
+        function c_group_create_view_from_type_external_int32_t_bufferify( &
+                self, path, SHT_path_len, type, num_elems, external_ptr, &
+                SHT_rv) &
+                result(SHT_prv) &
+                bind(C, name="SIDRE_Group_create_view_from_type_external_int32_t_bufferify")
+            use iso_c_binding, only : C_CHAR, C_INT, C_INT32_T, C_PTR
+            import :: SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
+            integer(C_INT), value, intent(IN) :: SHT_path_len
             integer(TypeID), value, intent(IN) :: type
-            integer(SIDRE_IndexType), value, intent(IN) :: num_elems
+            integer(C_INT32_T), value, intent(IN) :: num_elems
             type(C_PTR), value, intent(IN) :: external_ptr
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
-        end function c_group_create_view_from_type_external_bufferify
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
+        end function c_group_create_view_from_type_external_int32_t_bufferify
+
+        function c_group_create_view_from_type_external_int64_t_bufferify( &
+                self, path, SHT_path_len, type, num_elems, external_ptr, &
+                SHT_rv) &
+                result(SHT_prv) &
+                bind(C, name="SIDRE_Group_create_view_from_type_external_int64_t_bufferify")
+            use iso_c_binding, only : C_CHAR, C_INT, C_INT64_T, C_PTR
+            import :: SIDRE_SHROUD_capsule_data, TypeID
+            implicit none
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            character(kind=C_CHAR), intent(IN) :: path(*)
+            integer(C_INT), value, intent(IN) :: SHT_path_len
+            integer(TypeID), value, intent(IN) :: type
+            integer(C_INT64_T), value, intent(IN) :: num_elems
+            type(C_PTR), value, intent(IN) :: external_ptr
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
+        end function c_group_create_view_from_type_external_int64_t_bufferify
 
         function c_group_create_view_with_shape_external(self, path, &
-                type, ndims, shape, external_ptr, SHT_crv) &
-                result(SHT_rv) &
+                type, ndims, shape, external_ptr, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_with_shape_external")
             use iso_c_binding, only : C_CHAR, C_INT, C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
             integer(TypeID), value, intent(IN) :: type
             integer(C_INT), value, intent(IN) :: ndims
             integer(SIDRE_IndexType), intent(IN) :: shape(*)
             type(C_PTR), value, intent(IN) :: external_ptr
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_with_shape_external
 
         function c_group_create_view_with_shape_external_bufferify(self, &
-                path, Lpath, type, ndims, shape, external_ptr, SHT_crv) &
-                result(SHT_rv) &
+                path, SHT_path_len, type, ndims, shape, external_ptr, &
+                SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_with_shape_external_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT, C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
+            integer(C_INT), value, intent(IN) :: SHT_path_len
             integer(TypeID), value, intent(IN) :: type
             integer(C_INT), value, intent(IN) :: ndims
             integer(SIDRE_IndexType), intent(IN) :: shape(*)
             type(C_PTR), value, intent(IN) :: external_ptr
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_with_shape_external_bufferify
 
         function c_group_create_view_and_allocate_nelems(self, path, &
-                type, num_elems, SHT_crv) &
-                result(SHT_rv) &
+                type, num_elems, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_and_allocate_nelems")
             use iso_c_binding, only : C_CHAR, C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
             integer(TypeID), value, intent(IN) :: type
             integer(SIDRE_IndexType), value, intent(IN) :: num_elems
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_and_allocate_nelems
 
-        function c_group_create_view_and_allocate_nelems_bufferify(self, &
-                path, Lpath, type, num_elems, SHT_crv) &
-                result(SHT_rv) &
-                bind(C, name="SIDRE_Group_create_view_and_allocate_nelems_bufferify")
-            use iso_c_binding, only : C_CHAR, C_INT, C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule, TypeID
+        function c_group_create_view_and_allocate_nelems_int32_t_bufferify( &
+                self, path, SHT_path_len, type, num_elems, SHT_rv) &
+                result(SHT_prv) &
+                bind(C, name="SIDRE_Group_create_view_and_allocate_nelems_int32_t_bufferify")
+            use iso_c_binding, only : C_CHAR, C_INT, C_INT32_T, C_PTR
+            import :: SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
+            integer(C_INT), value, intent(IN) :: SHT_path_len
             integer(TypeID), value, intent(IN) :: type
-            integer(SIDRE_IndexType), value, intent(IN) :: num_elems
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
-        end function c_group_create_view_and_allocate_nelems_bufferify
+            integer(C_INT32_T), value, intent(IN) :: num_elems
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
+        end function c_group_create_view_and_allocate_nelems_int32_t_bufferify
+
+        function c_group_create_view_and_allocate_nelems_int64_t_bufferify( &
+                self, path, SHT_path_len, type, num_elems, SHT_rv) &
+                result(SHT_prv) &
+                bind(C, name="SIDRE_Group_create_view_and_allocate_nelems_int64_t_bufferify")
+            use iso_c_binding, only : C_CHAR, C_INT, C_INT64_T, C_PTR
+            import :: SIDRE_SHROUD_capsule_data, TypeID
+            implicit none
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            character(kind=C_CHAR), intent(IN) :: path(*)
+            integer(C_INT), value, intent(IN) :: SHT_path_len
+            integer(TypeID), value, intent(IN) :: type
+            integer(C_INT64_T), value, intent(IN) :: num_elems
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
+        end function c_group_create_view_and_allocate_nelems_int64_t_bufferify
 
         function c_group_create_view_with_shape_and_allocate(self, path, &
-                type, ndims, shape, SHT_crv) &
-                result(SHT_rv) &
+                type, ndims, shape, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_with_shape_and_allocate")
             use iso_c_binding, only : C_CHAR, C_INT, C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
             integer(TypeID), value, intent(IN) :: type
             integer(C_INT), value, intent(IN) :: ndims
             integer(SIDRE_IndexType), intent(IN) :: shape(*)
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_with_shape_and_allocate
 
         function c_group_create_view_with_shape_and_allocate_bufferify( &
-                self, path, Lpath, type, ndims, shape, SHT_crv) &
-                result(SHT_rv) &
+                self, path, SHT_path_len, type, ndims, shape, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_with_shape_and_allocate_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT, C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
+            integer(C_INT), value, intent(IN) :: SHT_path_len
             integer(TypeID), value, intent(IN) :: type
             integer(C_INT), value, intent(IN) :: ndims
             integer(SIDRE_IndexType), intent(IN) :: shape(*)
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_with_shape_and_allocate_bufferify
 
         function c_group_create_view_scalar_int(self, path, value, &
-                SHT_crv) &
-                result(SHT_rv) &
+                SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_scalar_int")
             use iso_c_binding, only : C_CHAR, C_INT, C_PTR
-            import :: SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
             integer(C_INT), value, intent(IN) :: value
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_scalar_int
 
         function c_group_create_view_scalar_bufferify_int(self, path, &
-                Lpath, value, SHT_crv) &
-                result(SHT_rv) &
+                SHT_path_len, value, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_scalar_bufferify_int")
             use iso_c_binding, only : C_CHAR, C_INT, C_PTR
-            import :: SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
+            integer(C_INT), value, intent(IN) :: SHT_path_len
             integer(C_INT), value, intent(IN) :: value
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_scalar_bufferify_int
 
         function c_group_create_view_scalar_long(self, path, value, &
-                SHT_crv) &
-                result(SHT_rv) &
+                SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_scalar_long")
             use iso_c_binding, only : C_CHAR, C_LONG, C_PTR
-            import :: SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
             integer(C_LONG), value, intent(IN) :: value
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_scalar_long
 
         function c_group_create_view_scalar_bufferify_long(self, path, &
-                Lpath, value, SHT_crv) &
-                result(SHT_rv) &
+                SHT_path_len, value, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_scalar_bufferify_long")
             use iso_c_binding, only : C_CHAR, C_INT, C_LONG, C_PTR
-            import :: SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
+            integer(C_INT), value, intent(IN) :: SHT_path_len
             integer(C_LONG), value, intent(IN) :: value
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_scalar_bufferify_long
 
         function c_group_create_view_scalar_float(self, path, value, &
-                SHT_crv) &
-                result(SHT_rv) &
+                SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_scalar_float")
             use iso_c_binding, only : C_CHAR, C_FLOAT, C_PTR
-            import :: SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
             real(C_FLOAT), value, intent(IN) :: value
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_scalar_float
 
         function c_group_create_view_scalar_bufferify_float(self, path, &
-                Lpath, value, SHT_crv) &
-                result(SHT_rv) &
+                SHT_path_len, value, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_scalar_bufferify_float")
             use iso_c_binding, only : C_CHAR, C_FLOAT, C_INT, C_PTR
-            import :: SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
+            integer(C_INT), value, intent(IN) :: SHT_path_len
             real(C_FLOAT), value, intent(IN) :: value
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_scalar_bufferify_float
 
         function c_group_create_view_scalar_double(self, path, value, &
-                SHT_crv) &
-                result(SHT_rv) &
+                SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_scalar_double")
             use iso_c_binding, only : C_CHAR, C_DOUBLE, C_PTR
-            import :: SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
             real(C_DOUBLE), value, intent(IN) :: value
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_scalar_double
 
         function c_group_create_view_scalar_bufferify_double(self, path, &
-                Lpath, value, SHT_crv) &
-                result(SHT_rv) &
+                SHT_path_len, value, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_scalar_bufferify_double")
             use iso_c_binding, only : C_CHAR, C_DOUBLE, C_INT, C_PTR
-            import :: SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
+            integer(C_INT), value, intent(IN) :: SHT_path_len
             real(C_DOUBLE), value, intent(IN) :: value
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_scalar_bufferify_double
 
-        function c_group_create_view_string(self, path, value, SHT_crv) &
-                result(SHT_rv) &
+        function c_group_create_view_string(self, path, value, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_string")
             use iso_c_binding, only : C_CHAR, C_PTR
-            import :: SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
             character(kind=C_CHAR), intent(IN) :: value(*)
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_string
 
-        function c_group_create_view_string_bufferify(self, path, Lpath, &
-                value, Lvalue, SHT_crv) &
-                result(SHT_rv) &
+        function c_group_create_view_string_bufferify(self, path, &
+                SHT_path_len, value, SHT_value_len, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_view_string_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT, C_PTR
-            import :: SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
+            integer(C_INT), value, intent(IN) :: SHT_path_len
             character(kind=C_CHAR), intent(IN) :: value(*)
-            integer(C_INT), value, intent(IN) :: Lvalue
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            integer(C_INT), value, intent(IN) :: SHT_value_len
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_view_string_bufferify
 
         subroutine c_group_destroy_view(self, path) &
                 bind(C, name="SIDRE_Group_destroy_view")
             use iso_c_binding, only : C_CHAR
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
         end subroutine c_group_destroy_view
 
-        subroutine c_group_destroy_view_bufferify(self, path, Lpath) &
+        subroutine c_group_destroy_view_bufferify(self, path, &
+                SHT_path_len) &
                 bind(C, name="SIDRE_Group_destroy_view_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
+            integer(C_INT), value, intent(IN) :: SHT_path_len
         end subroutine c_group_destroy_view_bufferify
 
         subroutine c_group_destroy_view_and_data_name(self, path) &
                 bind(C, name="SIDRE_Group_destroy_view_and_data_name")
             use iso_c_binding, only : C_CHAR
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
         end subroutine c_group_destroy_view_and_data_name
 
         subroutine c_group_destroy_view_and_data_name_bufferify(self, &
-                path, Lpath) &
+                path, SHT_path_len) &
                 bind(C, name="SIDRE_Group_destroy_view_and_data_name_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
+            integer(C_INT), value, intent(IN) :: SHT_path_len
         end subroutine c_group_destroy_view_and_data_name_bufferify
 
         subroutine c_group_destroy_view_and_data_index(self, idx) &
                 bind(C, name="SIDRE_Group_destroy_view_and_data_index")
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(SIDRE_IndexType), value, intent(IN) :: idx
         end subroutine c_group_destroy_view_and_data_index
 
-        function c_group_move_view(self, view, SHT_crv) &
-                result(SHT_rv) &
+        function c_group_move_view(self, view, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_move_view")
             use iso_c_binding, only : C_PTR
-            import :: SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_view_capsule), intent(INOUT) :: view
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: view
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_move_view
 
-        function c_group_copy_view(self, view, SHT_crv) &
-                result(SHT_rv) &
+        function c_group_copy_view(self, view, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_copy_view")
             use iso_c_binding, only : C_PTR
-            import :: SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_view_capsule), intent(INOUT) :: view
-            type(SIDRE_SHROUD_view_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: view
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_copy_view
 
         function c_group_has_group(self, path) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_has_group")
             use iso_c_binding, only : C_BOOL, C_CHAR
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
             logical(C_BOOL) :: SHT_rv
         end function c_group_has_group
 
-        function c_group_has_group_bufferify(self, path, Lpath) &
+        function c_group_has_group_bufferify(self, path, SHT_path_len) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_has_group_bufferify")
             use iso_c_binding, only : C_BOOL, C_CHAR, C_INT
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
+            integer(C_INT), value, intent(IN) :: SHT_path_len
             logical(C_BOOL) :: SHT_rv
         end function c_group_has_group_bufferify
 
@@ -1508,22 +1611,23 @@ function c_group_has_child_group(self, name) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_has_child_group")
             use iso_c_binding, only : C_BOOL, C_CHAR
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: name(*)
             logical(C_BOOL) :: SHT_rv
         end function c_group_has_child_group
 
-        function c_group_has_child_group_bufferify(self, name, Lname) &
+        function c_group_has_child_group_bufferify(self, name, &
+                SHT_name_len) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_has_child_group_bufferify")
             use iso_c_binding, only : C_BOOL, C_CHAR, C_INT
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: name(*)
-            integer(C_INT), value, intent(IN) :: Lname
+            integer(C_INT), value, intent(IN) :: SHT_name_len
             logical(C_BOOL) :: SHT_rv
         end function c_group_has_child_group_bufferify
 
@@ -1531,23 +1635,23 @@ pure function c_group_get_group_index(self, name) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_get_group_index")
             use iso_c_binding, only : C_CHAR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: name(*)
             integer(SIDRE_IndexType) :: SHT_rv
         end function c_group_get_group_index
 
         pure function c_group_get_group_index_bufferify(self, name, &
-                Lname) &
+                SHT_name_len) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_get_group_index_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: name(*)
-            integer(C_INT), value, intent(IN) :: Lname
+            integer(C_INT), value, intent(IN) :: SHT_name_len
             integer(SIDRE_IndexType) :: SHT_rv
         end function c_group_get_group_index_bufferify
 
@@ -1555,290 +1659,325 @@ pure function c_group_get_group_name(self, idx) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_get_group_name")
             use iso_c_binding, only : C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(SIDRE_IndexType), value, intent(IN) :: idx
             type(C_PTR) SHT_rv
         end function c_group_get_group_name
 
-        subroutine c_group_get_group_name_bufferify(self, idx, SHF_rv, &
-                NSHF_rv) &
-                bind(C, name="SIDRE_Group_get_group_name_bufferify")
-            use iso_c_binding, only : C_CHAR, C_INT
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule
-            implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
-            integer(SIDRE_IndexType), value, intent(IN) :: idx
-            character(kind=C_CHAR), intent(OUT) :: SHF_rv(*)
-            integer(C_INT), value, intent(IN) :: NSHF_rv
-        end subroutine c_group_get_group_name_bufferify
-
-        function c_group_get_group_from_name(self, path, SHT_crv) &
-                result(SHT_rv) &
+        subroutine c_group_get_group_name_int32_t_bufferify(self, idx, &
+                SHT_rv, SHT_rv_len) &
+                bind(C, name="SIDRE_Group_get_group_name_int32_t_bufferify")
+            use iso_c_binding, only : C_CHAR, C_INT, C_INT32_T
+            import :: SIDRE_SHROUD_capsule_data
+            implicit none
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            integer(C_INT32_T), value, intent(IN) :: idx
+            character(kind=C_CHAR), intent(OUT) :: SHT_rv(*)
+            integer(C_INT), value, intent(IN) :: SHT_rv_len
+        end subroutine c_group_get_group_name_int32_t_bufferify
+
+        subroutine c_group_get_group_name_int64_t_bufferify(self, idx, &
+                SHT_rv, SHT_rv_len) &
+                bind(C, name="SIDRE_Group_get_group_name_int64_t_bufferify")
+            use iso_c_binding, only : C_CHAR, C_INT, C_INT64_T
+            import :: SIDRE_SHROUD_capsule_data
+            implicit none
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            integer(C_INT64_T), value, intent(IN) :: idx
+            character(kind=C_CHAR), intent(OUT) :: SHT_rv(*)
+            integer(C_INT), value, intent(IN) :: SHT_rv_len
+        end subroutine c_group_get_group_name_int64_t_bufferify
+
+        function c_group_get_group_from_name(self, path, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_get_group_from_name")
             use iso_c_binding, only : C_CHAR, C_PTR
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            type(SIDRE_SHROUD_group_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_get_group_from_name
 
         function c_group_get_group_from_name_bufferify(self, path, &
-                Lpath, SHT_crv) &
-                result(SHT_rv) &
+                SHT_path_len, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_get_group_from_name_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT, C_PTR
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
-            type(SIDRE_SHROUD_group_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            integer(C_INT), value, intent(IN) :: SHT_path_len
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_get_group_from_name_bufferify
 
-        function c_group_get_group_from_index(self, idx, SHT_crv) &
-                result(SHT_rv) &
+        function c_group_get_group_from_index(self, idx, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_get_group_from_index")
             use iso_c_binding, only : C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(SIDRE_IndexType), value, intent(IN) :: idx
-            type(SIDRE_SHROUD_group_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_get_group_from_index
 
+        function c_group_get_group_from_index_int32_t(self, idx, SHT_rv) &
+                result(SHT_prv) &
+                bind(C, name="SIDRE_Group_get_group_from_index_int32_t")
+            use iso_c_binding, only : C_INT32_T, C_PTR
+            import :: SIDRE_SHROUD_capsule_data
+            implicit none
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            integer(C_INT32_T), value, intent(IN) :: idx
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
+        end function c_group_get_group_from_index_int32_t
+
+        function c_group_get_group_from_index_int64_t(self, idx, SHT_rv) &
+                result(SHT_prv) &
+                bind(C, name="SIDRE_Group_get_group_from_index_int64_t")
+            use iso_c_binding, only : C_INT64_T, C_PTR
+            import :: SIDRE_SHROUD_capsule_data
+            implicit none
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            integer(C_INT64_T), value, intent(IN) :: idx
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
+        end function c_group_get_group_from_index_int64_t
+
         pure function c_group_get_first_valid_group_index(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_get_first_valid_group_index")
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(SIDRE_IndexType) :: SHT_rv
         end function c_group_get_first_valid_group_index
 
         pure function c_group_get_next_valid_group_index(self, idx) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_get_next_valid_group_index")
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(SIDRE_IndexType), value, intent(IN) :: idx
             integer(SIDRE_IndexType) :: SHT_rv
         end function c_group_get_next_valid_group_index
 
-        function c_group_create_group(self, path, SHT_crv) &
-                result(SHT_rv) &
+        function c_group_create_group(self, path, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_group")
             use iso_c_binding, only : C_CHAR, C_PTR
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            type(SIDRE_SHROUD_group_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_group
 
-        function c_group_create_group_bufferify(self, path, Lpath, &
-                SHT_crv) &
-                result(SHT_rv) &
+        function c_group_create_group_bufferify(self, path, &
+                SHT_path_len, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_create_group_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT, C_PTR
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
-            type(SIDRE_SHROUD_group_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            integer(C_INT), value, intent(IN) :: SHT_path_len
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_create_group_bufferify
 
         subroutine c_group_destroy_group_name(self, path) &
                 bind(C, name="SIDRE_Group_destroy_group_name")
             use iso_c_binding, only : C_CHAR
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
         end subroutine c_group_destroy_group_name
 
         subroutine c_group_destroy_group_name_bufferify(self, path, &
-                Lpath) &
+                SHT_path_len) &
                 bind(C, name="SIDRE_Group_destroy_group_name_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: path(*)
-            integer(C_INT), value, intent(IN) :: Lpath
+            integer(C_INT), value, intent(IN) :: SHT_path_len
         end subroutine c_group_destroy_group_name_bufferify
 
         subroutine c_group_destroy_group_index(self, idx) &
                 bind(C, name="SIDRE_Group_destroy_group_index")
-            import :: SIDRE_IndexType, SIDRE_SHROUD_group_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(SIDRE_IndexType), value, intent(IN) :: idx
         end subroutine c_group_destroy_group_index
 
-        function c_group_move_group(self, grp, SHT_crv) &
-                result(SHT_rv) &
+        function c_group_move_group(self, grp, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_Group_move_group")
             use iso_c_binding, only : C_PTR
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_group_capsule), intent(INOUT) :: grp
-            type(SIDRE_SHROUD_group_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: grp
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_group_move_group
 
         subroutine c_group_print(self) &
                 bind(C, name="SIDRE_Group_print")
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
         end subroutine c_group_print
 
         pure function c_group_is_equivalent_to(self, other) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_is_equivalent_to")
             use iso_c_binding, only : C_BOOL
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: other
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: other
             logical(C_BOOL) :: SHT_rv
         end function c_group_is_equivalent_to
 
         subroutine c_group_save(self, file_path, protocol) &
                 bind(C, name="SIDRE_Group_save")
             use iso_c_binding, only : C_CHAR
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: file_path(*)
             character(kind=C_CHAR), intent(IN) :: protocol(*)
         end subroutine c_group_save
 
-        subroutine c_group_save_bufferify(self, file_path, Lfile_path, &
-                protocol, Lprotocol) &
+        subroutine c_group_save_bufferify(self, file_path, &
+                SHT_file_path_len, protocol, SHT_protocol_len) &
                 bind(C, name="SIDRE_Group_save_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: file_path(*)
-            integer(C_INT), value, intent(IN) :: Lfile_path
+            integer(C_INT), value, intent(IN) :: SHT_file_path_len
             character(kind=C_CHAR), intent(IN) :: protocol(*)
-            integer(C_INT), value, intent(IN) :: Lprotocol
+            integer(C_INT), value, intent(IN) :: SHT_protocol_len
         end subroutine c_group_save_bufferify
 
         subroutine c_group_load_0(self, file_path, protocol) &
                 bind(C, name="SIDRE_Group_load_0")
             use iso_c_binding, only : C_CHAR
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: file_path(*)
             character(kind=C_CHAR), intent(IN) :: protocol(*)
         end subroutine c_group_load_0
 
-        subroutine c_group_load_0_bufferify(self, file_path, Lfile_path, &
-                protocol, Lprotocol) &
+        subroutine c_group_load_0_bufferify(self, file_path, &
+                SHT_file_path_len, protocol, SHT_protocol_len) &
                 bind(C, name="SIDRE_Group_load_0_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: file_path(*)
-            integer(C_INT), value, intent(IN) :: Lfile_path
+            integer(C_INT), value, intent(IN) :: SHT_file_path_len
             character(kind=C_CHAR), intent(IN) :: protocol(*)
-            integer(C_INT), value, intent(IN) :: Lprotocol
+            integer(C_INT), value, intent(IN) :: SHT_protocol_len
         end subroutine c_group_load_0_bufferify
 
         subroutine c_group_load_1(self, file_path, protocol, &
                 preserve_contents) &
                 bind(C, name="SIDRE_Group_load_1")
             use iso_c_binding, only : C_BOOL, C_CHAR
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: file_path(*)
             character(kind=C_CHAR), intent(IN) :: protocol(*)
             logical(C_BOOL), value, intent(IN) :: preserve_contents
         end subroutine c_group_load_1
 
-        subroutine c_group_load_1_bufferify(self, file_path, Lfile_path, &
-                protocol, Lprotocol, preserve_contents) &
+        subroutine c_group_load_1_bufferify(self, file_path, &
+                SHT_file_path_len, protocol, SHT_protocol_len, &
+                preserve_contents) &
                 bind(C, name="SIDRE_Group_load_1_bufferify")
             use iso_c_binding, only : C_BOOL, C_CHAR, C_INT
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: file_path(*)
-            integer(C_INT), value, intent(IN) :: Lfile_path
+            integer(C_INT), value, intent(IN) :: SHT_file_path_len
             character(kind=C_CHAR), intent(IN) :: protocol(*)
-            integer(C_INT), value, intent(IN) :: Lprotocol
+            integer(C_INT), value, intent(IN) :: SHT_protocol_len
             logical(C_BOOL), value, intent(IN) :: preserve_contents
         end subroutine c_group_load_1_bufferify
 
         subroutine c_group_load_external_data(self, file_path) &
                 bind(C, name="SIDRE_Group_load_external_data")
             use iso_c_binding, only : C_CHAR
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: file_path(*)
         end subroutine c_group_load_external_data
 
         subroutine c_group_load_external_data_bufferify(self, file_path, &
-                Lfile_path) &
+                SHT_file_path_len) &
                 bind(C, name="SIDRE_Group_load_external_data_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: file_path(*)
-            integer(C_INT), value, intent(IN) :: Lfile_path
+            integer(C_INT), value, intent(IN) :: SHT_file_path_len
         end subroutine c_group_load_external_data_bufferify
 
         function c_group_rename(self, new_name) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_rename")
             use iso_c_binding, only : C_BOOL, C_CHAR
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: new_name(*)
             logical(C_BOOL) :: SHT_rv
         end function c_group_rename
 
-        function c_group_rename_bufferify(self, new_name, Lnew_name) &
+        function c_group_rename_bufferify(self, new_name, &
+                SHT_new_name_len) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_Group_rename_bufferify")
             use iso_c_binding, only : C_BOOL, C_CHAR, C_INT
-            import :: SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_group_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: new_name(*)
-            integer(C_INT), value, intent(IN) :: Lnew_name
+            integer(C_INT), value, intent(IN) :: SHT_new_name_len
             logical(C_BOOL) :: SHT_rv
         end function c_group_rename_bufferify
 
-        ! splicer begin class.Group.additional_interfaces
-        ! splicer end class.Group.additional_interfaces
-
         function c_view_get_index(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_get_index")
-            import :: SIDRE_IndexType, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(SIDRE_IndexType) :: SHT_rv
         end function c_view_get_index
 
@@ -1846,81 +1985,82 @@ pure function c_view_get_name(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_get_name")
             use iso_c_binding, only : C_PTR
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             type(C_PTR) SHT_rv
         end function c_view_get_name
 
-        subroutine c_view_get_name_bufferify(self, SHF_rv, NSHF_rv) &
+        subroutine c_view_get_name_bufferify(self, SHT_rv, SHT_rv_len) &
                 bind(C, name="SIDRE_View_get_name_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
-            character(kind=C_CHAR), intent(OUT) :: SHF_rv(*)
-            integer(C_INT), value, intent(IN) :: NSHF_rv
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            character(kind=C_CHAR), intent(OUT) :: SHT_rv(*)
+            integer(C_INT), value, intent(IN) :: SHT_rv_len
         end subroutine c_view_get_name_bufferify
 
-        subroutine c_view_get_path_bufferify(self, SHF_rv, NSHF_rv) &
+        subroutine c_view_get_path_bufferify(self, SHT_rv, SHT_rv_len) &
                 bind(C, name="SIDRE_View_get_path_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
-            character(kind=C_CHAR), intent(OUT) :: SHF_rv(*)
-            integer(C_INT), value, intent(IN) :: NSHF_rv
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            character(kind=C_CHAR), intent(OUT) :: SHT_rv(*)
+            integer(C_INT), value, intent(IN) :: SHT_rv_len
         end subroutine c_view_get_path_bufferify
 
-        subroutine c_view_get_path_name_bufferify(self, SHF_rv, NSHF_rv) &
+        subroutine c_view_get_path_name_bufferify(self, SHT_rv, &
+                SHT_rv_len) &
                 bind(C, name="SIDRE_View_get_path_name_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
-            character(kind=C_CHAR), intent(OUT) :: SHF_rv(*)
-            integer(C_INT), value, intent(IN) :: NSHF_rv
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            character(kind=C_CHAR), intent(OUT) :: SHT_rv(*)
+            integer(C_INT), value, intent(IN) :: SHT_rv_len
         end subroutine c_view_get_path_name_bufferify
 
-        function c_view_get_owning_group(self, SHT_crv) &
-                result(SHT_rv) &
+        function c_view_get_owning_group(self, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_View_get_owning_group")
             use iso_c_binding, only : C_PTR
-            import :: SIDRE_SHROUD_group_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_group_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_view_get_owning_group
 
         pure function c_view_has_buffer(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_has_buffer")
             use iso_c_binding, only : C_BOOL
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             logical(C_BOOL) :: SHT_rv
         end function c_view_has_buffer
 
-        function c_view_get_buffer(self, SHT_crv) &
-                result(SHT_rv) &
+        function c_view_get_buffer(self, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_View_get_buffer")
             use iso_c_binding, only : C_PTR
-            import :: SIDRE_SHROUD_buffer_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_buffer_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_view_get_buffer
 
         pure function c_view_is_external(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_is_external")
             use iso_c_binding, only : C_BOOL
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             logical(C_BOOL) :: SHT_rv
         end function c_view_is_external
 
@@ -1928,9 +2068,9 @@ function c_view_is_allocated(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_is_allocated")
             use iso_c_binding, only : C_BOOL
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             logical(C_BOOL) :: SHT_rv
         end function c_view_is_allocated
 
@@ -1938,9 +2078,9 @@ pure function c_view_is_applied(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_is_applied")
             use iso_c_binding, only : C_BOOL
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             logical(C_BOOL) :: SHT_rv
         end function c_view_is_applied
 
@@ -1948,9 +2088,9 @@ pure function c_view_is_described(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_is_described")
             use iso_c_binding, only : C_BOOL
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             logical(C_BOOL) :: SHT_rv
         end function c_view_is_described
 
@@ -1958,9 +2098,9 @@ pure function c_view_is_empty(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_is_empty")
             use iso_c_binding, only : C_BOOL
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             logical(C_BOOL) :: SHT_rv
         end function c_view_is_empty
 
@@ -1968,9 +2108,9 @@ pure function c_view_is_opaque(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_is_opaque")
             use iso_c_binding, only : C_BOOL
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             logical(C_BOOL) :: SHT_rv
         end function c_view_is_opaque
 
@@ -1978,9 +2118,9 @@ pure function c_view_is_scalar(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_is_scalar")
             use iso_c_binding, only : C_BOOL
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             logical(C_BOOL) :: SHT_rv
         end function c_view_is_scalar
 
@@ -1988,18 +2128,18 @@ pure function c_view_is_string(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_is_string")
             use iso_c_binding, only : C_BOOL
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             logical(C_BOOL) :: SHT_rv
         end function c_view_is_string
 
         pure function c_view_get_type_id(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_get_type_id")
-            import :: SIDRE_SHROUD_view_capsule, TypeIDint
+            import :: SIDRE_SHROUD_capsule_data, TypeIDint
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(TypeIDint) :: SHT_rv
         end function c_view_get_type_id
 
@@ -2007,9 +2147,9 @@ pure function c_view_get_total_bytes(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_get_total_bytes")
             use iso_c_binding, only : C_SIZE_T
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(C_SIZE_T) :: SHT_rv
         end function c_view_get_total_bytes
 
@@ -2017,9 +2157,9 @@ pure function c_view_get_num_elements(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_get_num_elements")
             use iso_c_binding, only : C_SIZE_T
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(C_SIZE_T) :: SHT_rv
         end function c_view_get_num_elements
 
@@ -2027,9 +2167,9 @@ pure function c_view_get_bytes_per_element(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_get_bytes_per_element")
             use iso_c_binding, only : C_SIZE_T
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(C_SIZE_T) :: SHT_rv
         end function c_view_get_bytes_per_element
 
@@ -2037,9 +2177,9 @@ pure function c_view_get_offset(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_get_offset")
             use iso_c_binding, only : C_SIZE_T
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(C_SIZE_T) :: SHT_rv
         end function c_view_get_offset
 
@@ -2047,9 +2187,9 @@ pure function c_view_get_stride(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_get_stride")
             use iso_c_binding, only : C_SIZE_T
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(C_SIZE_T) :: SHT_rv
         end function c_view_get_stride
 
@@ -2057,9 +2197,9 @@ pure function c_view_get_num_dimensions(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_get_num_dimensions")
             use iso_c_binding, only : C_INT
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(C_INT) :: SHT_rv
         end function c_view_get_num_dimensions
 
@@ -2067,9 +2207,9 @@ function c_view_get_shape(self, ndims, shape) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_get_shape")
             use iso_c_binding, only : C_INT
-            import :: SIDRE_IndexType, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(C_INT), value, intent(IN) :: ndims
             integer(SIDRE_IndexType), intent(OUT) :: shape(*)
             integer(C_INT) :: SHT_rv
@@ -2077,87 +2217,111 @@ end function c_view_get_shape
 
         subroutine c_view_allocate_simple(self) &
                 bind(C, name="SIDRE_View_allocate_simple")
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
         end subroutine c_view_allocate_simple
 
         subroutine c_view_allocate_from_type(self, type, num_elems) &
                 bind(C, name="SIDRE_View_allocate_from_type")
-            import :: SIDRE_IndexType, SIDRE_SHROUD_view_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(TypeID), value, intent(IN) :: type
             integer(SIDRE_IndexType), value, intent(IN) :: num_elems
         end subroutine c_view_allocate_from_type
 
         subroutine c_view_reallocate(self, num_elems) &
                 bind(C, name="SIDRE_View_reallocate")
-            import :: SIDRE_IndexType, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(SIDRE_IndexType), value, intent(IN) :: num_elems
         end subroutine c_view_reallocate
 
         subroutine c_view_attach_buffer_only(self, buff) &
                 bind(C, name="SIDRE_View_attach_buffer_only")
-            import :: SIDRE_SHROUD_buffer_capsule, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_buffer_capsule), intent(INOUT) :: buff
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: buff
         end subroutine c_view_attach_buffer_only
 
         subroutine c_view_attach_buffer_type(self, type, num_elems, &
                 buff) &
                 bind(C, name="SIDRE_View_attach_buffer_type")
-            import :: SIDRE_IndexType, SIDRE_SHROUD_buffer_capsule, SIDRE_SHROUD_view_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(TypeID), value, intent(IN) :: type
             integer(SIDRE_IndexType), value, intent(IN) :: num_elems
-            type(SIDRE_SHROUD_buffer_capsule), intent(INOUT) :: buff
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: buff
         end subroutine c_view_attach_buffer_type
 
+        subroutine c_view_attach_buffer_type_int32_t(self, type, &
+                num_elems, buff) &
+                bind(C, name="SIDRE_View_attach_buffer_type_int32_t")
+            use iso_c_binding, only : C_INT32_T
+            import :: SIDRE_SHROUD_capsule_data, TypeID
+            implicit none
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            integer(TypeID), value, intent(IN) :: type
+            integer(C_INT32_T), value, intent(IN) :: num_elems
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: buff
+        end subroutine c_view_attach_buffer_type_int32_t
+
+        subroutine c_view_attach_buffer_type_int64_t(self, type, &
+                num_elems, buff) &
+                bind(C, name="SIDRE_View_attach_buffer_type_int64_t")
+            use iso_c_binding, only : C_INT64_T
+            import :: SIDRE_SHROUD_capsule_data, TypeID
+            implicit none
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            integer(TypeID), value, intent(IN) :: type
+            integer(C_INT64_T), value, intent(IN) :: num_elems
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: buff
+        end subroutine c_view_attach_buffer_type_int64_t
+
         subroutine c_view_attach_buffer_shape(self, type, ndims, shape, &
                 buff) &
                 bind(C, name="SIDRE_View_attach_buffer_shape")
             use iso_c_binding, only : C_INT
-            import :: SIDRE_IndexType, SIDRE_SHROUD_buffer_capsule, SIDRE_SHROUD_view_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(TypeID), value, intent(IN) :: type
             integer(C_INT), value, intent(IN) :: ndims
             integer(SIDRE_IndexType), intent(IN) :: shape(*)
-            type(SIDRE_SHROUD_buffer_capsule), intent(INOUT) :: buff
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: buff
         end subroutine c_view_attach_buffer_shape
 
         subroutine c_view_clear(self) &
                 bind(C, name="SIDRE_View_clear")
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
         end subroutine c_view_clear
 
         subroutine c_view_apply_0(self) &
                 bind(C, name="SIDRE_View_apply_0")
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
         end subroutine c_view_apply_0
 
         subroutine c_view_apply_nelems(self, num_elems) &
                 bind(C, name="SIDRE_View_apply_nelems")
-            import :: SIDRE_IndexType, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(SIDRE_IndexType), value, intent(IN) :: num_elems
         end subroutine c_view_apply_nelems
 
         subroutine c_view_apply_nelems_offset(self, num_elems, offset) &
                 bind(C, name="SIDRE_View_apply_nelems_offset")
-            import :: SIDRE_IndexType, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(SIDRE_IndexType), value, intent(IN) :: num_elems
             integer(SIDRE_IndexType), value, intent(IN) :: offset
         end subroutine c_view_apply_nelems_offset
@@ -2165,9 +2329,9 @@ end subroutine c_view_apply_nelems_offset
         subroutine c_view_apply_nelems_offset_stride(self, num_elems, &
                 offset, stride) &
                 bind(C, name="SIDRE_View_apply_nelems_offset_stride")
-            import :: SIDRE_IndexType, SIDRE_SHROUD_view_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(SIDRE_IndexType), value, intent(IN) :: num_elems
             integer(SIDRE_IndexType), value, intent(IN) :: offset
             integer(SIDRE_IndexType), value, intent(IN) :: stride
@@ -2175,9 +2339,9 @@ end subroutine c_view_apply_nelems_offset_stride
 
         subroutine c_view_apply_type_nelems(self, type, num_elems) &
                 bind(C, name="SIDRE_View_apply_type_nelems")
-            import :: SIDRE_IndexType, SIDRE_SHROUD_view_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(TypeID), value, intent(IN) :: type
             integer(SIDRE_IndexType), value, intent(IN) :: num_elems
         end subroutine c_view_apply_type_nelems
@@ -2185,9 +2349,9 @@ end subroutine c_view_apply_type_nelems
         subroutine c_view_apply_type_nelems_offset(self, type, &
                 num_elems, offset) &
                 bind(C, name="SIDRE_View_apply_type_nelems_offset")
-            import :: SIDRE_IndexType, SIDRE_SHROUD_view_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(TypeID), value, intent(IN) :: type
             integer(SIDRE_IndexType), value, intent(IN) :: num_elems
             integer(SIDRE_IndexType), value, intent(IN) :: offset
@@ -2196,9 +2360,9 @@ end subroutine c_view_apply_type_nelems_offset
         subroutine c_view_apply_type_nelems_offset_stride(self, type, &
                 num_elems, offset, stride) &
                 bind(C, name="SIDRE_View_apply_type_nelems_offset_stride")
-            import :: SIDRE_IndexType, SIDRE_SHROUD_view_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(TypeID), value, intent(IN) :: type
             integer(SIDRE_IndexType), value, intent(IN) :: num_elems
             integer(SIDRE_IndexType), value, intent(IN) :: offset
@@ -2208,9 +2372,9 @@ end subroutine c_view_apply_type_nelems_offset_stride
         subroutine c_view_apply_type_shape(self, type, ndims, shape) &
                 bind(C, name="SIDRE_View_apply_type_shape")
             use iso_c_binding, only : C_INT
-            import :: SIDRE_IndexType, SIDRE_SHROUD_view_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(TypeID), value, intent(IN) :: type
             integer(C_INT), value, intent(IN) :: ndims
             integer(SIDRE_IndexType), intent(IN) :: shape(*)
@@ -2219,64 +2383,65 @@ end subroutine c_view_apply_type_shape
         subroutine c_view_set_scalar_int(self, value) &
                 bind(C, name="SIDRE_View_set_scalar_int")
             use iso_c_binding, only : C_INT
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(C_INT), value, intent(IN) :: value
         end subroutine c_view_set_scalar_int
 
         subroutine c_view_set_scalar_long(self, value) &
                 bind(C, name="SIDRE_View_set_scalar_long")
             use iso_c_binding, only : C_LONG
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(C_LONG), value, intent(IN) :: value
         end subroutine c_view_set_scalar_long
 
         subroutine c_view_set_scalar_float(self, value) &
                 bind(C, name="SIDRE_View_set_scalar_float")
             use iso_c_binding, only : C_FLOAT
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             real(C_FLOAT), value, intent(IN) :: value
         end subroutine c_view_set_scalar_float
 
         subroutine c_view_set_scalar_double(self, value) &
                 bind(C, name="SIDRE_View_set_scalar_double")
             use iso_c_binding, only : C_DOUBLE
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             real(C_DOUBLE), value, intent(IN) :: value
         end subroutine c_view_set_scalar_double
 
         subroutine c_view_set_string(self, value) &
                 bind(C, name="SIDRE_View_set_string")
             use iso_c_binding, only : C_CHAR
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: value(*)
         end subroutine c_view_set_string
 
-        subroutine c_view_set_string_bufferify(self, value, Lvalue) &
+        subroutine c_view_set_string_bufferify(self, value, &
+                SHT_value_len) &
                 bind(C, name="SIDRE_View_set_string_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: value(*)
-            integer(C_INT), value, intent(IN) :: Lvalue
+            integer(C_INT), value, intent(IN) :: SHT_value_len
         end subroutine c_view_set_string_bufferify
 
         subroutine c_view_set_external_data_ptr_only(self, external_ptr) &
                 bind(C, name="SIDRE_View_set_external_data_ptr_only")
             use iso_c_binding, only : C_PTR
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             type(C_PTR), value, intent(IN) :: external_ptr
         end subroutine c_view_set_external_data_ptr_only
 
@@ -2284,21 +2449,45 @@ subroutine c_view_set_external_data_ptr_type(self, type, &
                 num_elems, external_ptr) &
                 bind(C, name="SIDRE_View_set_external_data_ptr_type")
             use iso_c_binding, only : C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_view_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(TypeID), value, intent(IN) :: type
             integer(SIDRE_IndexType), value, intent(IN) :: num_elems
             type(C_PTR), value, intent(IN) :: external_ptr
         end subroutine c_view_set_external_data_ptr_type
 
+        subroutine c_view_set_external_data_ptr_type_int32_t(self, type, &
+                num_elems, external_ptr) &
+                bind(C, name="SIDRE_View_set_external_data_ptr_type_int32_t")
+            use iso_c_binding, only : C_INT32_T, C_PTR
+            import :: SIDRE_SHROUD_capsule_data, TypeID
+            implicit none
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            integer(TypeID), value, intent(IN) :: type
+            integer(C_INT32_T), value, intent(IN) :: num_elems
+            type(C_PTR), value, intent(IN) :: external_ptr
+        end subroutine c_view_set_external_data_ptr_type_int32_t
+
+        subroutine c_view_set_external_data_ptr_type_int64_t(self, type, &
+                num_elems, external_ptr) &
+                bind(C, name="SIDRE_View_set_external_data_ptr_type_int64_t")
+            use iso_c_binding, only : C_INT64_T, C_PTR
+            import :: SIDRE_SHROUD_capsule_data, TypeID
+            implicit none
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            integer(TypeID), value, intent(IN) :: type
+            integer(C_INT64_T), value, intent(IN) :: num_elems
+            type(C_PTR), value, intent(IN) :: external_ptr
+        end subroutine c_view_set_external_data_ptr_type_int64_t
+
         subroutine c_view_set_external_data_ptr_shape(self, type, ndims, &
                 shape, external_ptr) &
                 bind(C, name="SIDRE_View_set_external_data_ptr_shape")
             use iso_c_binding, only : C_INT, C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_view_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(TypeID), value, intent(IN) :: type
             integer(C_INT), value, intent(IN) :: ndims
             integer(SIDRE_IndexType), intent(IN) :: shape(*)
@@ -2309,29 +2498,29 @@ function c_view_get_string(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_get_string")
             use iso_c_binding, only : C_PTR
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             type(C_PTR) SHT_rv
         end function c_view_get_string
 
-        subroutine c_view_get_string_bufferify(self, name, Nname) &
+        subroutine c_view_get_string_bufferify(self, name, SHT_name_len) &
                 bind(C, name="SIDRE_View_get_string_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(OUT) :: name(*)
-            integer(C_INT), value, intent(IN) :: Nname
+            integer(C_INT), value, intent(IN) :: SHT_name_len
         end subroutine c_view_get_string_bufferify
 
         function c_view_get_data_int(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_get_data_int")
             use iso_c_binding, only : C_INT
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(C_INT) :: SHT_rv
         end function c_view_get_data_int
 
@@ -2339,9 +2528,9 @@ function c_view_get_data_long(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_get_data_long")
             use iso_c_binding, only : C_LONG
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(C_LONG) :: SHT_rv
         end function c_view_get_data_long
 
@@ -2349,9 +2538,9 @@ function c_view_get_data_float(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_get_data_float")
             use iso_c_binding, only : C_FLOAT
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             real(C_FLOAT) :: SHT_rv
         end function c_view_get_data_float
 
@@ -2359,9 +2548,9 @@ function c_view_get_data_double(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_get_data_double")
             use iso_c_binding, only : C_DOUBLE
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             real(C_DOUBLE) :: SHT_rv
         end function c_view_get_data_double
 
@@ -2369,125 +2558,175 @@ pure function c_view_get_void_ptr(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_get_void_ptr")
             use iso_c_binding, only : C_PTR
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             type(C_PTR) :: SHT_rv
         end function c_view_get_void_ptr
 
         subroutine c_view_print(self) &
                 bind(C, name="SIDRE_View_print")
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
         end subroutine c_view_print
 
         function c_view_rename(self, new_name) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_rename")
             use iso_c_binding, only : C_BOOL, C_CHAR
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: new_name(*)
             logical(C_BOOL) :: SHT_rv
         end function c_view_rename
 
-        function c_view_rename_bufferify(self, new_name, Lnew_name) &
+        function c_view_rename_bufferify(self, new_name, &
+                SHT_new_name_len) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_View_rename_bufferify")
             use iso_c_binding, only : C_BOOL, C_CHAR, C_INT
-            import :: SIDRE_SHROUD_view_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_view_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: new_name(*)
-            integer(C_INT), value, intent(IN) :: Lnew_name
+            integer(C_INT), value, intent(IN) :: SHT_new_name_len
             logical(C_BOOL) :: SHT_rv
         end function c_view_rename_bufferify
 
-        ! splicer begin class.View.additional_interfaces
-        ! splicer end class.View.additional_interfaces
-
-        function c_datastore_new(SHT_crv) &
-                result(SHT_rv) &
+        function c_datastore_new(SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_DataStore_new")
             use iso_c_binding, only : C_PTR
-            import :: SIDRE_SHROUD_datastore_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_datastore_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) SHT_prv
         end function c_datastore_new
 
         subroutine c_datastore_delete(self) &
                 bind(C, name="SIDRE_DataStore_delete")
-            import :: SIDRE_SHROUD_datastore_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_datastore_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: self
         end subroutine c_datastore_delete
 
-        function c_datastore_get_root(self, SHT_crv) &
-                result(SHT_rv) &
+        function c_datastore_get_root(self, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_DataStore_get_root")
             use iso_c_binding, only : C_PTR
-            import :: SIDRE_SHROUD_datastore_capsule, SIDRE_SHROUD_group_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_datastore_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_group_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_datastore_get_root
 
         pure function c_datastore_get_num_buffers(self) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_DataStore_get_num_buffers")
             use iso_c_binding, only : C_SIZE_T
-            import :: SIDRE_SHROUD_datastore_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_datastore_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(C_SIZE_T) :: SHT_rv
         end function c_datastore_get_num_buffers
 
-        function c_datastore_get_buffer(self, idx, SHT_crv) &
-                result(SHT_rv) &
+        function c_datastore_get_buffer(self, idx, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_DataStore_get_buffer")
             use iso_c_binding, only : C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_buffer_capsule, SIDRE_SHROUD_datastore_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_datastore_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(SIDRE_IndexType), value, intent(IN) :: idx
-            type(SIDRE_SHROUD_buffer_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_datastore_get_buffer
 
-        function c_datastore_create_buffer_empty(self, SHT_crv) &
-                result(SHT_rv) &
+        function c_datastore_get_buffer_int32_t(self, idx, SHT_rv) &
+                result(SHT_prv) &
+                bind(C, name="SIDRE_DataStore_get_buffer_int32_t")
+            use iso_c_binding, only : C_INT32_T, C_PTR
+            import :: SIDRE_SHROUD_capsule_data
+            implicit none
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            integer(C_INT32_T), value, intent(IN) :: idx
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
+        end function c_datastore_get_buffer_int32_t
+
+        function c_datastore_get_buffer_int64_t(self, idx, SHT_rv) &
+                result(SHT_prv) &
+                bind(C, name="SIDRE_DataStore_get_buffer_int64_t")
+            use iso_c_binding, only : C_INT64_T, C_PTR
+            import :: SIDRE_SHROUD_capsule_data
+            implicit none
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            integer(C_INT64_T), value, intent(IN) :: idx
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
+        end function c_datastore_get_buffer_int64_t
+
+        function c_datastore_create_buffer_empty(self, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_DataStore_create_buffer_empty")
             use iso_c_binding, only : C_PTR
-            import :: SIDRE_SHROUD_buffer_capsule, SIDRE_SHROUD_datastore_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_datastore_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_buffer_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_datastore_create_buffer_empty
 
         function c_datastore_create_buffer_from_type(self, type, &
-                num_elems, SHT_crv) &
-                result(SHT_rv) &
+                num_elems, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SIDRE_DataStore_create_buffer_from_type")
             use iso_c_binding, only : C_PTR
-            import :: SIDRE_IndexType, SIDRE_SHROUD_buffer_capsule, SIDRE_SHROUD_datastore_capsule, TypeID
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data, TypeID
             implicit none
-            type(SIDRE_SHROUD_datastore_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(TypeID), value, intent(IN) :: type
             integer(SIDRE_IndexType), value, intent(IN) :: num_elems
-            type(SIDRE_SHROUD_buffer_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
         end function c_datastore_create_buffer_from_type
 
+        function c_datastore_create_buffer_from_type_int32_t(self, type, &
+                num_elems, SHT_rv) &
+                result(SHT_prv) &
+                bind(C, name="SIDRE_DataStore_create_buffer_from_type_int32_t")
+            use iso_c_binding, only : C_INT32_T, C_PTR
+            import :: SIDRE_SHROUD_capsule_data, TypeID
+            implicit none
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            integer(TypeID), value, intent(IN) :: type
+            integer(C_INT32_T), value, intent(IN) :: num_elems
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
+        end function c_datastore_create_buffer_from_type_int32_t
+
+        function c_datastore_create_buffer_from_type_int64_t(self, type, &
+                num_elems, SHT_rv) &
+                result(SHT_prv) &
+                bind(C, name="SIDRE_DataStore_create_buffer_from_type_int64_t")
+            use iso_c_binding, only : C_INT64_T, C_PTR
+            import :: SIDRE_SHROUD_capsule_data, TypeID
+            implicit none
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
+            integer(TypeID), value, intent(IN) :: type
+            integer(C_INT64_T), value, intent(IN) :: num_elems
+            type(SIDRE_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) :: SHT_prv
+        end function c_datastore_create_buffer_from_type_int64_t
+
         subroutine c_datastore_destroy_buffer(self, id) &
                 bind(C, name="SIDRE_DataStore_destroy_buffer")
-            import :: SIDRE_IndexType, SIDRE_SHROUD_datastore_capsule
+            import :: SIDRE_IndexType, SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_datastore_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(SIDRE_IndexType), value, intent(IN) :: id
         end subroutine c_datastore_destroy_buffer
 
@@ -2496,9 +2735,9 @@ function c_datastore_generate_blueprint_index_0(self, &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_DataStore_generate_blueprint_index_0")
             use iso_c_binding, only : C_BOOL, C_CHAR, C_INT
-            import :: SIDRE_SHROUD_datastore_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_datastore_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: domain_path(*)
             character(kind=C_CHAR), intent(IN) :: mesh_name(*)
             character(kind=C_CHAR), intent(IN) :: index_path(*)
@@ -2507,20 +2746,21 @@ function c_datastore_generate_blueprint_index_0(self, &
         end function c_datastore_generate_blueprint_index_0
 
         function c_datastore_generate_blueprint_index_0_bufferify(self, &
-                domain_path, Ldomain_path, mesh_name, Lmesh_name, &
-                index_path, Lindex_path, num_domains) &
+                domain_path, SHT_domain_path_len, mesh_name, &
+                SHT_mesh_name_len, index_path, SHT_index_path_len, &
+                num_domains) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_DataStore_generate_blueprint_index_0_bufferify")
             use iso_c_binding, only : C_BOOL, C_CHAR, C_INT
-            import :: SIDRE_SHROUD_datastore_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_datastore_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             character(kind=C_CHAR), intent(IN) :: domain_path(*)
-            integer(C_INT), value, intent(IN) :: Ldomain_path
+            integer(C_INT), value, intent(IN) :: SHT_domain_path_len
             character(kind=C_CHAR), intent(IN) :: mesh_name(*)
-            integer(C_INT), value, intent(IN) :: Lmesh_name
+            integer(C_INT), value, intent(IN) :: SHT_mesh_name_len
             character(kind=C_CHAR), intent(IN) :: index_path(*)
-            integer(C_INT), value, intent(IN) :: Lindex_path
+            integer(C_INT), value, intent(IN) :: SHT_index_path_len
             integer(C_INT), value, intent(IN) :: num_domains
             logical(C_BOOL) :: SHT_rv
         end function c_datastore_generate_blueprint_index_0_bufferify
@@ -2531,9 +2771,9 @@ function c_datastore_generate_blueprint_index_1(self, comm, &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_DataStore_generate_blueprint_index_1")
             use iso_c_binding, only : C_BOOL, C_CHAR, C_INT
-            import :: SIDRE_SHROUD_datastore_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_datastore_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(C_INT), value, intent(IN) :: comm
             character(kind=C_CHAR), intent(IN) :: domain_path(*)
             character(kind=C_CHAR), intent(IN) :: mesh_name(*)
@@ -2544,35 +2784,32 @@ end function c_datastore_generate_blueprint_index_1
 
 #ifdef AXOM_USE_MPI
         function c_datastore_generate_blueprint_index_1_bufferify(self, &
-                comm, domain_path, Ldomain_path, mesh_name, Lmesh_name, &
-                index_path, Lindex_path) &
+                comm, domain_path, SHT_domain_path_len, mesh_name, &
+                SHT_mesh_name_len, index_path, SHT_index_path_len) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_DataStore_generate_blueprint_index_1_bufferify")
             use iso_c_binding, only : C_BOOL, C_CHAR, C_INT
-            import :: SIDRE_SHROUD_datastore_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_datastore_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
             integer(C_INT), value, intent(IN) :: comm
             character(kind=C_CHAR), intent(IN) :: domain_path(*)
-            integer(C_INT), value, intent(IN) :: Ldomain_path
+            integer(C_INT), value, intent(IN) :: SHT_domain_path_len
             character(kind=C_CHAR), intent(IN) :: mesh_name(*)
-            integer(C_INT), value, intent(IN) :: Lmesh_name
+            integer(C_INT), value, intent(IN) :: SHT_mesh_name_len
             character(kind=C_CHAR), intent(IN) :: index_path(*)
-            integer(C_INT), value, intent(IN) :: Lindex_path
+            integer(C_INT), value, intent(IN) :: SHT_index_path_len
             logical(C_BOOL) :: SHT_rv
         end function c_datastore_generate_blueprint_index_1_bufferify
 #endif
 
         subroutine c_datastore_print(self) &
                 bind(C, name="SIDRE_DataStore_print")
-            import :: SIDRE_SHROUD_datastore_capsule
+            import :: SIDRE_SHROUD_capsule_data
             implicit none
-            type(SIDRE_SHROUD_datastore_capsule), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(IN) :: self
         end subroutine c_datastore_print
 
-        ! splicer begin class.DataStore.additional_interfaces
-        ! splicer end class.DataStore.additional_interfaces
-
         function c_name_is_valid(name) &
                 result(SHT_rv) &
                 bind(C, name="SIDRE_name_is_valid")
@@ -2581,33 +2818,195 @@ function c_name_is_valid(name) &
             character(kind=C_CHAR), intent(IN) :: name(*)
             logical(C_BOOL) :: SHT_rv
         end function c_name_is_valid
-
-        ! splicer begin additional_interfaces
-        function SIDRE_create_array_view(group, name, lname, addr, type, rank, extents) &
-              result(rv) bind(C,name="SIDRE_create_array_view")
-            use iso_c_binding
-            import SIDRE_IndexType
-            type(C_PTR), value, intent(IN)     :: group
-            character(kind=C_CHAR), intent(IN) :: name(*)
-            integer(C_INT), value, intent(IN)  :: lname
-            type(C_PTR), value,     intent(IN) :: addr
-            integer(C_INT), value, intent(IN)  :: type
-            integer(C_INT), value, intent(IN)  :: rank
-            integer(SIDRE_IndexType), intent(IN)  :: extents(*)
-            type(C_PTR) rv
-        end function SIDRE_create_array_view
-        ! splicer end additional_interfaces
     end interface
 
     interface SidreDataStore
         module procedure datastore_new
     end interface SidreDataStore
 
+    interface buffer_allocate
+        module procedure buffer_allocate_existing
+        module procedure buffer_allocate_from_type_int32_t
+        module procedure buffer_allocate_from_type_int64_t
+    end interface buffer_allocate
+
+    interface buffer_describe
+        module procedure buffer_describe_int32_t
+        module procedure buffer_describe_int64_t
+    end interface buffer_describe
+
+    interface buffer_reallocate
+        module procedure buffer_reallocate_int32_t
+        module procedure buffer_reallocate_int64_t
+    end interface buffer_reallocate
+
+    interface datastore_create_buffer
+        module procedure datastore_create_buffer_empty
+        module procedure datastore_create_buffer_from_type_int32_t
+        module procedure datastore_create_buffer_from_type_int64_t
+    end interface datastore_create_buffer
+
+    interface datastore_destroy_buffer
+        module procedure datastore_destroy_buffer_int32_t
+        module procedure datastore_destroy_buffer_int64_t
+    end interface datastore_destroy_buffer
+
+    interface datastore_generate_blueprint_index
+        module procedure datastore_generate_blueprint_index_0
+#ifdef AXOM_USE_MPI
+        module procedure datastore_generate_blueprint_index_1
+#endif
+    end interface datastore_generate_blueprint_index
+
+    interface datastore_get_buffer
+        module procedure datastore_get_buffer_int32_t
+        module procedure datastore_get_buffer_int64_t
+    end interface datastore_get_buffer
+
+    interface group_create_view
+        module procedure group_create_view_empty
+        module procedure group_create_view_from_type_int32_t
+        module procedure group_create_view_from_type_int64_t
+        module procedure group_create_view_into_buffer
+        module procedure group_create_view_from_type_and_buffer_int32_t
+        module procedure group_create_view_from_type_and_buffer_int64_t
+        module procedure group_create_view_external
+        module procedure group_create_view_from_type_external_int32_t
+        module procedure group_create_view_from_type_external_int64_t
+    end interface group_create_view
+
+    interface group_create_view_and_allocate
+        module procedure group_create_view_and_allocate_nelems_int32_t
+        module procedure group_create_view_and_allocate_nelems_int64_t
+    end interface group_create_view_and_allocate
+
+    interface group_create_view_scalar
+        module procedure group_create_view_scalar_int
+        module procedure group_create_view_scalar_long
+        module procedure group_create_view_scalar_float
+        module procedure group_create_view_scalar_double
+    end interface group_create_view_scalar
+
+    interface group_create_view_with_shape
+        module procedure group_create_view_with_shape_base
+        module procedure group_create_view_with_shape_and_buffer
+        module procedure group_create_view_with_shape_external
+    end interface group_create_view_with_shape
+
+    interface group_destroy_group
+        module procedure group_destroy_group_name
+        module procedure group_destroy_group_index_int32_t
+        module procedure group_destroy_group_index_int64_t
+    end interface group_destroy_group
+
+    interface group_destroy_view_and_data
+        module procedure group_destroy_view_and_data_name
+        module procedure group_destroy_view_and_data_index_int32_t
+        module procedure group_destroy_view_and_data_index_int64_t
+    end interface group_destroy_view_and_data
+
+    interface group_get_group
+        module procedure group_get_group_from_name
+        module procedure group_get_group_from_index_int32_t
+        module procedure group_get_group_from_index_int64_t
+    end interface group_get_group
+
+    interface group_get_group_name
+        module procedure group_get_group_name_int32_t
+        module procedure group_get_group_name_int64_t
+    end interface group_get_group_name
+
+    interface group_get_next_valid_group_index
+        module procedure group_get_next_valid_group_index_int32_t
+        module procedure group_get_next_valid_group_index_int64_t
+    end interface group_get_next_valid_group_index
+
+    interface group_get_next_valid_view_index
+        module procedure group_get_next_valid_view_index_int32_t
+        module procedure group_get_next_valid_view_index_int64_t
+    end interface group_get_next_valid_view_index
+
+    interface group_get_view
+        module procedure group_get_view_from_name
+        module procedure group_get_view_from_index_int32_t
+        module procedure group_get_view_from_index_int64_t
+    end interface group_get_view
+
+    interface group_get_view_name
+        module procedure group_get_view_name_int32_t
+        module procedure group_get_view_name_int64_t
+    end interface group_get_view_name
+
+    interface group_load
+        module procedure group_load_0
+        module procedure group_load_1
+    end interface group_load
+
+    interface view_allocate
+        module procedure view_allocate_simple
+        module procedure view_allocate_from_type_int32_t
+        module procedure view_allocate_from_type_int64_t
+    end interface view_allocate
+
+    interface view_apply
+        module procedure view_apply_0
+        module procedure view_apply_nelems
+        module procedure view_apply_nelems_offset
+        module procedure view_apply_nelems_offset_stride
+        module procedure view_apply_type_nelems
+        module procedure view_apply_type_nelems_offset
+        module procedure view_apply_type_nelems_offset_stride
+        module procedure view_apply_type_shape
+    end interface view_apply
+
+    interface view_attach_buffer
+        module procedure view_attach_buffer_only
+        module procedure view_attach_buffer_type_int32_t
+        module procedure view_attach_buffer_type_int64_t
+        module procedure view_attach_buffer_shape
+    end interface view_attach_buffer
+
+    interface view_reallocate
+        module procedure view_reallocate_int32_t
+        module procedure view_reallocate_int64_t
+    end interface view_reallocate
+
+    interface view_set_external_data_ptr
+        module procedure view_set_external_data_ptr_only
+        module procedure view_set_external_data_ptr_type_int32_t
+        module procedure view_set_external_data_ptr_type_int64_t
+        module procedure view_set_external_data_ptr_shape
+    end interface view_set_external_data_ptr
+
+    interface view_set_scalar
+        module procedure view_set_scalar_int
+        module procedure view_set_scalar_long
+        module procedure view_set_scalar_float
+        module procedure view_set_scalar_double
+    end interface view_set_scalar
+
+    ! splicer begin additional_declarations
+    interface
+      function SIDRE_create_array_view(group, name, lname, addr, type, rank, extents) &
+            result(rv) bind(C,name="SIDRE_create_array_view")
+          use iso_c_binding
+          import SIDRE_IndexType
+          type(C_PTR), value, intent(IN)     :: group
+          character(kind=C_CHAR), intent(IN) :: name(*)
+          integer(C_INT), value, intent(IN)  :: lname
+          type(C_PTR), value,     intent(IN) :: addr
+          integer(C_INT), value, intent(IN)  :: type
+          integer(C_INT), value, intent(IN)  :: rank
+          integer(SIDRE_IndexType), intent(IN)  :: extents(*)
+          type(C_PTR) rv
+      end function SIDRE_create_array_view
+    end interface
+    ! splicer end additional_declarations
+
 contains
 
     function buffer_get_index(obj) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT64_T
         class(SidreBuffer) :: obj
         integer(SIDRE_IndexType) :: SHT_rv
         ! splicer begin class.Buffer.method.get_index
@@ -2637,7 +3036,6 @@ end function buffer_get_void_ptr
 
     function buffer_get_type_id(obj) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT
         class(SidreBuffer) :: obj
         integer(TypeIDint) :: SHT_rv
         ! splicer begin class.Buffer.method.get_type_id
@@ -2676,7 +3074,7 @@ function buffer_get_bytes_per_element(obj) &
     end function buffer_get_bytes_per_element
 
     subroutine buffer_describe_int32_t(obj, type, num_elems)
-        use iso_c_binding, only : C_INT32_T, C_INT64_T, C_SHORT
+        use iso_c_binding, only : C_INT32_T
         class(SidreBuffer) :: obj
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT32_T), value, intent(IN) :: num_elems
@@ -2687,7 +3085,7 @@ subroutine buffer_describe_int32_t(obj, type, num_elems)
     end subroutine buffer_describe_int32_t
 
     subroutine buffer_describe_int64_t(obj, type, num_elems)
-        use iso_c_binding, only : C_INT64_T, C_SHORT
+        use iso_c_binding, only : C_INT64_T
         class(SidreBuffer) :: obj
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT64_T), value, intent(IN) :: num_elems
@@ -2705,7 +3103,7 @@ subroutine buffer_allocate_existing(obj)
     end subroutine buffer_allocate_existing
 
     subroutine buffer_allocate_from_type_int32_t(obj, type, num_elems)
-        use iso_c_binding, only : C_INT32_T, C_INT64_T, C_SHORT
+        use iso_c_binding, only : C_INT32_T
         class(SidreBuffer) :: obj
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT32_T), value, intent(IN) :: num_elems
@@ -2716,7 +3114,7 @@ subroutine buffer_allocate_from_type_int32_t(obj, type, num_elems)
     end subroutine buffer_allocate_from_type_int32_t
 
     subroutine buffer_allocate_from_type_int64_t(obj, type, num_elems)
-        use iso_c_binding, only : C_INT64_T, C_SHORT
+        use iso_c_binding, only : C_INT64_T
         class(SidreBuffer) :: obj
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT64_T), value, intent(IN) :: num_elems
@@ -2727,7 +3125,7 @@ subroutine buffer_allocate_from_type_int64_t(obj, type, num_elems)
     end subroutine buffer_allocate_from_type_int64_t
 
     subroutine buffer_reallocate_int32_t(obj, num_elems)
-        use iso_c_binding, only : C_INT32_T, C_INT64_T
+        use iso_c_binding, only : C_INT32_T
         class(SidreBuffer) :: obj
         integer(C_INT32_T), value, intent(IN) :: num_elems
         ! splicer begin class.Buffer.method.reallocate_int32_t
@@ -2781,7 +3179,6 @@ end function buffer_associated
 
     function group_get_index(obj) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT64_T
         class(SidreGroup) :: obj
         integer(SIDRE_IndexType) :: SHT_rv
         ! splicer begin class.Group.method.get_index
@@ -2795,8 +3192,9 @@ function group_get_name(obj) &
         class(SidreGroup) :: obj
         character(len=MAXNAMESIZE) :: SHT_rv
         ! splicer begin class.Group.method.get_name
-        call c_group_get_name_bufferify(obj%cxxmem, SHT_rv, &
-            len(SHT_rv, kind=C_INT))
+        integer(C_INT) SHT_rv_len
+        SHT_rv_len = len(SHT_rv, kind=C_INT)
+        call c_group_get_name_bufferify(obj%cxxmem, SHT_rv, SHT_rv_len)
         ! splicer end class.Group.method.get_name
     end function group_get_name
 
@@ -2806,8 +3204,9 @@ function group_get_path(obj) &
         class(SidreGroup) :: obj
         character(len=MAXNAMESIZE) :: SHT_rv
         ! splicer begin class.Group.method.get_path
-        call c_group_get_path_bufferify(obj%cxxmem, SHT_rv, &
-            len(SHT_rv, kind=C_INT))
+        integer(C_INT) SHT_rv_len
+        SHT_rv_len = len(SHT_rv, kind=C_INT)
+        call c_group_get_path_bufferify(obj%cxxmem, SHT_rv, SHT_rv_len)
         ! splicer end class.Group.method.get_path
     end function group_get_path
 
@@ -2817,8 +3216,10 @@ function group_get_path_name(obj) &
         class(SidreGroup) :: obj
         character(len=MAXNAMESIZE) :: SHT_rv
         ! splicer begin class.Group.method.get_path_name
+        integer(C_INT) SHT_rv_len
+        SHT_rv_len = len(SHT_rv, kind=C_INT)
         call c_group_get_path_name_bufferify(obj%cxxmem, SHT_rv, &
-            len(SHT_rv, kind=C_INT))
+            SHT_rv_len)
         ! splicer end class.Group.method.get_path_name
     end function group_get_path_name
 
@@ -2827,8 +3228,8 @@ function group_get_parent(obj) &
         use iso_c_binding, only : C_PTR
         class(SidreGroup) :: obj
         type(SidreGroup) :: SHT_rv
-        ! splicer begin class.Group.method.get_parent
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.Group.method.get_parent
         SHT_prv = c_group_get_parent(obj%cxxmem, SHT_rv%cxxmem)
         ! splicer end class.Group.method.get_parent
     end function group_get_parent
@@ -2858,8 +3259,8 @@ function group_get_data_store(obj) &
         use iso_c_binding, only : C_PTR
         class(SidreGroup) :: obj
         type(SidreDataStore) :: SHT_rv
-        ! splicer begin class.Group.method.get_data_store
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.Group.method.get_data_store
         SHT_prv = c_group_get_data_store(obj%cxxmem, SHT_rv%cxxmem)
         ! splicer end class.Group.method.get_data_store
     end function group_get_data_store
@@ -2871,8 +3272,10 @@ function group_has_view(obj, path) &
         character(len=*), intent(IN) :: path
         logical :: SHT_rv
         ! splicer begin class.Group.method.has_view
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
         SHT_rv = c_group_has_view_bufferify(obj%cxxmem, path, &
-            len_trim(path, kind=C_INT))
+            SHT_path_len)
         ! splicer end class.Group.method.has_view
     end function group_has_view
 
@@ -2883,32 +3286,38 @@ function group_has_child_view(obj, name) &
         character(len=*), intent(IN) :: name
         logical :: SHT_rv
         ! splicer begin class.Group.method.has_child_view
+        integer(C_INT) SHT_name_len
+        SHT_name_len = len(name, kind=C_INT)
         SHT_rv = c_group_has_child_view_bufferify(obj%cxxmem, name, &
-            len_trim(name, kind=C_INT))
+            SHT_name_len)
         ! splicer end class.Group.method.has_child_view
     end function group_has_child_view
 
     function group_get_view_index(obj, name) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT, C_INT64_T
+        use iso_c_binding, only : C_INT
         class(SidreGroup) :: obj
         character(len=*), intent(IN) :: name
         integer(SIDRE_IndexType) :: SHT_rv
         ! splicer begin class.Group.method.get_view_index
+        integer(C_INT) SHT_name_len
+        SHT_name_len = len(name, kind=C_INT)
         SHT_rv = c_group_get_view_index_bufferify(obj%cxxmem, name, &
-            len_trim(name, kind=C_INT))
+            SHT_name_len)
         ! splicer end class.Group.method.get_view_index
     end function group_get_view_index
 
     function group_get_view_name_int32_t(obj, idx) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT, C_INT32_T, C_INT64_T
+        use iso_c_binding, only : C_INT, C_INT32_T
         class(SidreGroup) :: obj
         integer(C_INT32_T), value, intent(IN) :: idx
         character(len=MAXNAMESIZE) :: SHT_rv
         ! splicer begin class.Group.method.get_view_name_int32_t
-        call c_group_get_view_name_bufferify(obj%cxxmem, &
-            int(idx, SIDRE_IndexType), SHT_rv, len(SHT_rv, kind=C_INT))
+        integer(C_INT) SHT_rv_len
+        SHT_rv_len = len(SHT_rv, kind=C_INT)
+        call c_group_get_view_name_int32_t_bufferify(obj%cxxmem, idx, &
+            SHT_rv, SHT_rv_len)
         ! splicer end class.Group.method.get_view_name_int32_t
     end function group_get_view_name_int32_t
 
@@ -2919,8 +3328,10 @@ function group_get_view_name_int64_t(obj, idx) &
         integer(C_INT64_T), value, intent(IN) :: idx
         character(len=MAXNAMESIZE) :: SHT_rv
         ! splicer begin class.Group.method.get_view_name_int64_t
-        call c_group_get_view_name_bufferify(obj%cxxmem, &
-            int(idx, SIDRE_IndexType), SHT_rv, len(SHT_rv, kind=C_INT))
+        integer(C_INT) SHT_rv_len
+        SHT_rv_len = len(SHT_rv, kind=C_INT)
+        call c_group_get_view_name_int64_t_bufferify(obj%cxxmem, idx, &
+            SHT_rv, SHT_rv_len)
         ! splicer end class.Group.method.get_view_name_int64_t
     end function group_get_view_name_int64_t
 
@@ -2930,23 +3341,25 @@ function group_get_view_from_name(obj, path) &
         class(SidreGroup) :: obj
         character(len=*), intent(IN) :: path
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.get_view_from_name
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.Group.method.get_view_from_name
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
         SHT_prv = c_group_get_view_from_name_bufferify(obj%cxxmem, path, &
-            len_trim(path, kind=C_INT), SHT_rv%cxxmem)
+            SHT_path_len, SHT_rv%cxxmem)
         ! splicer end class.Group.method.get_view_from_name
     end function group_get_view_from_name
 
     function group_get_view_from_index_int32_t(obj, idx) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT32_T, C_INT64_T, C_PTR
+        use iso_c_binding, only : C_INT32_T, C_PTR
         class(SidreGroup) :: obj
         integer(C_INT32_T), value, intent(IN) :: idx
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.get_view_from_index_int32_t
         type(C_PTR) :: SHT_prv
-        SHT_prv = c_group_get_view_from_index(obj%cxxmem, &
-            int(idx, SIDRE_IndexType), SHT_rv%cxxmem)
+        ! splicer begin class.Group.method.get_view_from_index_int32_t
+        SHT_prv = c_group_get_view_from_index_int32_t(obj%cxxmem, idx, &
+            SHT_rv%cxxmem)
         ! splicer end class.Group.method.get_view_from_index_int32_t
     end function group_get_view_from_index_int32_t
 
@@ -2956,16 +3369,15 @@ function group_get_view_from_index_int64_t(obj, idx) &
         class(SidreGroup) :: obj
         integer(C_INT64_T), value, intent(IN) :: idx
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.get_view_from_index_int64_t
         type(C_PTR) :: SHT_prv
-        SHT_prv = c_group_get_view_from_index(obj%cxxmem, &
-            int(idx, SIDRE_IndexType), SHT_rv%cxxmem)
+        ! splicer begin class.Group.method.get_view_from_index_int64_t
+        SHT_prv = c_group_get_view_from_index_int64_t(obj%cxxmem, idx, &
+            SHT_rv%cxxmem)
         ! splicer end class.Group.method.get_view_from_index_int64_t
     end function group_get_view_from_index_int64_t
 
     function group_get_first_valid_view_index(obj) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT64_T
         class(SidreGroup) :: obj
         integer(SIDRE_IndexType) :: SHT_rv
         ! splicer begin class.Group.method.get_first_valid_view_index
@@ -2975,7 +3387,7 @@ end function group_get_first_valid_view_index
 
     function group_get_next_valid_view_index_int32_t(obj, idx) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT32_T, C_INT64_T
+        use iso_c_binding, only : C_INT32_T
         class(SidreGroup) :: obj
         integer(C_INT32_T), value, intent(IN) :: idx
         integer(SIDRE_IndexType) :: SHT_rv
@@ -3003,62 +3415,67 @@ function group_create_view_empty(obj, path) &
         class(SidreGroup) :: obj
         character(len=*), intent(IN) :: path
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.create_view_empty
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.Group.method.create_view_empty
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
         SHT_prv = c_group_create_view_empty_bufferify(obj%cxxmem, path, &
-            len_trim(path, kind=C_INT), SHT_rv%cxxmem)
+            SHT_path_len, SHT_rv%cxxmem)
         ! splicer end class.Group.method.create_view_empty
     end function group_create_view_empty
 
     function group_create_view_from_type_int32_t(obj, path, type, &
             num_elems) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT, C_INT32_T, C_INT64_T, C_PTR, C_SHORT
+        use iso_c_binding, only : C_INT, C_INT32_T, C_PTR
         class(SidreGroup) :: obj
         character(len=*), intent(IN) :: path
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT32_T), value, intent(IN) :: num_elems
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.create_view_from_type_int32_t
         type(C_PTR) :: SHT_prv
-        SHT_prv = c_group_create_view_from_type_bufferify(obj%cxxmem, &
-            path, len_trim(path, kind=C_INT), type, &
-            int(num_elems, SIDRE_IndexType), SHT_rv%cxxmem)
+        ! splicer begin class.Group.method.create_view_from_type_int32_t
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
+        SHT_prv = c_group_create_view_from_type_int32_t_bufferify(obj%cxxmem, &
+            path, SHT_path_len, type, num_elems, SHT_rv%cxxmem)
         ! splicer end class.Group.method.create_view_from_type_int32_t
     end function group_create_view_from_type_int32_t
 
     function group_create_view_from_type_int64_t(obj, path, type, &
             num_elems) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT, C_INT64_T, C_PTR, C_SHORT
+        use iso_c_binding, only : C_INT, C_INT64_T, C_PTR
         class(SidreGroup) :: obj
         character(len=*), intent(IN) :: path
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT64_T), value, intent(IN) :: num_elems
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.create_view_from_type_int64_t
         type(C_PTR) :: SHT_prv
-        SHT_prv = c_group_create_view_from_type_bufferify(obj%cxxmem, &
-            path, len_trim(path, kind=C_INT), type, &
-            int(num_elems, SIDRE_IndexType), SHT_rv%cxxmem)
+        ! splicer begin class.Group.method.create_view_from_type_int64_t
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
+        SHT_prv = c_group_create_view_from_type_int64_t_bufferify(obj%cxxmem, &
+            path, SHT_path_len, type, num_elems, SHT_rv%cxxmem)
         ! splicer end class.Group.method.create_view_from_type_int64_t
     end function group_create_view_from_type_int64_t
 
     function group_create_view_with_shape_base(obj, path, type, ndims, &
             shape) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT, C_INT64_T, C_PTR, C_SHORT
+        use iso_c_binding, only : C_INT, C_PTR
         class(SidreGroup) :: obj
         character(len=*), intent(IN) :: path
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT), value, intent(IN) :: ndims
         integer(SIDRE_IndexType), intent(IN) :: shape(:)
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.create_view_with_shape_base
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.Group.method.create_view_with_shape_base
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
         SHT_prv = c_group_create_view_with_shape_base_bufferify(obj%cxxmem, &
-            path, len_trim(path, kind=C_INT), type, ndims, shape, &
-            SHT_rv%cxxmem)
+            path, SHT_path_len, type, ndims, shape, SHT_rv%cxxmem)
         ! splicer end class.Group.method.create_view_with_shape_base
     end function group_create_view_with_shape_base
 
@@ -3069,54 +3486,59 @@ function group_create_view_into_buffer(obj, path, buff) &
         character(len=*), intent(IN) :: path
         type(SidreBuffer), intent(INOUT) :: buff
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.create_view_into_buffer
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.Group.method.create_view_into_buffer
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
         SHT_prv = c_group_create_view_into_buffer_bufferify(obj%cxxmem, &
-            path, len_trim(path, kind=C_INT), buff%cxxmem, &
-            SHT_rv%cxxmem)
+            path, SHT_path_len, buff%cxxmem, SHT_rv%cxxmem)
         ! splicer end class.Group.method.create_view_into_buffer
     end function group_create_view_into_buffer
 
     function group_create_view_from_type_and_buffer_int32_t(obj, path, &
             type, num_elems, buff) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT, C_INT32_T, C_INT64_T, C_PTR, C_SHORT
+        use iso_c_binding, only : C_INT, C_INT32_T, C_PTR
         class(SidreGroup) :: obj
         character(len=*), intent(IN) :: path
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT32_T), value, intent(IN) :: num_elems
         type(SidreBuffer), intent(INOUT) :: buff
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.create_view_from_type_and_buffer_int32_t
         type(C_PTR) :: SHT_prv
-        SHT_prv = c_group_create_view_from_type_and_buffer_bufferify(obj%cxxmem, &
-            path, len_trim(path, kind=C_INT), type, &
-            int(num_elems, SIDRE_IndexType), buff%cxxmem, SHT_rv%cxxmem)
+        ! splicer begin class.Group.method.create_view_from_type_and_buffer_int32_t
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
+        SHT_prv = c_group_create_view_from_type_and_buffer_int32_t_bufferify(obj%cxxmem, &
+            path, SHT_path_len, type, num_elems, buff%cxxmem, &
+            SHT_rv%cxxmem)
         ! splicer end class.Group.method.create_view_from_type_and_buffer_int32_t
     end function group_create_view_from_type_and_buffer_int32_t
 
     function group_create_view_from_type_and_buffer_int64_t(obj, path, &
             type, num_elems, buff) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT, C_INT64_T, C_PTR, C_SHORT
+        use iso_c_binding, only : C_INT, C_INT64_T, C_PTR
         class(SidreGroup) :: obj
         character(len=*), intent(IN) :: path
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT64_T), value, intent(IN) :: num_elems
         type(SidreBuffer), intent(INOUT) :: buff
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.create_view_from_type_and_buffer_int64_t
         type(C_PTR) :: SHT_prv
-        SHT_prv = c_group_create_view_from_type_and_buffer_bufferify(obj%cxxmem, &
-            path, len_trim(path, kind=C_INT), type, &
-            int(num_elems, SIDRE_IndexType), buff%cxxmem, SHT_rv%cxxmem)
+        ! splicer begin class.Group.method.create_view_from_type_and_buffer_int64_t
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
+        SHT_prv = c_group_create_view_from_type_and_buffer_int64_t_bufferify(obj%cxxmem, &
+            path, SHT_path_len, type, num_elems, buff%cxxmem, &
+            SHT_rv%cxxmem)
         ! splicer end class.Group.method.create_view_from_type_and_buffer_int64_t
     end function group_create_view_from_type_and_buffer_int64_t
 
     function group_create_view_with_shape_and_buffer(obj, path, type, &
             ndims, shape, buff) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT, C_INT64_T, C_PTR, C_SHORT
+        use iso_c_binding, only : C_INT, C_PTR
         class(SidreGroup) :: obj
         character(len=*), intent(IN) :: path
         integer(TypeID), value, intent(IN) :: type
@@ -3124,11 +3546,13 @@ function group_create_view_with_shape_and_buffer(obj, path, type, &
         integer(SIDRE_IndexType), intent(IN) :: shape(:)
         type(SidreBuffer), intent(INOUT) :: buff
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.create_view_with_shape_and_buffer
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.Group.method.create_view_with_shape_and_buffer
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
         SHT_prv = c_group_create_view_with_shape_and_buffer_bufferify(obj%cxxmem, &
-            path, len_trim(path, kind=C_INT), type, ndims, shape, &
-            buff%cxxmem, SHT_rv%cxxmem)
+            path, SHT_path_len, type, ndims, shape, buff%cxxmem, &
+            SHT_rv%cxxmem)
         ! splicer end class.Group.method.create_view_with_shape_and_buffer
     end function group_create_view_with_shape_and_buffer
 
@@ -3139,29 +3563,31 @@ function group_create_view_external(obj, path, external_ptr) &
         character(len=*), intent(IN) :: path
         type(C_PTR), intent(IN) :: external_ptr
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.create_view_external
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.Group.method.create_view_external
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
         SHT_prv = c_group_create_view_external_bufferify(obj%cxxmem, &
-            path, len_trim(path, kind=C_INT), external_ptr, &
-            SHT_rv%cxxmem)
+            path, SHT_path_len, external_ptr, SHT_rv%cxxmem)
         ! splicer end class.Group.method.create_view_external
     end function group_create_view_external
 
     function group_create_view_from_type_external_int32_t(obj, path, &
             type, num_elems, external_ptr) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT, C_INT32_T, C_INT64_T, C_PTR, C_SHORT
+        use iso_c_binding, only : C_INT, C_INT32_T, C_PTR
         class(SidreGroup) :: obj
         character(len=*), intent(IN) :: path
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT32_T), value, intent(IN) :: num_elems
         type(C_PTR), intent(IN) :: external_ptr
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.create_view_from_type_external_int32_t
         type(C_PTR) :: SHT_prv
-        SHT_prv = c_group_create_view_from_type_external_bufferify(obj%cxxmem, &
-            path, len_trim(path, kind=C_INT), type, &
-            int(num_elems, SIDRE_IndexType), external_ptr, &
+        ! splicer begin class.Group.method.create_view_from_type_external_int32_t
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
+        SHT_prv = c_group_create_view_from_type_external_int32_t_bufferify(obj%cxxmem, &
+            path, SHT_path_len, type, num_elems, external_ptr, &
             SHT_rv%cxxmem)
         ! splicer end class.Group.method.create_view_from_type_external_int32_t
     end function group_create_view_from_type_external_int32_t
@@ -3169,18 +3595,19 @@ end function group_create_view_from_type_external_int32_t
     function group_create_view_from_type_external_int64_t(obj, path, &
             type, num_elems, external_ptr) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT, C_INT64_T, C_PTR, C_SHORT
+        use iso_c_binding, only : C_INT, C_INT64_T, C_PTR
         class(SidreGroup) :: obj
         character(len=*), intent(IN) :: path
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT64_T), value, intent(IN) :: num_elems
         type(C_PTR), intent(IN) :: external_ptr
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.create_view_from_type_external_int64_t
         type(C_PTR) :: SHT_prv
-        SHT_prv = c_group_create_view_from_type_external_bufferify(obj%cxxmem, &
-            path, len_trim(path, kind=C_INT), type, &
-            int(num_elems, SIDRE_IndexType), external_ptr, &
+        ! splicer begin class.Group.method.create_view_from_type_external_int64_t
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
+        SHT_prv = c_group_create_view_from_type_external_int64_t_bufferify(obj%cxxmem, &
+            path, SHT_path_len, type, num_elems, external_ptr, &
             SHT_rv%cxxmem)
         ! splicer end class.Group.method.create_view_from_type_external_int64_t
     end function group_create_view_from_type_external_int64_t
@@ -3188,7 +3615,7 @@ end function group_create_view_from_type_external_int64_t
     function group_create_view_with_shape_external(obj, path, type, &
             ndims, shape, external_ptr) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT, C_INT64_T, C_PTR, C_SHORT
+        use iso_c_binding, only : C_INT, C_PTR
         class(SidreGroup) :: obj
         character(len=*), intent(IN) :: path
         integer(TypeID), value, intent(IN) :: type
@@ -3196,63 +3623,68 @@ function group_create_view_with_shape_external(obj, path, type, &
         integer(SIDRE_IndexType), intent(IN) :: shape(:)
         type(C_PTR), intent(IN) :: external_ptr
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.create_view_with_shape_external
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.Group.method.create_view_with_shape_external
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
         SHT_prv = c_group_create_view_with_shape_external_bufferify(obj%cxxmem, &
-            path, len_trim(path, kind=C_INT), type, ndims, shape, &
-            external_ptr, SHT_rv%cxxmem)
+            path, SHT_path_len, type, ndims, shape, external_ptr, &
+            SHT_rv%cxxmem)
         ! splicer end class.Group.method.create_view_with_shape_external
     end function group_create_view_with_shape_external
 
     function group_create_view_and_allocate_nelems_int32_t(obj, path, &
             type, num_elems) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT, C_INT32_T, C_INT64_T, C_PTR, C_SHORT
+        use iso_c_binding, only : C_INT, C_INT32_T, C_PTR
         class(SidreGroup) :: obj
         character(len=*), intent(IN) :: path
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT32_T), value, intent(IN) :: num_elems
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.create_view_and_allocate_nelems_int32_t
         type(C_PTR) :: SHT_prv
-        SHT_prv = c_group_create_view_and_allocate_nelems_bufferify(obj%cxxmem, &
-            path, len_trim(path, kind=C_INT), type, &
-            int(num_elems, SIDRE_IndexType), SHT_rv%cxxmem)
+        ! splicer begin class.Group.method.create_view_and_allocate_nelems_int32_t
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
+        SHT_prv = c_group_create_view_and_allocate_nelems_int32_t_bufferify(obj%cxxmem, &
+            path, SHT_path_len, type, num_elems, SHT_rv%cxxmem)
         ! splicer end class.Group.method.create_view_and_allocate_nelems_int32_t
     end function group_create_view_and_allocate_nelems_int32_t
 
     function group_create_view_and_allocate_nelems_int64_t(obj, path, &
             type, num_elems) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT, C_INT64_T, C_PTR, C_SHORT
+        use iso_c_binding, only : C_INT, C_INT64_T, C_PTR
         class(SidreGroup) :: obj
         character(len=*), intent(IN) :: path
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT64_T), value, intent(IN) :: num_elems
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.create_view_and_allocate_nelems_int64_t
         type(C_PTR) :: SHT_prv
-        SHT_prv = c_group_create_view_and_allocate_nelems_bufferify(obj%cxxmem, &
-            path, len_trim(path, kind=C_INT), type, &
-            int(num_elems, SIDRE_IndexType), SHT_rv%cxxmem)
+        ! splicer begin class.Group.method.create_view_and_allocate_nelems_int64_t
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
+        SHT_prv = c_group_create_view_and_allocate_nelems_int64_t_bufferify(obj%cxxmem, &
+            path, SHT_path_len, type, num_elems, SHT_rv%cxxmem)
         ! splicer end class.Group.method.create_view_and_allocate_nelems_int64_t
     end function group_create_view_and_allocate_nelems_int64_t
 
     function group_create_view_with_shape_and_allocate(obj, path, type, &
             ndims, shape) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT, C_INT64_T, C_PTR, C_SHORT
+        use iso_c_binding, only : C_INT, C_PTR
         class(SidreGroup) :: obj
         character(len=*), intent(IN) :: path
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT), value, intent(IN) :: ndims
         integer(SIDRE_IndexType), intent(IN) :: shape(:)
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.create_view_with_shape_and_allocate
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.Group.method.create_view_with_shape_and_allocate
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
         SHT_prv = c_group_create_view_with_shape_and_allocate_bufferify(obj%cxxmem, &
-            path, len_trim(path, kind=C_INT), type, ndims, shape, &
-            SHT_rv%cxxmem)
+            path, SHT_path_len, type, ndims, shape, SHT_rv%cxxmem)
         ! splicer end class.Group.method.create_view_with_shape_and_allocate
     end function group_create_view_with_shape_and_allocate
 
@@ -3263,10 +3695,12 @@ function group_create_view_scalar_int(obj, path, value) &
         character(len=*), intent(IN) :: path
         integer(C_INT), value, intent(IN) :: value
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.create_view_scalar_int
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.Group.method.create_view_scalar_int
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
         SHT_prv = c_group_create_view_scalar_bufferify_int(obj%cxxmem, &
-            path, len_trim(path, kind=C_INT), value, SHT_rv%cxxmem)
+            path, SHT_path_len, value, SHT_rv%cxxmem)
         ! splicer end class.Group.method.create_view_scalar_int
     end function group_create_view_scalar_int
 
@@ -3277,10 +3711,12 @@ function group_create_view_scalar_long(obj, path, value) &
         character(len=*), intent(IN) :: path
         integer(C_LONG), value, intent(IN) :: value
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.create_view_scalar_long
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.Group.method.create_view_scalar_long
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
         SHT_prv = c_group_create_view_scalar_bufferify_long(obj%cxxmem, &
-            path, len_trim(path, kind=C_INT), value, SHT_rv%cxxmem)
+            path, SHT_path_len, value, SHT_rv%cxxmem)
         ! splicer end class.Group.method.create_view_scalar_long
     end function group_create_view_scalar_long
 
@@ -3291,10 +3727,12 @@ function group_create_view_scalar_float(obj, path, value) &
         character(len=*), intent(IN) :: path
         real(C_FLOAT), value, intent(IN) :: value
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.create_view_scalar_float
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.Group.method.create_view_scalar_float
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
         SHT_prv = c_group_create_view_scalar_bufferify_float(obj%cxxmem, &
-            path, len_trim(path, kind=C_INT), value, SHT_rv%cxxmem)
+            path, SHT_path_len, value, SHT_rv%cxxmem)
         ! splicer end class.Group.method.create_view_scalar_float
     end function group_create_view_scalar_float
 
@@ -3305,10 +3743,12 @@ function group_create_view_scalar_double(obj, path, value) &
         character(len=*), intent(IN) :: path
         real(C_DOUBLE), value, intent(IN) :: value
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.create_view_scalar_double
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.Group.method.create_view_scalar_double
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
         SHT_prv = c_group_create_view_scalar_bufferify_double(obj%cxxmem, &
-            path, len_trim(path, kind=C_INT), value, SHT_rv%cxxmem)
+            path, SHT_path_len, value, SHT_rv%cxxmem)
         ! splicer end class.Group.method.create_view_scalar_double
     end function group_create_view_scalar_double
 
@@ -3319,11 +3759,14 @@ function group_create_view_string(obj, path, value) &
         character(len=*), intent(IN) :: path
         character(len=*), intent(IN) :: value
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.create_view_string
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.Group.method.create_view_string
+        integer(C_INT) SHT_path_len
+        integer(C_INT) SHT_value_len
+        SHT_path_len = len(path, kind=C_INT)
+        SHT_value_len = len(value, kind=C_INT)
         SHT_prv = c_group_create_view_string_bufferify(obj%cxxmem, path, &
-            len_trim(path, kind=C_INT), value, &
-            len_trim(value, kind=C_INT), SHT_rv%cxxmem)
+            SHT_path_len, value, SHT_value_len, SHT_rv%cxxmem)
         ! splicer end class.Group.method.create_view_string
     end function group_create_view_string
 
@@ -3332,8 +3775,10 @@ subroutine group_destroy_view(obj, path)
         class(SidreGroup) :: obj
         character(len=*), intent(IN) :: path
         ! splicer begin class.Group.method.destroy_view
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
         call c_group_destroy_view_bufferify(obj%cxxmem, path, &
-            len_trim(path, kind=C_INT))
+            SHT_path_len)
         ! splicer end class.Group.method.destroy_view
     end subroutine group_destroy_view
 
@@ -3342,13 +3787,15 @@ subroutine group_destroy_view_and_data_name(obj, path)
         class(SidreGroup) :: obj
         character(len=*), intent(IN) :: path
         ! splicer begin class.Group.method.destroy_view_and_data_name
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
         call c_group_destroy_view_and_data_name_bufferify(obj%cxxmem, &
-            path, len_trim(path, kind=C_INT))
+            path, SHT_path_len)
         ! splicer end class.Group.method.destroy_view_and_data_name
     end subroutine group_destroy_view_and_data_name
 
     subroutine group_destroy_view_and_data_index_int32_t(obj, idx)
-        use iso_c_binding, only : C_INT32_T, C_INT64_T
+        use iso_c_binding, only : C_INT32_T
         class(SidreGroup) :: obj
         integer(C_INT32_T), value, intent(IN) :: idx
         ! splicer begin class.Group.method.destroy_view_and_data_index_int32_t
@@ -3373,8 +3820,8 @@ function group_move_view(obj, view) &
         class(SidreGroup) :: obj
         type(SidreView), intent(INOUT) :: view
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.move_view
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.Group.method.move_view
         SHT_prv = c_group_move_view(obj%cxxmem, view%cxxmem, &
             SHT_rv%cxxmem)
         ! splicer end class.Group.method.move_view
@@ -3386,8 +3833,8 @@ function group_copy_view(obj, view) &
         class(SidreGroup) :: obj
         type(SidreView), intent(INOUT) :: view
         type(SidreView) :: SHT_rv
-        ! splicer begin class.Group.method.copy_view
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.Group.method.copy_view
         SHT_prv = c_group_copy_view(obj%cxxmem, view%cxxmem, &
             SHT_rv%cxxmem)
         ! splicer end class.Group.method.copy_view
@@ -3400,8 +3847,10 @@ function group_has_group(obj, path) &
         character(len=*), intent(IN) :: path
         logical :: SHT_rv
         ! splicer begin class.Group.method.has_group
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
         SHT_rv = c_group_has_group_bufferify(obj%cxxmem, path, &
-            len_trim(path, kind=C_INT))
+            SHT_path_len)
         ! splicer end class.Group.method.has_group
     end function group_has_group
 
@@ -3412,32 +3861,38 @@ function group_has_child_group(obj, name) &
         character(len=*), intent(IN) :: name
         logical :: SHT_rv
         ! splicer begin class.Group.method.has_child_group
+        integer(C_INT) SHT_name_len
+        SHT_name_len = len(name, kind=C_INT)
         SHT_rv = c_group_has_child_group_bufferify(obj%cxxmem, name, &
-            len_trim(name, kind=C_INT))
+            SHT_name_len)
         ! splicer end class.Group.method.has_child_group
     end function group_has_child_group
 
     function group_get_group_index(obj, name) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT, C_INT64_T
+        use iso_c_binding, only : C_INT
         class(SidreGroup) :: obj
         character(len=*), intent(IN) :: name
         integer(SIDRE_IndexType) :: SHT_rv
         ! splicer begin class.Group.method.get_group_index
+        integer(C_INT) SHT_name_len
+        SHT_name_len = len(name, kind=C_INT)
         SHT_rv = c_group_get_group_index_bufferify(obj%cxxmem, name, &
-            len_trim(name, kind=C_INT))
+            SHT_name_len)
         ! splicer end class.Group.method.get_group_index
     end function group_get_group_index
 
     function group_get_group_name_int32_t(obj, idx) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT, C_INT32_T, C_INT64_T
+        use iso_c_binding, only : C_INT, C_INT32_T
         class(SidreGroup) :: obj
         integer(C_INT32_T), value, intent(IN) :: idx
         character(len=MAXNAMESIZE) :: SHT_rv
         ! splicer begin class.Group.method.get_group_name_int32_t
-        call c_group_get_group_name_bufferify(obj%cxxmem, &
-            int(idx, SIDRE_IndexType), SHT_rv, len(SHT_rv, kind=C_INT))
+        integer(C_INT) SHT_rv_len
+        SHT_rv_len = len(SHT_rv, kind=C_INT)
+        call c_group_get_group_name_int32_t_bufferify(obj%cxxmem, idx, &
+            SHT_rv, SHT_rv_len)
         ! splicer end class.Group.method.get_group_name_int32_t
     end function group_get_group_name_int32_t
 
@@ -3448,8 +3903,10 @@ function group_get_group_name_int64_t(obj, idx) &
         integer(C_INT64_T), value, intent(IN) :: idx
         character(len=MAXNAMESIZE) :: SHT_rv
         ! splicer begin class.Group.method.get_group_name_int64_t
-        call c_group_get_group_name_bufferify(obj%cxxmem, &
-            int(idx, SIDRE_IndexType), SHT_rv, len(SHT_rv, kind=C_INT))
+        integer(C_INT) SHT_rv_len
+        SHT_rv_len = len(SHT_rv, kind=C_INT)
+        call c_group_get_group_name_int64_t_bufferify(obj%cxxmem, idx, &
+            SHT_rv, SHT_rv_len)
         ! splicer end class.Group.method.get_group_name_int64_t
     end function group_get_group_name_int64_t
 
@@ -3459,23 +3916,25 @@ function group_get_group_from_name(obj, path) &
         class(SidreGroup) :: obj
         character(len=*), intent(IN) :: path
         type(SidreGroup) :: SHT_rv
-        ! splicer begin class.Group.method.get_group_from_name
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.Group.method.get_group_from_name
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
         SHT_prv = c_group_get_group_from_name_bufferify(obj%cxxmem, &
-            path, len_trim(path, kind=C_INT), SHT_rv%cxxmem)
+            path, SHT_path_len, SHT_rv%cxxmem)
         ! splicer end class.Group.method.get_group_from_name
     end function group_get_group_from_name
 
     function group_get_group_from_index_int32_t(obj, idx) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT32_T, C_INT64_T, C_PTR
+        use iso_c_binding, only : C_INT32_T, C_PTR
         class(SidreGroup) :: obj
         integer(C_INT32_T), value, intent(IN) :: idx
         type(SidreGroup) :: SHT_rv
-        ! splicer begin class.Group.method.get_group_from_index_int32_t
         type(C_PTR) :: SHT_prv
-        SHT_prv = c_group_get_group_from_index(obj%cxxmem, &
-            int(idx, SIDRE_IndexType), SHT_rv%cxxmem)
+        ! splicer begin class.Group.method.get_group_from_index_int32_t
+        SHT_prv = c_group_get_group_from_index_int32_t(obj%cxxmem, idx, &
+            SHT_rv%cxxmem)
         ! splicer end class.Group.method.get_group_from_index_int32_t
     end function group_get_group_from_index_int32_t
 
@@ -3485,16 +3944,15 @@ function group_get_group_from_index_int64_t(obj, idx) &
         class(SidreGroup) :: obj
         integer(C_INT64_T), value, intent(IN) :: idx
         type(SidreGroup) :: SHT_rv
-        ! splicer begin class.Group.method.get_group_from_index_int64_t
         type(C_PTR) :: SHT_prv
-        SHT_prv = c_group_get_group_from_index(obj%cxxmem, &
-            int(idx, SIDRE_IndexType), SHT_rv%cxxmem)
+        ! splicer begin class.Group.method.get_group_from_index_int64_t
+        SHT_prv = c_group_get_group_from_index_int64_t(obj%cxxmem, idx, &
+            SHT_rv%cxxmem)
         ! splicer end class.Group.method.get_group_from_index_int64_t
     end function group_get_group_from_index_int64_t
 
     function group_get_first_valid_group_index(obj) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT64_T
         class(SidreGroup) :: obj
         integer(SIDRE_IndexType) :: SHT_rv
         ! splicer begin class.Group.method.get_first_valid_group_index
@@ -3504,7 +3962,7 @@ end function group_get_first_valid_group_index
 
     function group_get_next_valid_group_index_int32_t(obj, idx) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT32_T, C_INT64_T
+        use iso_c_binding, only : C_INT32_T
         class(SidreGroup) :: obj
         integer(C_INT32_T), value, intent(IN) :: idx
         integer(SIDRE_IndexType) :: SHT_rv
@@ -3532,10 +3990,12 @@ function group_create_group(obj, path) &
         class(SidreGroup) :: obj
         character(len=*), intent(IN) :: path
         type(SidreGroup) :: SHT_rv
-        ! splicer begin class.Group.method.create_group
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.Group.method.create_group
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
         SHT_prv = c_group_create_group_bufferify(obj%cxxmem, path, &
-            len_trim(path, kind=C_INT), SHT_rv%cxxmem)
+            SHT_path_len, SHT_rv%cxxmem)
         ! splicer end class.Group.method.create_group
     end function group_create_group
 
@@ -3544,13 +4004,15 @@ subroutine group_destroy_group_name(obj, path)
         class(SidreGroup) :: obj
         character(len=*), intent(IN) :: path
         ! splicer begin class.Group.method.destroy_group_name
+        integer(C_INT) SHT_path_len
+        SHT_path_len = len(path, kind=C_INT)
         call c_group_destroy_group_name_bufferify(obj%cxxmem, path, &
-            len_trim(path, kind=C_INT))
+            SHT_path_len)
         ! splicer end class.Group.method.destroy_group_name
     end subroutine group_destroy_group_name
 
     subroutine group_destroy_group_index_int32_t(obj, idx)
-        use iso_c_binding, only : C_INT32_T, C_INT64_T
+        use iso_c_binding, only : C_INT32_T
         class(SidreGroup) :: obj
         integer(C_INT32_T), value, intent(IN) :: idx
         ! splicer begin class.Group.method.destroy_group_index_int32_t
@@ -3575,8 +4037,8 @@ function group_move_group(obj, grp) &
         class(SidreGroup) :: obj
         type(SidreGroup), intent(INOUT) :: grp
         type(SidreGroup) :: SHT_rv
-        ! splicer begin class.Group.method.move_group
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.Group.method.move_group
         SHT_prv = c_group_move_group(obj%cxxmem, grp%cxxmem, &
             SHT_rv%cxxmem)
         ! splicer end class.Group.method.move_group
@@ -3606,9 +4068,12 @@ subroutine group_save(obj, file_path, protocol)
         character(len=*), intent(IN) :: file_path
         character(len=*), intent(IN) :: protocol
         ! splicer begin class.Group.method.save
+        integer(C_INT) SHT_file_path_len
+        integer(C_INT) SHT_protocol_len
+        SHT_file_path_len = len(file_path, kind=C_INT)
+        SHT_protocol_len = len(protocol, kind=C_INT)
         call c_group_save_bufferify(obj%cxxmem, file_path, &
-            len_trim(file_path, kind=C_INT), protocol, &
-            len_trim(protocol, kind=C_INT))
+            SHT_file_path_len, protocol, SHT_protocol_len)
         ! splicer end class.Group.method.save
     end subroutine group_save
 
@@ -3618,9 +4083,12 @@ subroutine group_load_0(obj, file_path, protocol)
         character(len=*), intent(IN) :: file_path
         character(len=*), intent(IN) :: protocol
         ! splicer begin class.Group.method.load_0
+        integer(C_INT) SHT_file_path_len
+        integer(C_INT) SHT_protocol_len
+        SHT_file_path_len = len(file_path, kind=C_INT)
+        SHT_protocol_len = len(protocol, kind=C_INT)
         call c_group_load_0_bufferify(obj%cxxmem, file_path, &
-            len_trim(file_path, kind=C_INT), protocol, &
-            len_trim(protocol, kind=C_INT))
+            SHT_file_path_len, protocol, SHT_protocol_len)
         ! splicer end class.Group.method.load_0
     end subroutine group_load_0
 
@@ -3631,11 +4099,15 @@ subroutine group_load_1(obj, file_path, protocol, preserve_contents)
         character(len=*), intent(IN) :: protocol
         logical, value, intent(IN) :: preserve_contents
         ! splicer begin class.Group.method.load_1
+        integer(C_INT) SHT_file_path_len
+        integer(C_INT) SHT_protocol_len
         logical(C_BOOL) SH_preserve_contents
+        SHT_file_path_len = len(file_path, kind=C_INT)
+        SHT_protocol_len = len(protocol, kind=C_INT)
         SH_preserve_contents = preserve_contents  ! coerce to C_BOOL
         call c_group_load_1_bufferify(obj%cxxmem, file_path, &
-            len_trim(file_path, kind=C_INT), protocol, &
-            len_trim(protocol, kind=C_INT), SH_preserve_contents)
+            SHT_file_path_len, protocol, SHT_protocol_len, &
+            SH_preserve_contents)
         ! splicer end class.Group.method.load_1
     end subroutine group_load_1
 
@@ -3644,8 +4116,10 @@ subroutine group_load_external_data(obj, file_path)
         class(SidreGroup) :: obj
         character(len=*), intent(IN) :: file_path
         ! splicer begin class.Group.method.load_external_data
+        integer(C_INT) SHT_file_path_len
+        SHT_file_path_len = len(file_path, kind=C_INT)
         call c_group_load_external_data_bufferify(obj%cxxmem, file_path, &
-            len_trim(file_path, kind=C_INT))
+            SHT_file_path_len)
         ! splicer end class.Group.method.load_external_data
     end subroutine group_load_external_data
 
@@ -3656,8 +4130,10 @@ function group_rename(obj, new_name) &
         character(len=*), intent(IN) :: new_name
         logical :: SHT_rv
         ! splicer begin class.Group.method.rename
+        integer(C_INT) SHT_new_name_len
+        SHT_new_name_len = len(new_name, kind=C_INT)
         SHT_rv = c_group_rename_bufferify(obj%cxxmem, new_name, &
-            len_trim(new_name, kind=C_INT))
+            SHT_new_name_len)
         ! splicer end class.Group.method.rename
     end function group_rename
 
@@ -3693,7 +4169,7 @@ subroutine group_get_scalar_int(grp, name, value)
         character(*), intent(IN) :: name
         integer(C_INT), intent(OUT) :: value
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
         type(C_PTR) viewptr
 
         lname = len_trim(name)
@@ -3708,7 +4184,7 @@ subroutine group_get_scalar_long(grp, name, value)
         character(*), intent(IN) :: name
         integer(C_LONG), intent(OUT) :: value
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
         type(C_PTR) viewptr
 
         lname = len_trim(name)
@@ -3723,7 +4199,7 @@ subroutine group_get_scalar_float(grp, name, value)
         character(*), intent(IN) :: name
         real(C_FLOAT), intent(OUT) :: value
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
         type(C_PTR) viewptr
 
         lname = len_trim(name)
@@ -3738,7 +4214,7 @@ subroutine group_get_scalar_double(grp, name, value)
         character(*), intent(IN) :: name
         real(C_DOUBLE), intent(OUT) :: value
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
         type(C_PTR) viewptr
 
         lname = len_trim(name)
@@ -3753,7 +4229,7 @@ subroutine group_set_scalar_int(grp, name, value)
         character(*), intent(IN) :: name
         integer(C_INT), intent(IN) :: value
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
         type(C_PTR) viewptr
 
         lname = len_trim(name)
@@ -3768,7 +4244,7 @@ subroutine group_set_scalar_long(grp, name, value)
         character(*), intent(IN) :: name
         integer(C_LONG), intent(IN) :: value
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
         type(C_PTR) viewptr
 
         lname = len_trim(name)
@@ -3783,7 +4259,7 @@ subroutine group_set_scalar_float(grp, name, value)
         character(*), intent(IN) :: name
         real(C_FLOAT), intent(IN) :: value
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
         type(C_PTR) viewptr
 
         lname = len_trim(name)
@@ -3798,7 +4274,7 @@ subroutine group_set_scalar_double(grp, name, value)
         character(*), intent(IN) :: name
         real(C_DOUBLE), intent(IN) :: value
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
         type(C_PTR) viewptr
 
         lname = len_trim(name)
@@ -4336,7 +4812,7 @@ subroutine group_set_array_data_ptr_int_scalar(grp, name, value)
         character(len=*), intent(IN) :: name
         integer(C_INT), target, intent(IN) :: value
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
     !    integer(SIDRE_IndexType) :: extents(1)
     !    integer(C_INT), parameter :: type = SIDRE_INT_ID
         type(C_PTR) addr, viewptr
@@ -4365,7 +4841,7 @@ subroutine group_set_array_data_ptr_int_1d(grp, name, value)
         character(len=*), intent(IN) :: name
         integer(C_INT), target, intent(IN) :: value(:)
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
     !    integer(SIDRE_IndexType) :: extents(1)
     !    integer(C_INT), parameter :: type = SIDRE_INT_ID
         type(C_PTR) addr, viewptr
@@ -4394,7 +4870,7 @@ subroutine group_set_array_data_ptr_int_2d(grp, name, value)
         character(len=*), intent(IN) :: name
         integer(C_INT), target, intent(IN) :: value(:,:)
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
     !    integer(SIDRE_IndexType) :: extents(2)
     !    integer(C_INT), parameter :: type = SIDRE_INT_ID
         type(C_PTR) addr, viewptr
@@ -4423,7 +4899,7 @@ subroutine group_set_array_data_ptr_int_3d(grp, name, value)
         character(len=*), intent(IN) :: name
         integer(C_INT), target, intent(IN) :: value(:,:,:)
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
     !    integer(SIDRE_IndexType) :: extents(3)
     !    integer(C_INT), parameter :: type = SIDRE_INT_ID
         type(C_PTR) addr, viewptr
@@ -4452,7 +4928,7 @@ subroutine group_set_array_data_ptr_int_4d(grp, name, value)
         character(len=*), intent(IN) :: name
         integer(C_INT), target, intent(IN) :: value(:,:,:,:)
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
     !    integer(SIDRE_IndexType) :: extents(4)
     !    integer(C_INT), parameter :: type = SIDRE_INT_ID
         type(C_PTR) addr, viewptr
@@ -4481,7 +4957,7 @@ subroutine group_set_array_data_ptr_long_scalar(grp, name, value)
         character(len=*), intent(IN) :: name
         integer(C_LONG), target, intent(IN) :: value
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
     !    integer(SIDRE_IndexType) :: extents(1)
     !    integer(C_INT), parameter :: type = SIDRE_LONG_ID
         type(C_PTR) addr, viewptr
@@ -4510,7 +4986,7 @@ subroutine group_set_array_data_ptr_long_1d(grp, name, value)
         character(len=*), intent(IN) :: name
         integer(C_LONG), target, intent(IN) :: value(:)
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
     !    integer(SIDRE_IndexType) :: extents(1)
     !    integer(C_INT), parameter :: type = SIDRE_LONG_ID
         type(C_PTR) addr, viewptr
@@ -4539,7 +5015,7 @@ subroutine group_set_array_data_ptr_long_2d(grp, name, value)
         character(len=*), intent(IN) :: name
         integer(C_LONG), target, intent(IN) :: value(:,:)
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
     !    integer(SIDRE_IndexType) :: extents(2)
     !    integer(C_INT), parameter :: type = SIDRE_LONG_ID
         type(C_PTR) addr, viewptr
@@ -4568,7 +5044,7 @@ subroutine group_set_array_data_ptr_long_3d(grp, name, value)
         character(len=*), intent(IN) :: name
         integer(C_LONG), target, intent(IN) :: value(:,:,:)
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
     !    integer(SIDRE_IndexType) :: extents(3)
     !    integer(C_INT), parameter :: type = SIDRE_LONG_ID
         type(C_PTR) addr, viewptr
@@ -4597,7 +5073,7 @@ subroutine group_set_array_data_ptr_long_4d(grp, name, value)
         character(len=*), intent(IN) :: name
         integer(C_LONG), target, intent(IN) :: value(:,:,:,:)
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
     !    integer(SIDRE_IndexType) :: extents(4)
     !    integer(C_INT), parameter :: type = SIDRE_LONG_ID
         type(C_PTR) addr, viewptr
@@ -4626,7 +5102,7 @@ subroutine group_set_array_data_ptr_float_scalar(grp, name, value)
         character(len=*), intent(IN) :: name
         real(C_FLOAT), target, intent(IN) :: value
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
     !    integer(SIDRE_IndexType) :: extents(1)
     !    integer(C_INT), parameter :: type = SIDRE_FLOAT_ID
         type(C_PTR) addr, viewptr
@@ -4655,7 +5131,7 @@ subroutine group_set_array_data_ptr_float_1d(grp, name, value)
         character(len=*), intent(IN) :: name
         real(C_FLOAT), target, intent(IN) :: value(:)
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
     !    integer(SIDRE_IndexType) :: extents(1)
     !    integer(C_INT), parameter :: type = SIDRE_FLOAT_ID
         type(C_PTR) addr, viewptr
@@ -4684,7 +5160,7 @@ subroutine group_set_array_data_ptr_float_2d(grp, name, value)
         character(len=*), intent(IN) :: name
         real(C_FLOAT), target, intent(IN) :: value(:,:)
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
     !    integer(SIDRE_IndexType) :: extents(2)
     !    integer(C_INT), parameter :: type = SIDRE_FLOAT_ID
         type(C_PTR) addr, viewptr
@@ -4713,7 +5189,7 @@ subroutine group_set_array_data_ptr_float_3d(grp, name, value)
         character(len=*), intent(IN) :: name
         real(C_FLOAT), target, intent(IN) :: value(:,:,:)
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
     !    integer(SIDRE_IndexType) :: extents(3)
     !    integer(C_INT), parameter :: type = SIDRE_FLOAT_ID
         type(C_PTR) addr, viewptr
@@ -4742,7 +5218,7 @@ subroutine group_set_array_data_ptr_float_4d(grp, name, value)
         character(len=*), intent(IN) :: name
         real(C_FLOAT), target, intent(IN) :: value(:,:,:,:)
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
     !    integer(SIDRE_IndexType) :: extents(4)
     !    integer(C_INT), parameter :: type = SIDRE_FLOAT_ID
         type(C_PTR) addr, viewptr
@@ -4771,7 +5247,7 @@ subroutine group_set_array_data_ptr_double_scalar(grp, name, value)
         character(len=*), intent(IN) :: name
         real(C_DOUBLE), target, intent(IN) :: value
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
     !    integer(SIDRE_IndexType) :: extents(1)
     !    integer(C_INT), parameter :: type = SIDRE_DOUBLE_ID
         type(C_PTR) addr, viewptr
@@ -4800,7 +5276,7 @@ subroutine group_set_array_data_ptr_double_1d(grp, name, value)
         character(len=*), intent(IN) :: name
         real(C_DOUBLE), target, intent(IN) :: value(:)
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
     !    integer(SIDRE_IndexType) :: extents(1)
     !    integer(C_INT), parameter :: type = SIDRE_DOUBLE_ID
         type(C_PTR) addr, viewptr
@@ -4829,7 +5305,7 @@ subroutine group_set_array_data_ptr_double_2d(grp, name, value)
         character(len=*), intent(IN) :: name
         real(C_DOUBLE), target, intent(IN) :: value(:,:)
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
     !    integer(SIDRE_IndexType) :: extents(2)
     !    integer(C_INT), parameter :: type = SIDRE_DOUBLE_ID
         type(C_PTR) addr, viewptr
@@ -4858,7 +5334,7 @@ subroutine group_set_array_data_ptr_double_3d(grp, name, value)
         character(len=*), intent(IN) :: name
         real(C_DOUBLE), target, intent(IN) :: value(:,:,:)
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
     !    integer(SIDRE_IndexType) :: extents(3)
     !    integer(C_INT), parameter :: type = SIDRE_DOUBLE_ID
         type(C_PTR) addr, viewptr
@@ -4887,7 +5363,7 @@ subroutine group_set_array_data_ptr_double_4d(grp, name, value)
         character(len=*), intent(IN) :: name
         real(C_DOUBLE), target, intent(IN) :: value(:,:,:,:)
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
     !    integer(SIDRE_IndexType) :: extents(4)
     !    integer(C_INT), parameter :: type = SIDRE_DOUBLE_ID
         type(C_PTR) addr, viewptr
@@ -4912,7 +5388,7 @@ subroutine group_get_string(grp, name, value)
         character(*), intent(IN) :: name
         character(*), intent(OUT) :: value
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
         type(C_PTR) viewptr
 
         lname = len_trim(name)
@@ -4926,7 +5402,7 @@ subroutine group_set_string(grp, name, value)
         character(*), intent(IN) :: name
         character(*), intent(IN) :: value
         integer(C_INT) :: lname
-        type(SIDRE_SHROUD_view_capsule) view
+        type(SIDRE_SHROUD_capsule_data) view
         type(C_PTR) viewptr
 
         lname = len_trim(name)
@@ -4938,7 +5414,6 @@ end subroutine group_set_string
 
     function view_get_index(obj) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT64_T
         class(SidreView) :: obj
         integer(SIDRE_IndexType) :: SHT_rv
         ! splicer begin class.View.method.get_index
@@ -4952,8 +5427,9 @@ function view_get_name(obj) &
         class(SidreView) :: obj
         character(len=MAXNAMESIZE) :: SHT_rv
         ! splicer begin class.View.method.get_name
-        call c_view_get_name_bufferify(obj%cxxmem, SHT_rv, &
-            len(SHT_rv, kind=C_INT))
+        integer(C_INT) SHT_rv_len
+        SHT_rv_len = len(SHT_rv, kind=C_INT)
+        call c_view_get_name_bufferify(obj%cxxmem, SHT_rv, SHT_rv_len)
         ! splicer end class.View.method.get_name
     end function view_get_name
 
@@ -4963,8 +5439,9 @@ function view_get_path(obj) &
         class(SidreView) :: obj
         character(len=MAXNAMESIZE) :: SHT_rv
         ! splicer begin class.View.method.get_path
-        call c_view_get_path_bufferify(obj%cxxmem, SHT_rv, &
-            len(SHT_rv, kind=C_INT))
+        integer(C_INT) SHT_rv_len
+        SHT_rv_len = len(SHT_rv, kind=C_INT)
+        call c_view_get_path_bufferify(obj%cxxmem, SHT_rv, SHT_rv_len)
         ! splicer end class.View.method.get_path
     end function view_get_path
 
@@ -4974,8 +5451,10 @@ function view_get_path_name(obj) &
         class(SidreView) :: obj
         character(len=MAXNAMESIZE) :: SHT_rv
         ! splicer begin class.View.method.get_path_name
+        integer(C_INT) SHT_rv_len
+        SHT_rv_len = len(SHT_rv, kind=C_INT)
         call c_view_get_path_name_bufferify(obj%cxxmem, SHT_rv, &
-            len(SHT_rv, kind=C_INT))
+            SHT_rv_len)
         ! splicer end class.View.method.get_path_name
     end function view_get_path_name
 
@@ -4984,8 +5463,8 @@ function view_get_owning_group(obj) &
         use iso_c_binding, only : C_PTR
         class(SidreView) :: obj
         type(SidreGroup) :: SHT_rv
-        ! splicer begin class.View.method.get_owning_group
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.View.method.get_owning_group
         SHT_prv = c_view_get_owning_group(obj%cxxmem, SHT_rv%cxxmem)
         ! splicer end class.View.method.get_owning_group
     end function view_get_owning_group
@@ -5005,8 +5484,8 @@ function view_get_buffer(obj) &
         use iso_c_binding, only : C_PTR
         class(SidreView) :: obj
         type(SidreBuffer) :: SHT_rv
-        ! splicer begin class.View.method.get_buffer
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.View.method.get_buffer
         SHT_prv = c_view_get_buffer(obj%cxxmem, SHT_rv%cxxmem)
         ! splicer end class.View.method.get_buffer
     end function view_get_buffer
@@ -5093,7 +5572,6 @@ end function view_is_string
 
     function view_get_type_id(obj) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT
         class(SidreView) :: obj
         integer(TypeIDint) :: SHT_rv
         ! splicer begin class.View.method.get_type_id
@@ -5163,7 +5641,7 @@ end function view_get_num_dimensions
 
     function view_get_shape(obj, ndims, shape) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT, C_INT64_T
+        use iso_c_binding, only : C_INT
         class(SidreView) :: obj
         integer(C_INT), value, intent(IN) :: ndims
         integer(SIDRE_IndexType), intent(OUT) :: shape(:)
@@ -5181,7 +5659,7 @@ subroutine view_allocate_simple(obj)
     end subroutine view_allocate_simple
 
     subroutine view_allocate_from_type_int32_t(obj, type, num_elems)
-        use iso_c_binding, only : C_INT32_T, C_INT64_T, C_SHORT
+        use iso_c_binding, only : C_INT32_T
         class(SidreView) :: obj
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT32_T), value, intent(IN) :: num_elems
@@ -5192,7 +5670,7 @@ subroutine view_allocate_from_type_int32_t(obj, type, num_elems)
     end subroutine view_allocate_from_type_int32_t
 
     subroutine view_allocate_from_type_int64_t(obj, type, num_elems)
-        use iso_c_binding, only : C_INT64_T, C_SHORT
+        use iso_c_binding, only : C_INT64_T
         class(SidreView) :: obj
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT64_T), value, intent(IN) :: num_elems
@@ -5203,7 +5681,7 @@ subroutine view_allocate_from_type_int64_t(obj, type, num_elems)
     end subroutine view_allocate_from_type_int64_t
 
     subroutine view_reallocate_int32_t(obj, num_elems)
-        use iso_c_binding, only : C_INT32_T, C_INT64_T
+        use iso_c_binding, only : C_INT32_T
         class(SidreView) :: obj
         integer(C_INT32_T), value, intent(IN) :: num_elems
         ! splicer begin class.View.method.reallocate_int32_t
@@ -5232,32 +5710,32 @@ end subroutine view_attach_buffer_only
 
     subroutine view_attach_buffer_type_int32_t(obj, type, num_elems, &
             buff)
-        use iso_c_binding, only : C_INT32_T, C_INT64_T, C_SHORT
+        use iso_c_binding, only : C_INT32_T
         class(SidreView) :: obj
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT32_T), value, intent(IN) :: num_elems
         type(SidreBuffer), intent(INOUT) :: buff
         ! splicer begin class.View.method.attach_buffer_type_int32_t
-        call c_view_attach_buffer_type(obj%cxxmem, type, &
-            int(num_elems, SIDRE_IndexType), buff%cxxmem)
+        call c_view_attach_buffer_type_int32_t(obj%cxxmem, type, &
+            num_elems, buff%cxxmem)
         ! splicer end class.View.method.attach_buffer_type_int32_t
     end subroutine view_attach_buffer_type_int32_t
 
     subroutine view_attach_buffer_type_int64_t(obj, type, num_elems, &
             buff)
-        use iso_c_binding, only : C_INT64_T, C_SHORT
+        use iso_c_binding, only : C_INT64_T
         class(SidreView) :: obj
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT64_T), value, intent(IN) :: num_elems
         type(SidreBuffer), intent(INOUT) :: buff
         ! splicer begin class.View.method.attach_buffer_type_int64_t
-        call c_view_attach_buffer_type(obj%cxxmem, type, &
-            int(num_elems, SIDRE_IndexType), buff%cxxmem)
+        call c_view_attach_buffer_type_int64_t(obj%cxxmem, type, &
+            num_elems, buff%cxxmem)
         ! splicer end class.View.method.attach_buffer_type_int64_t
     end subroutine view_attach_buffer_type_int64_t
 
     subroutine view_attach_buffer_shape(obj, type, ndims, shape, buff)
-        use iso_c_binding, only : C_INT, C_INT64_T, C_SHORT
+        use iso_c_binding, only : C_INT
         class(SidreView) :: obj
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT), value, intent(IN) :: ndims
@@ -5284,7 +5762,6 @@ subroutine view_apply_0(obj)
     end subroutine view_apply_0
 
     subroutine view_apply_nelems(obj, num_elems)
-        use iso_c_binding, only : C_INT64_T
         class(SidreView) :: obj
         integer(SIDRE_IndexType), value, intent(IN) :: num_elems
         ! splicer begin class.View.method.apply_nelems
@@ -5293,7 +5770,6 @@ subroutine view_apply_nelems(obj, num_elems)
     end subroutine view_apply_nelems
 
     subroutine view_apply_nelems_offset(obj, num_elems, offset)
-        use iso_c_binding, only : C_INT64_T
         class(SidreView) :: obj
         integer(SIDRE_IndexType), value, intent(IN) :: num_elems
         integer(SIDRE_IndexType), value, intent(IN) :: offset
@@ -5304,7 +5780,6 @@ end subroutine view_apply_nelems_offset
 
     subroutine view_apply_nelems_offset_stride(obj, num_elems, offset, &
             stride)
-        use iso_c_binding, only : C_INT64_T
         class(SidreView) :: obj
         integer(SIDRE_IndexType), value, intent(IN) :: num_elems
         integer(SIDRE_IndexType), value, intent(IN) :: offset
@@ -5316,7 +5791,6 @@ subroutine view_apply_nelems_offset_stride(obj, num_elems, offset, &
     end subroutine view_apply_nelems_offset_stride
 
     subroutine view_apply_type_nelems(obj, type, num_elems)
-        use iso_c_binding, only : C_INT64_T, C_SHORT
         class(SidreView) :: obj
         integer(TypeID), value, intent(IN) :: type
         integer(SIDRE_IndexType), value, intent(IN) :: num_elems
@@ -5327,7 +5801,6 @@ end subroutine view_apply_type_nelems
 
     subroutine view_apply_type_nelems_offset(obj, type, num_elems, &
             offset)
-        use iso_c_binding, only : C_INT64_T, C_SHORT
         class(SidreView) :: obj
         integer(TypeID), value, intent(IN) :: type
         integer(SIDRE_IndexType), value, intent(IN) :: num_elems
@@ -5340,7 +5813,6 @@ end subroutine view_apply_type_nelems_offset
 
     subroutine view_apply_type_nelems_offset_stride(obj, type, &
             num_elems, offset, stride)
-        use iso_c_binding, only : C_INT64_T, C_SHORT
         class(SidreView) :: obj
         integer(TypeID), value, intent(IN) :: type
         integer(SIDRE_IndexType), value, intent(IN) :: num_elems
@@ -5353,7 +5825,7 @@ subroutine view_apply_type_nelems_offset_stride(obj, type, &
     end subroutine view_apply_type_nelems_offset_stride
 
     subroutine view_apply_type_shape(obj, type, ndims, shape)
-        use iso_c_binding, only : C_INT, C_INT64_T, C_SHORT
+        use iso_c_binding, only : C_INT
         class(SidreView) :: obj
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT), value, intent(IN) :: ndims
@@ -5404,8 +5876,10 @@ subroutine view_set_string(obj, value)
         class(SidreView) :: obj
         character(len=*), intent(IN) :: value
         ! splicer begin class.View.method.set_string
+        integer(C_INT) SHT_value_len
+        SHT_value_len = len(value, kind=C_INT)
         call c_view_set_string_bufferify(obj%cxxmem, value, &
-            len_trim(value, kind=C_INT))
+            SHT_value_len)
         ! splicer end class.View.method.set_string
     end subroutine view_set_string
 
@@ -5420,33 +5894,33 @@ end subroutine view_set_external_data_ptr_only
 
     subroutine view_set_external_data_ptr_type_int32_t(obj, type, &
             num_elems, external_ptr)
-        use iso_c_binding, only : C_INT32_T, C_INT64_T, C_PTR, C_SHORT
+        use iso_c_binding, only : C_INT32_T, C_PTR
         class(SidreView) :: obj
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT32_T), value, intent(IN) :: num_elems
         type(C_PTR), intent(IN) :: external_ptr
         ! splicer begin class.View.method.set_external_data_ptr_type_int32_t
-        call c_view_set_external_data_ptr_type(obj%cxxmem, type, &
-            int(num_elems, SIDRE_IndexType), external_ptr)
+        call c_view_set_external_data_ptr_type_int32_t(obj%cxxmem, type, &
+            num_elems, external_ptr)
         ! splicer end class.View.method.set_external_data_ptr_type_int32_t
     end subroutine view_set_external_data_ptr_type_int32_t
 
     subroutine view_set_external_data_ptr_type_int64_t(obj, type, &
             num_elems, external_ptr)
-        use iso_c_binding, only : C_INT64_T, C_PTR, C_SHORT
+        use iso_c_binding, only : C_INT64_T, C_PTR
         class(SidreView) :: obj
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT64_T), value, intent(IN) :: num_elems
         type(C_PTR), intent(IN) :: external_ptr
         ! splicer begin class.View.method.set_external_data_ptr_type_int64_t
-        call c_view_set_external_data_ptr_type(obj%cxxmem, type, &
-            int(num_elems, SIDRE_IndexType), external_ptr)
+        call c_view_set_external_data_ptr_type_int64_t(obj%cxxmem, type, &
+            num_elems, external_ptr)
         ! splicer end class.View.method.set_external_data_ptr_type_int64_t
     end subroutine view_set_external_data_ptr_type_int64_t
 
     subroutine view_set_external_data_ptr_shape(obj, type, ndims, shape, &
             external_ptr)
-        use iso_c_binding, only : C_INT, C_INT64_T, C_PTR, C_SHORT
+        use iso_c_binding, only : C_INT, C_PTR
         class(SidreView) :: obj
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT), value, intent(IN) :: ndims
@@ -5463,8 +5937,9 @@ subroutine view_get_string(obj, name)
         class(SidreView) :: obj
         character(len=*), intent(OUT) :: name
         ! splicer begin class.View.method.get_string
-        call c_view_get_string_bufferify(obj%cxxmem, name, &
-            len(name, kind=C_INT))
+        integer(C_INT) SHT_name_len
+        SHT_name_len = len(name, kind=C_INT)
+        call c_view_get_string_bufferify(obj%cxxmem, name, SHT_name_len)
         ! splicer end class.View.method.get_string
     end subroutine view_get_string
 
@@ -5532,8 +6007,10 @@ function view_rename(obj, new_name) &
         character(len=*), intent(IN) :: new_name
         logical :: SHT_rv
         ! splicer begin class.View.method.rename
+        integer(C_INT) SHT_new_name_len
+        SHT_new_name_len = len(new_name, kind=C_INT)
         SHT_rv = c_view_rename_bufferify(obj%cxxmem, new_name, &
-            len_trim(new_name, kind=C_INT))
+            SHT_new_name_len)
         ! splicer end class.View.method.rename
     end function view_rename
 
@@ -6535,8 +7012,8 @@ function datastore_new() &
             result(SHT_rv)
         use iso_c_binding, only : C_PTR
         type(SidreDataStore) :: SHT_rv
-        ! splicer begin class.DataStore.method.new
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.DataStore.method.new
         SHT_prv = c_datastore_new(SHT_rv%cxxmem)
         ! splicer end class.DataStore.method.new
     end function datastore_new
@@ -6553,8 +7030,8 @@ function datastore_get_root(obj) &
         use iso_c_binding, only : C_PTR
         class(SidreDataStore) :: obj
         type(SidreGroup) :: SHT_rv
-        ! splicer begin class.DataStore.method.get_root
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.DataStore.method.get_root
         SHT_prv = c_datastore_get_root(obj%cxxmem, SHT_rv%cxxmem)
         ! splicer end class.DataStore.method.get_root
     end function datastore_get_root
@@ -6571,14 +7048,14 @@ end function datastore_get_num_buffers
 
     function datastore_get_buffer_int32_t(obj, idx) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT32_T, C_INT64_T, C_PTR
+        use iso_c_binding, only : C_INT32_T, C_PTR
         class(SidreDataStore) :: obj
         integer(C_INT32_T), value, intent(IN) :: idx
         type(SidreBuffer) :: SHT_rv
-        ! splicer begin class.DataStore.method.get_buffer_int32_t
         type(C_PTR) :: SHT_prv
-        SHT_prv = c_datastore_get_buffer(obj%cxxmem, &
-            int(idx, SIDRE_IndexType), SHT_rv%cxxmem)
+        ! splicer begin class.DataStore.method.get_buffer_int32_t
+        SHT_prv = c_datastore_get_buffer_int32_t(obj%cxxmem, idx, &
+            SHT_rv%cxxmem)
         ! splicer end class.DataStore.method.get_buffer_int32_t
     end function datastore_get_buffer_int32_t
 
@@ -6588,10 +7065,10 @@ function datastore_get_buffer_int64_t(obj, idx) &
         class(SidreDataStore) :: obj
         integer(C_INT64_T), value, intent(IN) :: idx
         type(SidreBuffer) :: SHT_rv
-        ! splicer begin class.DataStore.method.get_buffer_int64_t
         type(C_PTR) :: SHT_prv
-        SHT_prv = c_datastore_get_buffer(obj%cxxmem, &
-            int(idx, SIDRE_IndexType), SHT_rv%cxxmem)
+        ! splicer begin class.DataStore.method.get_buffer_int64_t
+        SHT_prv = c_datastore_get_buffer_int64_t(obj%cxxmem, idx, &
+            SHT_rv%cxxmem)
         ! splicer end class.DataStore.method.get_buffer_int64_t
     end function datastore_get_buffer_int64_t
 
@@ -6600,8 +7077,8 @@ function datastore_create_buffer_empty(obj) &
         use iso_c_binding, only : C_PTR
         class(SidreDataStore) :: obj
         type(SidreBuffer) :: SHT_rv
-        ! splicer begin class.DataStore.method.create_buffer_empty
         type(C_PTR) :: SHT_prv
+        ! splicer begin class.DataStore.method.create_buffer_empty
         SHT_prv = c_datastore_create_buffer_empty(obj%cxxmem, &
             SHT_rv%cxxmem)
         ! splicer end class.DataStore.method.create_buffer_empty
@@ -6610,35 +7087,35 @@ end function datastore_create_buffer_empty
     function datastore_create_buffer_from_type_int32_t(obj, type, &
             num_elems) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT32_T, C_INT64_T, C_PTR, C_SHORT
+        use iso_c_binding, only : C_INT32_T, C_PTR
         class(SidreDataStore) :: obj
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT32_T), value, intent(IN) :: num_elems
         type(SidreBuffer) :: SHT_rv
-        ! splicer begin class.DataStore.method.create_buffer_from_type_int32_t
         type(C_PTR) :: SHT_prv
-        SHT_prv = c_datastore_create_buffer_from_type(obj%cxxmem, type, &
-            int(num_elems, SIDRE_IndexType), SHT_rv%cxxmem)
+        ! splicer begin class.DataStore.method.create_buffer_from_type_int32_t
+        SHT_prv = c_datastore_create_buffer_from_type_int32_t(obj%cxxmem, &
+            type, num_elems, SHT_rv%cxxmem)
         ! splicer end class.DataStore.method.create_buffer_from_type_int32_t
     end function datastore_create_buffer_from_type_int32_t
 
     function datastore_create_buffer_from_type_int64_t(obj, type, &
             num_elems) &
             result(SHT_rv)
-        use iso_c_binding, only : C_INT64_T, C_PTR, C_SHORT
+        use iso_c_binding, only : C_INT64_T, C_PTR
         class(SidreDataStore) :: obj
         integer(TypeID), value, intent(IN) :: type
         integer(C_INT64_T), value, intent(IN) :: num_elems
         type(SidreBuffer) :: SHT_rv
-        ! splicer begin class.DataStore.method.create_buffer_from_type_int64_t
         type(C_PTR) :: SHT_prv
-        SHT_prv = c_datastore_create_buffer_from_type(obj%cxxmem, type, &
-            int(num_elems, SIDRE_IndexType), SHT_rv%cxxmem)
+        ! splicer begin class.DataStore.method.create_buffer_from_type_int64_t
+        SHT_prv = c_datastore_create_buffer_from_type_int64_t(obj%cxxmem, &
+            type, num_elems, SHT_rv%cxxmem)
         ! splicer end class.DataStore.method.create_buffer_from_type_int64_t
     end function datastore_create_buffer_from_type_int64_t
 
     subroutine datastore_destroy_buffer_int32_t(obj, id)
-        use iso_c_binding, only : C_INT32_T, C_INT64_T
+        use iso_c_binding, only : C_INT32_T
         class(SidreDataStore) :: obj
         integer(C_INT32_T), value, intent(IN) :: id
         ! splicer begin class.DataStore.method.destroy_buffer_int32_t
@@ -6668,10 +7145,16 @@ function datastore_generate_blueprint_index_0(obj, domain_path, &
         integer(C_INT), value, intent(IN) :: num_domains
         logical :: SHT_rv
         ! splicer begin class.DataStore.method.generate_blueprint_index_0
+        integer(C_INT) SHT_domain_path_len
+        integer(C_INT) SHT_mesh_name_len
+        integer(C_INT) SHT_index_path_len
+        SHT_domain_path_len = len(domain_path, kind=C_INT)
+        SHT_mesh_name_len = len(mesh_name, kind=C_INT)
+        SHT_index_path_len = len(index_path, kind=C_INT)
         SHT_rv = c_datastore_generate_blueprint_index_0_bufferify(obj%cxxmem, &
-            domain_path, len_trim(domain_path, kind=C_INT), mesh_name, &
-            len_trim(mesh_name, kind=C_INT), index_path, &
-            len_trim(index_path, kind=C_INT), num_domains)
+            domain_path, SHT_domain_path_len, mesh_name, &
+            SHT_mesh_name_len, index_path, SHT_index_path_len, &
+            num_domains)
         ! splicer end class.DataStore.method.generate_blueprint_index_0
     end function datastore_generate_blueprint_index_0
 
@@ -6687,10 +7170,15 @@ function datastore_generate_blueprint_index_1(obj, comm, &
         character(len=*), intent(IN) :: index_path
         logical :: SHT_rv
         ! splicer begin class.DataStore.method.generate_blueprint_index_1
+        integer(C_INT) SHT_domain_path_len
+        integer(C_INT) SHT_mesh_name_len
+        integer(C_INT) SHT_index_path_len
+        SHT_domain_path_len = len(domain_path, kind=C_INT)
+        SHT_mesh_name_len = len(mesh_name, kind=C_INT)
+        SHT_index_path_len = len(index_path, kind=C_INT)
         SHT_rv = c_datastore_generate_blueprint_index_1_bufferify(obj%cxxmem, &
-            comm, domain_path, len_trim(domain_path, kind=C_INT), &
-            mesh_name, len_trim(mesh_name, kind=C_INT), index_path, &
-            len_trim(index_path, kind=C_INT))
+            comm, domain_path, SHT_domain_path_len, mesh_name, &
+            SHT_mesh_name_len, index_path, SHT_index_path_len)
         ! splicer end class.DataStore.method.generate_blueprint_index_1
     end function datastore_generate_blueprint_index_1
 #endif
diff --git a/src/axom/sidre/interface/yaml/sidre_types.yaml b/src/axom/sidre/interface/yaml/sidre_types.yaml
index 88f07abb4a..fe29d8e60a 100644
--- a/src/axom/sidre/interface/yaml/sidre_types.yaml
+++ b/src/axom/sidre/interface/yaml/sidre_types.yaml
@@ -1,5 +1,5 @@
 # sidre_types.yaml
-# This file is generated by Shroud 0.12.2. Do not edit.
+# This file is generated by Shroud 0.13.0. Do not edit.
 #
 # Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 # other Axom Project Developers. See the top-level LICENSE file for details.
@@ -19,7 +19,7 @@ typemap:
           c_type: SIDRE_Buffer
           f_module_name: axom_sidre
           f_derived_type: SidreBuffer
-          f_capsule_data_type: SIDRE_SHROUD_buffer_capsule
+          f_capsule_data_type: SIDRE_SHROUD_capsule_data
           f_to_c: "{f_var}%cxxmem"
       - type: DataStore
         fields:
@@ -29,7 +29,7 @@ typemap:
           c_type: SIDRE_DataStore
           f_module_name: axom_sidre
           f_derived_type: SidreDataStore
-          f_capsule_data_type: SIDRE_SHROUD_datastore_capsule
+          f_capsule_data_type: SIDRE_SHROUD_capsule_data
           f_to_c: "{f_var}%cxxmem"
       - type: Group
         fields:
@@ -39,7 +39,7 @@ typemap:
           c_type: SIDRE_Group
           f_module_name: axom_sidre
           f_derived_type: SidreGroup
-          f_capsule_data_type: SIDRE_SHROUD_group_capsule
+          f_capsule_data_type: SIDRE_SHROUD_capsule_data
           f_to_c: "{f_var}%cxxmem"
       - type: View
         fields:
@@ -49,5 +49,5 @@ typemap:
           c_type: SIDRE_View
           f_module_name: axom_sidre
           f_derived_type: SidreView
-          f_capsule_data_type: SIDRE_SHROUD_view_capsule
+          f_capsule_data_type: SIDRE_SHROUD_capsule_data
           f_to_c: "{f_var}%cxxmem"
diff --git a/src/axom/sidre/spio/interface/c_fortran/typesSPIO.h b/src/axom/sidre/spio/interface/c_fortran/typesSPIO.h
index 205518a7af..0ee164a32c 100644
--- a/src/axom/sidre/spio/interface/c_fortran/typesSPIO.h
+++ b/src/axom/sidre/spio/interface/c_fortran/typesSPIO.h
@@ -1,5 +1,5 @@
 // typesSPIO.h
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
@@ -10,14 +10,20 @@
 #ifndef TYPESSPIO_H
 #define TYPESSPIO_H
 
+// splicer begin types.CXX_declarations
+// splicer end types.CXX_declarations
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+// splicer begin types.C_declarations
+// splicer end types.C_declarations
+
 // helper capsule_SPIO_IOManager
 struct s_SPIO_IOManager
 {
-  void* addr; /* address of C++ memory */
+  void *addr; /* address of C++ memory */
   int idtor;  /* index of destructor */
 };
 typedef struct s_SPIO_IOManager SPIO_IOManager;
@@ -25,12 +31,12 @@ typedef struct s_SPIO_IOManager SPIO_IOManager;
 // helper capsule_data_helper
 struct s_SPIO_SHROUD_capsule_data
 {
-  void* addr; /* address of C++ memory */
+  void *addr; /* address of C++ memory */
   int idtor;  /* index of destructor */
 };
 typedef struct s_SPIO_SHROUD_capsule_data SPIO_SHROUD_capsule_data;
 
-void SPIO_SHROUD_memory_destructor(SPIO_SHROUD_capsule_data* cap);
+void SPIO_SHROUD_memory_destructor(SPIO_SHROUD_capsule_data *cap);
 
 #ifdef __cplusplus
 }
diff --git a/src/axom/sidre/spio/interface/c_fortran/wrapIOManager.cpp b/src/axom/sidre/spio/interface/c_fortran/wrapIOManager.cpp
index 5a8e0cd9ac..a87101c6a9 100644
--- a/src/axom/sidre/spio/interface/c_fortran/wrapIOManager.cpp
+++ b/src/axom/sidre/spio/interface/c_fortran/wrapIOManager.cpp
@@ -1,20 +1,39 @@
 // wrapIOManager.cpp
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
 //
 // SPDX-License-Identifier: (BSD-3-Clause)
-#include "wrapIOManager.h"
-#include <cstddef>
-#include <string>
+
 #include "axom/sidre/spio/IOManager.hpp"
+#include <string>
+#include <cstddef>
+#include "wrapIOManager.h"
 
 // splicer begin class.IOManager.CXX_definitions
 // splicer end class.IOManager.CXX_definitions
 
 extern "C" {
 
+// helper ShroudLenTrim
+// Returns the length of character string src with length nsrc,
+// ignoring any trailing blanks.
+static int ShroudLenTrim(const char *src, int nsrc)
+{
+  int i;
+
+  for(i = nsrc - 1; i >= 0; i--)
+  {
+    if(src[i] != ' ')
+    {
+      break;
+    }
+  }
+
+  return i + 1;
+}
+
 // splicer begin class.IOManager.C_definitions
 // splicer end class.IOManager.C_definitions
 
@@ -73,18 +92,21 @@ void SPIO_IOManager_write_0(SPIO_IOManager *self,
 void SPIO_IOManager_write_0_bufferify(SPIO_IOManager *self,
                                       SIDRE_Group *group,
                                       int num_files,
-                                      const char *file_string,
-                                      int Lfile_string,
-                                      const char *protocol,
-                                      int Lprotocol)
+                                      char *file_string,
+                                      int SHT_file_string_len,
+                                      char *protocol,
+                                      int SHT_protocol_len)
 {
   axom::sidre::IOManager *SH_this =
     static_cast<axom::sidre::IOManager *>(self->addr);
   // splicer begin class.IOManager.method.write_0_bufferify
   axom::sidre::Group *SHCXX_group =
     static_cast<axom::sidre::Group *>(group->addr);
-  const std::string SHCXX_file_string(file_string, Lfile_string);
-  const std::string SHCXX_protocol(protocol, Lprotocol);
+  const std::string SHCXX_file_string(
+    file_string,
+    ShroudLenTrim(file_string, SHT_file_string_len));
+  const std::string SHCXX_protocol(protocol,
+                                   ShroudLenTrim(protocol, SHT_protocol_len));
   SH_this->write(SHCXX_group, num_files, SHCXX_file_string, SHCXX_protocol);
   // splicer end class.IOManager.method.write_0_bufferify
 }
@@ -115,21 +137,26 @@ void SPIO_IOManager_write_1(SPIO_IOManager *self,
 void SPIO_IOManager_write_1_bufferify(SPIO_IOManager *self,
                                       SIDRE_Group *group,
                                       int num_files,
-                                      const char *file_string,
-                                      int Lfile_string,
-                                      const char *protocol,
-                                      int Lprotocol,
-                                      const char *tree_pattern,
-                                      int Ltree_pattern)
+                                      char *file_string,
+                                      int SHT_file_string_len,
+                                      char *protocol,
+                                      int SHT_protocol_len,
+                                      char *tree_pattern,
+                                      int SHT_tree_pattern_len)
 {
   axom::sidre::IOManager *SH_this =
     static_cast<axom::sidre::IOManager *>(self->addr);
   // splicer begin class.IOManager.method.write_1_bufferify
   axom::sidre::Group *SHCXX_group =
     static_cast<axom::sidre::Group *>(group->addr);
-  const std::string SHCXX_file_string(file_string, Lfile_string);
-  const std::string SHCXX_protocol(protocol, Lprotocol);
-  const std::string SHCXX_tree_pattern(tree_pattern, Ltree_pattern);
+  const std::string SHCXX_file_string(
+    file_string,
+    ShroudLenTrim(file_string, SHT_file_string_len));
+  const std::string SHCXX_protocol(protocol,
+                                   ShroudLenTrim(protocol, SHT_protocol_len));
+  const std::string SHCXX_tree_pattern(
+    tree_pattern,
+    ShroudLenTrim(tree_pattern, SHT_tree_pattern_len));
   SH_this->write(SHCXX_group,
                  num_files,
                  SHCXX_file_string,
@@ -138,44 +165,45 @@ void SPIO_IOManager_write_1_bufferify(SPIO_IOManager *self,
   // splicer end class.IOManager.method.write_1_bufferify
 }
 
-void SPIO_IOManager_write_group_to_root_file(SPIO_IOManager *self,
-                                             SIDRE_Group *group,
-                                             const char *file_name)
+void SPIO_IOManager_writeGroupToRootFile(SPIO_IOManager *self,
+                                         SIDRE_Group *group,
+                                         const char *file_name)
 {
   axom::sidre::IOManager *SH_this =
     static_cast<axom::sidre::IOManager *>(self->addr);
-  // splicer begin class.IOManager.method.write_group_to_root_file
+  // splicer begin class.IOManager.method.writeGroupToRootFile
   axom::sidre::Group *SHCXX_group =
     static_cast<axom::sidre::Group *>(group->addr);
   const std::string SHCXX_file_name(file_name);
   SH_this->writeGroupToRootFile(SHCXX_group, SHCXX_file_name);
-  // splicer end class.IOManager.method.write_group_to_root_file
+  // splicer end class.IOManager.method.writeGroupToRootFile
 }
 
-void SPIO_IOManager_write_group_to_root_file_bufferify(SPIO_IOManager *self,
-                                                       SIDRE_Group *group,
-                                                       const char *file_name,
-                                                       int Lfile_name)
+void SPIO_IOManager_writeGroupToRootFile_bufferify(SPIO_IOManager *self,
+                                                   SIDRE_Group *group,
+                                                   char *file_name,
+                                                   int SHT_file_name_len)
 {
   axom::sidre::IOManager *SH_this =
     static_cast<axom::sidre::IOManager *>(self->addr);
-  // splicer begin class.IOManager.method.write_group_to_root_file_bufferify
+  // splicer begin class.IOManager.method.writeGroupToRootFile_bufferify
   axom::sidre::Group *SHCXX_group =
     static_cast<axom::sidre::Group *>(group->addr);
-  const std::string SHCXX_file_name(file_name, Lfile_name);
+  const std::string SHCXX_file_name(file_name,
+                                    ShroudLenTrim(file_name, SHT_file_name_len));
   SH_this->writeGroupToRootFile(SHCXX_group, SHCXX_file_name);
-  // splicer end class.IOManager.method.write_group_to_root_file_bufferify
+  // splicer end class.IOManager.method.writeGroupToRootFile_bufferify
 }
 
-void SPIO_IOManager_write_blueprint_index_to_root_file(SPIO_IOManager *self,
-                                                       SIDRE_DataStore *datastore,
-                                                       const char *domain_path,
-                                                       const char *file_name,
-                                                       const char *mesh_path)
+void SPIO_IOManager_writeBlueprintIndexToRootFile(SPIO_IOManager *self,
+                                                  SIDRE_DataStore *datastore,
+                                                  const char *domain_path,
+                                                  const char *file_name,
+                                                  const char *mesh_path)
 {
   axom::sidre::IOManager *SH_this =
     static_cast<axom::sidre::IOManager *>(self->addr);
-  // splicer begin class.IOManager.method.write_blueprint_index_to_root_file
+  // splicer begin class.IOManager.method.writeBlueprintIndexToRootFile
   axom::sidre::DataStore *SHCXX_datastore =
     static_cast<axom::sidre::DataStore *>(datastore->addr);
   const std::string SHCXX_domain_path(domain_path);
@@ -185,32 +213,36 @@ void SPIO_IOManager_write_blueprint_index_to_root_file(SPIO_IOManager *self,
                                          SHCXX_domain_path,
                                          SHCXX_file_name,
                                          SHCXX_mesh_path);
-  // splicer end class.IOManager.method.write_blueprint_index_to_root_file
+  // splicer end class.IOManager.method.writeBlueprintIndexToRootFile
 }
 
-void SPIO_IOManager_write_blueprint_index_to_root_file_bufferify(
+void SPIO_IOManager_writeBlueprintIndexToRootFile_bufferify(
   SPIO_IOManager *self,
   SIDRE_DataStore *datastore,
-  const char *domain_path,
-  int Ldomain_path,
-  const char *file_name,
-  int Lfile_name,
-  const char *mesh_path,
-  int Lmesh_path)
+  char *domain_path,
+  int SHT_domain_path_len,
+  char *file_name,
+  int SHT_file_name_len,
+  char *mesh_path,
+  int SHT_mesh_path_len)
 {
   axom::sidre::IOManager *SH_this =
     static_cast<axom::sidre::IOManager *>(self->addr);
-  // splicer begin class.IOManager.method.write_blueprint_index_to_root_file_bufferify
+  // splicer begin class.IOManager.method.writeBlueprintIndexToRootFile_bufferify
   axom::sidre::DataStore *SHCXX_datastore =
     static_cast<axom::sidre::DataStore *>(datastore->addr);
-  const std::string SHCXX_domain_path(domain_path, Ldomain_path);
-  const std::string SHCXX_file_name(file_name, Lfile_name);
-  const std::string SHCXX_mesh_path(mesh_path, Lmesh_path);
+  const std::string SHCXX_domain_path(
+    domain_path,
+    ShroudLenTrim(domain_path, SHT_domain_path_len));
+  const std::string SHCXX_file_name(file_name,
+                                    ShroudLenTrim(file_name, SHT_file_name_len));
+  const std::string SHCXX_mesh_path(mesh_path,
+                                    ShroudLenTrim(mesh_path, SHT_mesh_path_len));
   SH_this->writeBlueprintIndexToRootFile(SHCXX_datastore,
                                          SHCXX_domain_path,
                                          SHCXX_file_name,
                                          SHCXX_mesh_path);
-  // splicer end class.IOManager.method.write_blueprint_index_to_root_file_bufferify
+  // splicer end class.IOManager.method.writeBlueprintIndexToRootFile_bufferify
 }
 
 void SPIO_IOManager_read_0(SPIO_IOManager *self,
@@ -231,18 +263,21 @@ void SPIO_IOManager_read_0(SPIO_IOManager *self,
 
 void SPIO_IOManager_read_0_bufferify(SPIO_IOManager *self,
                                      SIDRE_Group *group,
-                                     const char *file_string,
-                                     int Lfile_string,
-                                     const char *protocol,
-                                     int Lprotocol)
+                                     char *file_string,
+                                     int SHT_file_string_len,
+                                     char *protocol,
+                                     int SHT_protocol_len)
 {
   axom::sidre::IOManager *SH_this =
     static_cast<axom::sidre::IOManager *>(self->addr);
   // splicer begin class.IOManager.method.read_0_bufferify
   axom::sidre::Group *SHCXX_group =
     static_cast<axom::sidre::Group *>(group->addr);
-  const std::string SHCXX_file_string(file_string, Lfile_string);
-  const std::string SHCXX_protocol(protocol, Lprotocol);
+  const std::string SHCXX_file_string(
+    file_string,
+    ShroudLenTrim(file_string, SHT_file_string_len));
+  const std::string SHCXX_protocol(protocol,
+                                   ShroudLenTrim(protocol, SHT_protocol_len));
   SH_this->read(SHCXX_group, SHCXX_file_string, SHCXX_protocol);
   // splicer end class.IOManager.method.read_0_bufferify
 }
@@ -266,10 +301,10 @@ void SPIO_IOManager_read_1(SPIO_IOManager *self,
 
 void SPIO_IOManager_read_1_bufferify(SPIO_IOManager *self,
                                      SIDRE_Group *group,
-                                     const char *file_string,
-                                     int Lfile_string,
-                                     const char *protocol,
-                                     int Lprotocol,
+                                     char *file_string,
+                                     int SHT_file_string_len,
+                                     char *protocol,
+                                     int SHT_protocol_len,
                                      bool preserve_contents)
 {
   axom::sidre::IOManager *SH_this =
@@ -277,8 +312,11 @@ void SPIO_IOManager_read_1_bufferify(SPIO_IOManager *self,
   // splicer begin class.IOManager.method.read_1_bufferify
   axom::sidre::Group *SHCXX_group =
     static_cast<axom::sidre::Group *>(group->addr);
-  const std::string SHCXX_file_string(file_string, Lfile_string);
-  const std::string SHCXX_protocol(protocol, Lprotocol);
+  const std::string SHCXX_file_string(
+    file_string,
+    ShroudLenTrim(file_string, SHT_file_string_len));
+  const std::string SHCXX_protocol(protocol,
+                                   ShroudLenTrim(protocol, SHT_protocol_len));
   SH_this->read(SHCXX_group, SHCXX_file_string, SHCXX_protocol, preserve_contents);
   // splicer end class.IOManager.method.read_1_bufferify
 }
@@ -299,15 +337,16 @@ void SPIO_IOManager_read_2(SPIO_IOManager *self,
 
 void SPIO_IOManager_read_2_bufferify(SPIO_IOManager *self,
                                      SIDRE_Group *group,
-                                     const char *root_file,
-                                     int Lroot_file)
+                                     char *root_file,
+                                     int SHT_root_file_len)
 {
   axom::sidre::IOManager *SH_this =
     static_cast<axom::sidre::IOManager *>(self->addr);
   // splicer begin class.IOManager.method.read_2_bufferify
   axom::sidre::Group *SHCXX_group =
     static_cast<axom::sidre::Group *>(group->addr);
-  const std::string SHCXX_root_file(root_file, Lroot_file);
+  const std::string SHCXX_root_file(root_file,
+                                    ShroudLenTrim(root_file, SHT_root_file_len));
   SH_this->read(SHCXX_group, SHCXX_root_file);
   // splicer end class.IOManager.method.read_2_bufferify
 }
@@ -329,8 +368,8 @@ void SPIO_IOManager_read_3(SPIO_IOManager *self,
 
 void SPIO_IOManager_read_3_bufferify(SPIO_IOManager *self,
                                      SIDRE_Group *group,
-                                     const char *root_file,
-                                     int Lroot_file,
+                                     char *root_file,
+                                     int SHT_root_file_len,
                                      bool preserve_contents)
 {
   axom::sidre::IOManager *SH_this =
@@ -338,38 +377,40 @@ void SPIO_IOManager_read_3_bufferify(SPIO_IOManager *self,
   // splicer begin class.IOManager.method.read_3_bufferify
   axom::sidre::Group *SHCXX_group =
     static_cast<axom::sidre::Group *>(group->addr);
-  const std::string SHCXX_root_file(root_file, Lroot_file);
+  const std::string SHCXX_root_file(root_file,
+                                    ShroudLenTrim(root_file, SHT_root_file_len));
   SH_this->read(SHCXX_group, SHCXX_root_file, preserve_contents);
   // splicer end class.IOManager.method.read_3_bufferify
 }
 
-void SPIO_IOManager_load_external_data(SPIO_IOManager *self,
-                                       SIDRE_Group *group,
-                                       const char *root_file)
+void SPIO_IOManager_loadExternalData(SPIO_IOManager *self,
+                                     SIDRE_Group *group,
+                                     const char *root_file)
 {
   axom::sidre::IOManager *SH_this =
     static_cast<axom::sidre::IOManager *>(self->addr);
-  // splicer begin class.IOManager.method.load_external_data
+  // splicer begin class.IOManager.method.loadExternalData
   axom::sidre::Group *SHCXX_group =
     static_cast<axom::sidre::Group *>(group->addr);
   const std::string SHCXX_root_file(root_file);
   SH_this->loadExternalData(SHCXX_group, SHCXX_root_file);
-  // splicer end class.IOManager.method.load_external_data
+  // splicer end class.IOManager.method.loadExternalData
 }
 
-void SPIO_IOManager_load_external_data_bufferify(SPIO_IOManager *self,
-                                                 SIDRE_Group *group,
-                                                 const char *root_file,
-                                                 int Lroot_file)
+void SPIO_IOManager_loadExternalData_bufferify(SPIO_IOManager *self,
+                                               SIDRE_Group *group,
+                                               char *root_file,
+                                               int SHT_root_file_len)
 {
   axom::sidre::IOManager *SH_this =
     static_cast<axom::sidre::IOManager *>(self->addr);
-  // splicer begin class.IOManager.method.load_external_data_bufferify
+  // splicer begin class.IOManager.method.loadExternalData_bufferify
   axom::sidre::Group *SHCXX_group =
     static_cast<axom::sidre::Group *>(group->addr);
-  const std::string SHCXX_root_file(root_file, Lroot_file);
+  const std::string SHCXX_root_file(root_file,
+                                    ShroudLenTrim(root_file, SHT_root_file_len));
   SH_this->loadExternalData(SHCXX_group, SHCXX_root_file);
-  // splicer end class.IOManager.method.load_external_data_bufferify
+  // splicer end class.IOManager.method.loadExternalData_bufferify
 }
 
 }  // extern "C"
diff --git a/src/axom/sidre/spio/interface/c_fortran/wrapIOManager.h b/src/axom/sidre/spio/interface/c_fortran/wrapIOManager.h
index 3f6c5b9518..ede7785883 100644
--- a/src/axom/sidre/spio/interface/c_fortran/wrapIOManager.h
+++ b/src/axom/sidre/spio/interface/c_fortran/wrapIOManager.h
@@ -1,5 +1,5 @@
 // wrapIOManager.h
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
@@ -14,13 +14,13 @@
 #ifndef WRAPIOMANAGER_H
 #define WRAPIOMANAGER_H
 
-#include "axom/sidre/interface/c_fortran/wrapDataStore.h"
 #include "axom/sidre/interface/c_fortran/wrapGroup.h"
+#include "axom/sidre/interface/c_fortran/wrapDataStore.h"
 #include "mpi.h"
-#include "typesSPIO.h"
 #ifndef __cplusplus
   #include <stdbool.h>
 #endif
+#include "typesSPIO.h"
 
 // splicer begin class.IOManager.CXX_declarations
 // splicer end class.IOManager.CXX_declarations
@@ -32,124 +32,124 @@ extern "C" {
 // splicer begin class.IOManager.C_declarations
 // splicer end class.IOManager.C_declarations
 
-SPIO_IOManager* SPIO_IOManager_ctor_default(MPI_Fint com, SPIO_IOManager* SHC_rv);
+SPIO_IOManager *SPIO_IOManager_ctor_default(MPI_Fint com, SPIO_IOManager *SHC_rv);
 
-SPIO_IOManager* SPIO_IOManager_ctor_usescr(MPI_Fint com,
+SPIO_IOManager *SPIO_IOManager_ctor_usescr(MPI_Fint com,
                                            bool use_scr,
-                                           SPIO_IOManager* SHC_rv);
+                                           SPIO_IOManager *SHC_rv);
 
-void SPIO_IOManager_delete(SPIO_IOManager* self);
+void SPIO_IOManager_delete(SPIO_IOManager *self);
 
-void SPIO_IOManager_write_0(SPIO_IOManager* self,
-                            SIDRE_Group* group,
+void SPIO_IOManager_write_0(SPIO_IOManager *self,
+                            SIDRE_Group *group,
                             int num_files,
-                            const char* file_string,
-                            const char* protocol);
+                            const char *file_string,
+                            const char *protocol);
 
-void SPIO_IOManager_write_0_bufferify(SPIO_IOManager* self,
-                                      SIDRE_Group* group,
+void SPIO_IOManager_write_0_bufferify(SPIO_IOManager *self,
+                                      SIDRE_Group *group,
                                       int num_files,
-                                      const char* file_string,
-                                      int Lfile_string,
-                                      const char* protocol,
-                                      int Lprotocol);
+                                      char *file_string,
+                                      int SHT_file_string_len,
+                                      char *protocol,
+                                      int SHT_protocol_len);
 
-void SPIO_IOManager_write_1(SPIO_IOManager* self,
-                            SIDRE_Group* group,
+void SPIO_IOManager_write_1(SPIO_IOManager *self,
+                            SIDRE_Group *group,
                             int num_files,
-                            const char* file_string,
-                            const char* protocol,
-                            const char* tree_pattern);
+                            const char *file_string,
+                            const char *protocol,
+                            const char *tree_pattern);
 
-void SPIO_IOManager_write_1_bufferify(SPIO_IOManager* self,
-                                      SIDRE_Group* group,
+void SPIO_IOManager_write_1_bufferify(SPIO_IOManager *self,
+                                      SIDRE_Group *group,
                                       int num_files,
-                                      const char* file_string,
-                                      int Lfile_string,
-                                      const char* protocol,
-                                      int Lprotocol,
-                                      const char* tree_pattern,
-                                      int Ltree_pattern);
-
-void SPIO_IOManager_write_group_to_root_file(SPIO_IOManager* self,
-                                             SIDRE_Group* group,
-                                             const char* file_name);
-
-void SPIO_IOManager_write_group_to_root_file_bufferify(SPIO_IOManager* self,
-                                                       SIDRE_Group* group,
-                                                       const char* file_name,
-                                                       int Lfile_name);
-
-void SPIO_IOManager_write_blueprint_index_to_root_file(SPIO_IOManager* self,
-                                                       SIDRE_DataStore* datastore,
-                                                       const char* domain_path,
-                                                       const char* file_name,
-                                                       const char* mesh_path);
-
-void SPIO_IOManager_write_blueprint_index_to_root_file_bufferify(
-  SPIO_IOManager* self,
-  SIDRE_DataStore* datastore,
-  const char* domain_path,
-  int Ldomain_path,
-  const char* file_name,
-  int Lfile_name,
-  const char* mesh_path,
-  int Lmesh_path);
-
-void SPIO_IOManager_read_0(SPIO_IOManager* self,
-                           SIDRE_Group* group,
-                           const char* file_string,
-                           const char* protocol);
-
-void SPIO_IOManager_read_0_bufferify(SPIO_IOManager* self,
-                                     SIDRE_Group* group,
-                                     const char* file_string,
-                                     int Lfile_string,
-                                     const char* protocol,
-                                     int Lprotocol);
-
-void SPIO_IOManager_read_1(SPIO_IOManager* self,
-                           SIDRE_Group* group,
-                           const char* file_string,
-                           const char* protocol,
+                                      char *file_string,
+                                      int SHT_file_string_len,
+                                      char *protocol,
+                                      int SHT_protocol_len,
+                                      char *tree_pattern,
+                                      int SHT_tree_pattern_len);
+
+void SPIO_IOManager_writeGroupToRootFile(SPIO_IOManager *self,
+                                         SIDRE_Group *group,
+                                         const char *file_name);
+
+void SPIO_IOManager_writeGroupToRootFile_bufferify(SPIO_IOManager *self,
+                                                   SIDRE_Group *group,
+                                                   char *file_name,
+                                                   int SHT_file_name_len);
+
+void SPIO_IOManager_writeBlueprintIndexToRootFile(SPIO_IOManager *self,
+                                                  SIDRE_DataStore *datastore,
+                                                  const char *domain_path,
+                                                  const char *file_name,
+                                                  const char *mesh_path);
+
+void SPIO_IOManager_writeBlueprintIndexToRootFile_bufferify(
+  SPIO_IOManager *self,
+  SIDRE_DataStore *datastore,
+  char *domain_path,
+  int SHT_domain_path_len,
+  char *file_name,
+  int SHT_file_name_len,
+  char *mesh_path,
+  int SHT_mesh_path_len);
+
+void SPIO_IOManager_read_0(SPIO_IOManager *self,
+                           SIDRE_Group *group,
+                           const char *file_string,
+                           const char *protocol);
+
+void SPIO_IOManager_read_0_bufferify(SPIO_IOManager *self,
+                                     SIDRE_Group *group,
+                                     char *file_string,
+                                     int SHT_file_string_len,
+                                     char *protocol,
+                                     int SHT_protocol_len);
+
+void SPIO_IOManager_read_1(SPIO_IOManager *self,
+                           SIDRE_Group *group,
+                           const char *file_string,
+                           const char *protocol,
                            bool preserve_contents);
 
-void SPIO_IOManager_read_1_bufferify(SPIO_IOManager* self,
-                                     SIDRE_Group* group,
-                                     const char* file_string,
-                                     int Lfile_string,
-                                     const char* protocol,
-                                     int Lprotocol,
+void SPIO_IOManager_read_1_bufferify(SPIO_IOManager *self,
+                                     SIDRE_Group *group,
+                                     char *file_string,
+                                     int SHT_file_string_len,
+                                     char *protocol,
+                                     int SHT_protocol_len,
                                      bool preserve_contents);
 
-void SPIO_IOManager_read_2(SPIO_IOManager* self,
-                           SIDRE_Group* group,
-                           const char* root_file);
+void SPIO_IOManager_read_2(SPIO_IOManager *self,
+                           SIDRE_Group *group,
+                           const char *root_file);
 
-void SPIO_IOManager_read_2_bufferify(SPIO_IOManager* self,
-                                     SIDRE_Group* group,
-                                     const char* root_file,
-                                     int Lroot_file);
+void SPIO_IOManager_read_2_bufferify(SPIO_IOManager *self,
+                                     SIDRE_Group *group,
+                                     char *root_file,
+                                     int SHT_root_file_len);
 
-void SPIO_IOManager_read_3(SPIO_IOManager* self,
-                           SIDRE_Group* group,
-                           const char* root_file,
+void SPIO_IOManager_read_3(SPIO_IOManager *self,
+                           SIDRE_Group *group,
+                           const char *root_file,
                            bool preserve_contents);
 
-void SPIO_IOManager_read_3_bufferify(SPIO_IOManager* self,
-                                     SIDRE_Group* group,
-                                     const char* root_file,
-                                     int Lroot_file,
+void SPIO_IOManager_read_3_bufferify(SPIO_IOManager *self,
+                                     SIDRE_Group *group,
+                                     char *root_file,
+                                     int SHT_root_file_len,
                                      bool preserve_contents);
 
-void SPIO_IOManager_load_external_data(SPIO_IOManager* self,
-                                       SIDRE_Group* group,
-                                       const char* root_file);
+void SPIO_IOManager_loadExternalData(SPIO_IOManager *self,
+                                     SIDRE_Group *group,
+                                     const char *root_file);
 
-void SPIO_IOManager_load_external_data_bufferify(SPIO_IOManager* self,
-                                                 SIDRE_Group* group,
-                                                 const char* root_file,
-                                                 int Lroot_file);
+void SPIO_IOManager_loadExternalData_bufferify(SPIO_IOManager *self,
+                                               SIDRE_Group *group,
+                                               char *root_file,
+                                               int SHT_root_file_len);
 
 #ifdef __cplusplus
 }
diff --git a/src/axom/sidre/spio/interface/c_fortran/wrapfspio.f b/src/axom/sidre/spio/interface/c_fortran/wrapfspio.f
index 63815f3c4b..8ce06a09a0 100644
--- a/src/axom/sidre/spio/interface/c_fortran/wrapfspio.f
+++ b/src/axom/sidre/spio/interface/c_fortran/wrapfspio.f
@@ -1,5 +1,5 @@
 ! wrapfspio.f
-! This file is generated by Shroud 0.12.2. Do not edit.
+! This file is generated by Shroud 0.13.0. Do not edit.
 !
 ! Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 ! other Axom Project Developers. See the top-level LICENSE file for details.
@@ -20,29 +20,30 @@ module axom_spio
     ! splicer begin module_top
     ! splicer end module_top
 
-    type, bind(C) :: SPIO_SHROUD_iomanager_capsule
+    ! helper capsule_data_helper
+    type, bind(C) :: SPIO_SHROUD_capsule_data
         type(C_PTR) :: addr = C_NULL_PTR  ! address of C++ memory
         integer(C_INT) :: idtor = 0       ! index of destructor
-    end type SPIO_SHROUD_iomanager_capsule
+    end type SPIO_SHROUD_capsule_data
 
     type iomanager
-        type(SPIO_SHROUD_iomanager_capsule) :: cxxmem
+        type(SPIO_SHROUD_capsule_data) :: cxxmem
         ! splicer begin class.IOManager.component_part
         ! splicer end class.IOManager.component_part
     contains
-        procedure :: delete => iomanager_delete
-        procedure :: write_0 => iomanager_write_0
-        procedure :: write_1 => iomanager_write_1
-        procedure :: write_group_to_root_file => iomanager_write_group_to_root_file
-        procedure :: write_blueprint_index_to_root_file => iomanager_write_blueprint_index_to_root_file
-        procedure :: read_0 => iomanager_read_0
-        procedure :: read_1 => iomanager_read_1
-        procedure :: read_2 => iomanager_read_2
-        procedure :: read_3 => iomanager_read_3
-        procedure :: load_external_data => iomanager_load_external_data
-        procedure :: get_instance => iomanager_get_instance
-        procedure :: set_instance => iomanager_set_instance
-        procedure :: associated => iomanager_associated
+        procedure :: delete => io_manager_delete
+        procedure :: write_0 => io_manager_write_0
+        procedure :: write_1 => io_manager_write_1
+        procedure :: write_group_to_root_file => io_manager_write_group_to_root_file
+        procedure :: write_blueprint_index_to_root_file => io_manager_write_blueprint_index_to_root_file
+        procedure :: read_0 => io_manager_read_0
+        procedure :: read_1 => io_manager_read_1
+        procedure :: read_2 => io_manager_read_2
+        procedure :: read_3 => io_manager_read_3
+        procedure :: load_external_data => io_manager_load_external_data
+        procedure :: get_instance => io_manager_get_instance
+        procedure :: set_instance => io_manager_set_instance
+        procedure :: associated => io_manager_associated
         generic :: read => read_0, read_1, read_2, read_3
         generic :: write => write_0, write_1
         ! splicer begin class.IOManager.type_bound_procedure_part
@@ -50,349 +51,361 @@ module axom_spio
     end type iomanager
 
     interface operator (.eq.)
-        module procedure iomanager_eq
+        module procedure io_manager_eq
     end interface
 
     interface operator (.ne.)
-        module procedure iomanager_ne
+        module procedure io_manager_ne
     end interface
 
     interface
 
-        function c_iomanager_ctor_default(com, SHT_crv) &
-                result(SHT_rv) &
+        function c_io_manager_ctor_default(com, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SPIO_IOManager_ctor_default")
             use iso_c_binding, only : C_INT, C_PTR
-            import :: SPIO_SHROUD_iomanager_capsule
+            import :: SPIO_SHROUD_capsule_data
             implicit none
             integer(C_INT), value, intent(IN) :: com
-            type(SPIO_SHROUD_iomanager_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
-        end function c_iomanager_ctor_default
+            type(SPIO_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) SHT_prv
+        end function c_io_manager_ctor_default
 
-        function c_iomanager_ctor_usescr(com, use_scr, SHT_crv) &
-                result(SHT_rv) &
+        function c_io_manager_ctor_usescr(com, use_scr, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SPIO_IOManager_ctor_usescr")
             use iso_c_binding, only : C_BOOL, C_INT, C_PTR
-            import :: SPIO_SHROUD_iomanager_capsule
+            import :: SPIO_SHROUD_capsule_data
             implicit none
             integer(C_INT), value, intent(IN) :: com
             logical(C_BOOL), value, intent(IN) :: use_scr
-            type(SPIO_SHROUD_iomanager_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
-        end function c_iomanager_ctor_usescr
+            type(SPIO_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) SHT_prv
+        end function c_io_manager_ctor_usescr
 
-        subroutine c_iomanager_delete(self) &
+        subroutine c_io_manager_delete(self) &
                 bind(C, name="SPIO_IOManager_delete")
-            import :: SPIO_SHROUD_iomanager_capsule
+            import :: SPIO_SHROUD_capsule_data
             implicit none
-            type(SPIO_SHROUD_iomanager_capsule), intent(IN) :: self
-        end subroutine c_iomanager_delete
+            type(SPIO_SHROUD_capsule_data), intent(INOUT) :: self
+        end subroutine c_io_manager_delete
 
-        subroutine c_iomanager_write_0(self, group, num_files, &
+        subroutine c_io_manager_write_0(self, group, num_files, &
                 file_string, protocol) &
                 bind(C, name="SPIO_IOManager_write_0")
-            use axom_sidre, only : SIDRE_SHROUD_group_capsule
+            use axom_sidre, only : SIDRE_SHROUD_capsule_data
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SPIO_SHROUD_iomanager_capsule
+            import :: SPIO_SHROUD_capsule_data
             implicit none
-            type(SPIO_SHROUD_iomanager_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_group_capsule), intent(INOUT) :: group
+            type(SPIO_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: group
             integer(C_INT), value, intent(IN) :: num_files
             character(kind=C_CHAR), intent(IN) :: file_string(*)
             character(kind=C_CHAR), intent(IN) :: protocol(*)
-        end subroutine c_iomanager_write_0
+        end subroutine c_io_manager_write_0
 
-        subroutine c_iomanager_write_0_bufferify(self, group, num_files, &
-                file_string, Lfile_string, protocol, Lprotocol) &
+        subroutine c_io_manager_write_0_bufferify(self, group, &
+                num_files, file_string, SHT_file_string_len, protocol, &
+                SHT_protocol_len) &
                 bind(C, name="SPIO_IOManager_write_0_bufferify")
-            use axom_sidre, only : SIDRE_SHROUD_group_capsule
+            use axom_sidre, only : SIDRE_SHROUD_capsule_data
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SPIO_SHROUD_iomanager_capsule
+            import :: SPIO_SHROUD_capsule_data
             implicit none
-            type(SPIO_SHROUD_iomanager_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_group_capsule), intent(INOUT) :: group
+            type(SPIO_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: group
             integer(C_INT), value, intent(IN) :: num_files
             character(kind=C_CHAR), intent(IN) :: file_string(*)
-            integer(C_INT), value, intent(IN) :: Lfile_string
+            integer(C_INT), value, intent(IN) :: SHT_file_string_len
             character(kind=C_CHAR), intent(IN) :: protocol(*)
-            integer(C_INT), value, intent(IN) :: Lprotocol
-        end subroutine c_iomanager_write_0_bufferify
+            integer(C_INT), value, intent(IN) :: SHT_protocol_len
+        end subroutine c_io_manager_write_0_bufferify
 
-        subroutine c_iomanager_write_1(self, group, num_files, &
+        subroutine c_io_manager_write_1(self, group, num_files, &
                 file_string, protocol, tree_pattern) &
                 bind(C, name="SPIO_IOManager_write_1")
-            use axom_sidre, only : SIDRE_SHROUD_group_capsule
+            use axom_sidre, only : SIDRE_SHROUD_capsule_data
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SPIO_SHROUD_iomanager_capsule
+            import :: SPIO_SHROUD_capsule_data
             implicit none
-            type(SPIO_SHROUD_iomanager_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_group_capsule), intent(INOUT) :: group
+            type(SPIO_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: group
             integer(C_INT), value, intent(IN) :: num_files
             character(kind=C_CHAR), intent(IN) :: file_string(*)
             character(kind=C_CHAR), intent(IN) :: protocol(*)
             character(kind=C_CHAR), intent(IN) :: tree_pattern(*)
-        end subroutine c_iomanager_write_1
+        end subroutine c_io_manager_write_1
 
-        subroutine c_iomanager_write_1_bufferify(self, group, num_files, &
-                file_string, Lfile_string, protocol, Lprotocol, &
-                tree_pattern, Ltree_pattern) &
+        subroutine c_io_manager_write_1_bufferify(self, group, &
+                num_files, file_string, SHT_file_string_len, protocol, &
+                SHT_protocol_len, tree_pattern, SHT_tree_pattern_len) &
                 bind(C, name="SPIO_IOManager_write_1_bufferify")
-            use axom_sidre, only : SIDRE_SHROUD_group_capsule
+            use axom_sidre, only : SIDRE_SHROUD_capsule_data
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SPIO_SHROUD_iomanager_capsule
+            import :: SPIO_SHROUD_capsule_data
             implicit none
-            type(SPIO_SHROUD_iomanager_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_group_capsule), intent(INOUT) :: group
+            type(SPIO_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: group
             integer(C_INT), value, intent(IN) :: num_files
             character(kind=C_CHAR), intent(IN) :: file_string(*)
-            integer(C_INT), value, intent(IN) :: Lfile_string
+            integer(C_INT), value, intent(IN) :: SHT_file_string_len
             character(kind=C_CHAR), intent(IN) :: protocol(*)
-            integer(C_INT), value, intent(IN) :: Lprotocol
+            integer(C_INT), value, intent(IN) :: SHT_protocol_len
             character(kind=C_CHAR), intent(IN) :: tree_pattern(*)
-            integer(C_INT), value, intent(IN) :: Ltree_pattern
-        end subroutine c_iomanager_write_1_bufferify
+            integer(C_INT), value, intent(IN) :: SHT_tree_pattern_len
+        end subroutine c_io_manager_write_1_bufferify
 
-        subroutine c_iomanager_write_group_to_root_file(self, group, &
+        subroutine c_io_manager_write_group_to_root_file(self, group, &
                 file_name) &
-                bind(C, name="SPIO_IOManager_write_group_to_root_file")
-            use axom_sidre, only : SIDRE_SHROUD_group_capsule
+                bind(C, name="SPIO_IOManager_writeGroupToRootFile")
+            use axom_sidre, only : SIDRE_SHROUD_capsule_data
             use iso_c_binding, only : C_CHAR
-            import :: SPIO_SHROUD_iomanager_capsule
+            import :: SPIO_SHROUD_capsule_data
             implicit none
-            type(SPIO_SHROUD_iomanager_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_group_capsule), intent(INOUT) :: group
+            type(SPIO_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: group
             character(kind=C_CHAR), intent(IN) :: file_name(*)
-        end subroutine c_iomanager_write_group_to_root_file
+        end subroutine c_io_manager_write_group_to_root_file
 
-        subroutine c_iomanager_write_group_to_root_file_bufferify(self, &
-                group, file_name, Lfile_name) &
-                bind(C, name="SPIO_IOManager_write_group_to_root_file_bufferify")
-            use axom_sidre, only : SIDRE_SHROUD_group_capsule
+        subroutine c_io_manager_write_group_to_root_file_bufferify(self, &
+                group, file_name, SHT_file_name_len) &
+                bind(C, name="SPIO_IOManager_writeGroupToRootFile_bufferify")
+            use axom_sidre, only : SIDRE_SHROUD_capsule_data
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SPIO_SHROUD_iomanager_capsule
+            import :: SPIO_SHROUD_capsule_data
             implicit none
-            type(SPIO_SHROUD_iomanager_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_group_capsule), intent(INOUT) :: group
+            type(SPIO_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: group
             character(kind=C_CHAR), intent(IN) :: file_name(*)
-            integer(C_INT), value, intent(IN) :: Lfile_name
-        end subroutine c_iomanager_write_group_to_root_file_bufferify
+            integer(C_INT), value, intent(IN) :: SHT_file_name_len
+        end subroutine c_io_manager_write_group_to_root_file_bufferify
 
-        subroutine c_iomanager_write_blueprint_index_to_root_file(self, &
+        subroutine c_io_manager_write_blueprint_index_to_root_file(self, &
                 datastore, domain_path, file_name, mesh_path) &
-                bind(C, name="SPIO_IOManager_write_blueprint_index_to_root_file")
-            use axom_sidre, only : SIDRE_SHROUD_datastore_capsule
+                bind(C, name="SPIO_IOManager_writeBlueprintIndexToRootFile")
+            use axom_sidre, only : SIDRE_SHROUD_capsule_data
             use iso_c_binding, only : C_CHAR
-            import :: SPIO_SHROUD_iomanager_capsule
+            import :: SPIO_SHROUD_capsule_data
             implicit none
-            type(SPIO_SHROUD_iomanager_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_datastore_capsule), intent(INOUT) :: datastore
+            type(SPIO_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: datastore
             character(kind=C_CHAR), intent(IN) :: domain_path(*)
             character(kind=C_CHAR), intent(IN) :: file_name(*)
             character(kind=C_CHAR), intent(IN) :: mesh_path(*)
-        end subroutine c_iomanager_write_blueprint_index_to_root_file
-
-        subroutine c_iomanager_write_blueprint_index_to_root_file_bufferify( &
-                self, datastore, domain_path, Ldomain_path, file_name, &
-                Lfile_name, mesh_path, Lmesh_path) &
-                bind(C, name="SPIO_IOManager_write_blueprint_index_to_root_file_bufferify")
-            use axom_sidre, only : SIDRE_SHROUD_datastore_capsule
+        end subroutine c_io_manager_write_blueprint_index_to_root_file
+
+        subroutine c_io_manager_write_blueprint_index_to_root_file_bufferify( &
+                self, datastore, domain_path, SHT_domain_path_len, &
+                file_name, SHT_file_name_len, mesh_path, &
+                SHT_mesh_path_len) &
+                bind(C, name="SPIO_IOManager_writeBlueprintIndexToRootFile_bufferify")
+            use axom_sidre, only : SIDRE_SHROUD_capsule_data
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SPIO_SHROUD_iomanager_capsule
+            import :: SPIO_SHROUD_capsule_data
             implicit none
-            type(SPIO_SHROUD_iomanager_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_datastore_capsule), intent(INOUT) :: datastore
+            type(SPIO_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: datastore
             character(kind=C_CHAR), intent(IN) :: domain_path(*)
-            integer(C_INT), value, intent(IN) :: Ldomain_path
+            integer(C_INT), value, intent(IN) :: SHT_domain_path_len
             character(kind=C_CHAR), intent(IN) :: file_name(*)
-            integer(C_INT), value, intent(IN) :: Lfile_name
+            integer(C_INT), value, intent(IN) :: SHT_file_name_len
             character(kind=C_CHAR), intent(IN) :: mesh_path(*)
-            integer(C_INT), value, intent(IN) :: Lmesh_path
-        end subroutine c_iomanager_write_blueprint_index_to_root_file_bufferify
+            integer(C_INT), value, intent(IN) :: SHT_mesh_path_len
+        end subroutine c_io_manager_write_blueprint_index_to_root_file_bufferify
 
-        subroutine c_iomanager_read_0(self, group, file_string, &
+        subroutine c_io_manager_read_0(self, group, file_string, &
                 protocol) &
                 bind(C, name="SPIO_IOManager_read_0")
-            use axom_sidre, only : SIDRE_SHROUD_group_capsule
+            use axom_sidre, only : SIDRE_SHROUD_capsule_data
             use iso_c_binding, only : C_CHAR
-            import :: SPIO_SHROUD_iomanager_capsule
+            import :: SPIO_SHROUD_capsule_data
             implicit none
-            type(SPIO_SHROUD_iomanager_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_group_capsule), intent(INOUT) :: group
+            type(SPIO_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: group
             character(kind=C_CHAR), intent(IN) :: file_string(*)
             character(kind=C_CHAR), intent(IN) :: protocol(*)
-        end subroutine c_iomanager_read_0
+        end subroutine c_io_manager_read_0
 
-        subroutine c_iomanager_read_0_bufferify(self, group, &
-                file_string, Lfile_string, protocol, Lprotocol) &
+        subroutine c_io_manager_read_0_bufferify(self, group, &
+                file_string, SHT_file_string_len, protocol, &
+                SHT_protocol_len) &
                 bind(C, name="SPIO_IOManager_read_0_bufferify")
-            use axom_sidre, only : SIDRE_SHROUD_group_capsule
+            use axom_sidre, only : SIDRE_SHROUD_capsule_data
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SPIO_SHROUD_iomanager_capsule
+            import :: SPIO_SHROUD_capsule_data
             implicit none
-            type(SPIO_SHROUD_iomanager_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_group_capsule), intent(INOUT) :: group
+            type(SPIO_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: group
             character(kind=C_CHAR), intent(IN) :: file_string(*)
-            integer(C_INT), value, intent(IN) :: Lfile_string
+            integer(C_INT), value, intent(IN) :: SHT_file_string_len
             character(kind=C_CHAR), intent(IN) :: protocol(*)
-            integer(C_INT), value, intent(IN) :: Lprotocol
-        end subroutine c_iomanager_read_0_bufferify
+            integer(C_INT), value, intent(IN) :: SHT_protocol_len
+        end subroutine c_io_manager_read_0_bufferify
 
-        subroutine c_iomanager_read_1(self, group, file_string, &
+        subroutine c_io_manager_read_1(self, group, file_string, &
                 protocol, preserve_contents) &
                 bind(C, name="SPIO_IOManager_read_1")
-            use axom_sidre, only : SIDRE_SHROUD_group_capsule
+            use axom_sidre, only : SIDRE_SHROUD_capsule_data
             use iso_c_binding, only : C_BOOL, C_CHAR
-            import :: SPIO_SHROUD_iomanager_capsule
+            import :: SPIO_SHROUD_capsule_data
             implicit none
-            type(SPIO_SHROUD_iomanager_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_group_capsule), intent(INOUT) :: group
+            type(SPIO_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: group
             character(kind=C_CHAR), intent(IN) :: file_string(*)
             character(kind=C_CHAR), intent(IN) :: protocol(*)
             logical(C_BOOL), value, intent(IN) :: preserve_contents
-        end subroutine c_iomanager_read_1
+        end subroutine c_io_manager_read_1
 
-        subroutine c_iomanager_read_1_bufferify(self, group, &
-                file_string, Lfile_string, protocol, Lprotocol, &
-                preserve_contents) &
+        subroutine c_io_manager_read_1_bufferify(self, group, &
+                file_string, SHT_file_string_len, protocol, &
+                SHT_protocol_len, preserve_contents) &
                 bind(C, name="SPIO_IOManager_read_1_bufferify")
-            use axom_sidre, only : SIDRE_SHROUD_group_capsule
+            use axom_sidre, only : SIDRE_SHROUD_capsule_data
             use iso_c_binding, only : C_BOOL, C_CHAR, C_INT
-            import :: SPIO_SHROUD_iomanager_capsule
+            import :: SPIO_SHROUD_capsule_data
             implicit none
-            type(SPIO_SHROUD_iomanager_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_group_capsule), intent(INOUT) :: group
+            type(SPIO_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: group
             character(kind=C_CHAR), intent(IN) :: file_string(*)
-            integer(C_INT), value, intent(IN) :: Lfile_string
+            integer(C_INT), value, intent(IN) :: SHT_file_string_len
             character(kind=C_CHAR), intent(IN) :: protocol(*)
-            integer(C_INT), value, intent(IN) :: Lprotocol
+            integer(C_INT), value, intent(IN) :: SHT_protocol_len
             logical(C_BOOL), value, intent(IN) :: preserve_contents
-        end subroutine c_iomanager_read_1_bufferify
+        end subroutine c_io_manager_read_1_bufferify
 
-        subroutine c_iomanager_read_2(self, group, root_file) &
+        subroutine c_io_manager_read_2(self, group, root_file) &
                 bind(C, name="SPIO_IOManager_read_2")
-            use axom_sidre, only : SIDRE_SHROUD_group_capsule
+            use axom_sidre, only : SIDRE_SHROUD_capsule_data
             use iso_c_binding, only : C_CHAR
-            import :: SPIO_SHROUD_iomanager_capsule
+            import :: SPIO_SHROUD_capsule_data
             implicit none
-            type(SPIO_SHROUD_iomanager_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_group_capsule), intent(INOUT) :: group
+            type(SPIO_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: group
             character(kind=C_CHAR), intent(IN) :: root_file(*)
-        end subroutine c_iomanager_read_2
+        end subroutine c_io_manager_read_2
 
-        subroutine c_iomanager_read_2_bufferify(self, group, root_file, &
-                Lroot_file) &
+        subroutine c_io_manager_read_2_bufferify(self, group, root_file, &
+                SHT_root_file_len) &
                 bind(C, name="SPIO_IOManager_read_2_bufferify")
-            use axom_sidre, only : SIDRE_SHROUD_group_capsule
+            use axom_sidre, only : SIDRE_SHROUD_capsule_data
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SPIO_SHROUD_iomanager_capsule
+            import :: SPIO_SHROUD_capsule_data
             implicit none
-            type(SPIO_SHROUD_iomanager_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_group_capsule), intent(INOUT) :: group
+            type(SPIO_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: group
             character(kind=C_CHAR), intent(IN) :: root_file(*)
-            integer(C_INT), value, intent(IN) :: Lroot_file
-        end subroutine c_iomanager_read_2_bufferify
+            integer(C_INT), value, intent(IN) :: SHT_root_file_len
+        end subroutine c_io_manager_read_2_bufferify
 
-        subroutine c_iomanager_read_3(self, group, root_file, &
+        subroutine c_io_manager_read_3(self, group, root_file, &
                 preserve_contents) &
                 bind(C, name="SPIO_IOManager_read_3")
-            use axom_sidre, only : SIDRE_SHROUD_group_capsule
+            use axom_sidre, only : SIDRE_SHROUD_capsule_data
             use iso_c_binding, only : C_BOOL, C_CHAR
-            import :: SPIO_SHROUD_iomanager_capsule
+            import :: SPIO_SHROUD_capsule_data
             implicit none
-            type(SPIO_SHROUD_iomanager_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_group_capsule), intent(INOUT) :: group
+            type(SPIO_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: group
             character(kind=C_CHAR), intent(IN) :: root_file(*)
             logical(C_BOOL), value, intent(IN) :: preserve_contents
-        end subroutine c_iomanager_read_3
+        end subroutine c_io_manager_read_3
 
-        subroutine c_iomanager_read_3_bufferify(self, group, root_file, &
-                Lroot_file, preserve_contents) &
+        subroutine c_io_manager_read_3_bufferify(self, group, root_file, &
+                SHT_root_file_len, preserve_contents) &
                 bind(C, name="SPIO_IOManager_read_3_bufferify")
-            use axom_sidre, only : SIDRE_SHROUD_group_capsule
+            use axom_sidre, only : SIDRE_SHROUD_capsule_data
             use iso_c_binding, only : C_BOOL, C_CHAR, C_INT
-            import :: SPIO_SHROUD_iomanager_capsule
+            import :: SPIO_SHROUD_capsule_data
             implicit none
-            type(SPIO_SHROUD_iomanager_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_group_capsule), intent(INOUT) :: group
+            type(SPIO_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: group
             character(kind=C_CHAR), intent(IN) :: root_file(*)
-            integer(C_INT), value, intent(IN) :: Lroot_file
+            integer(C_INT), value, intent(IN) :: SHT_root_file_len
             logical(C_BOOL), value, intent(IN) :: preserve_contents
-        end subroutine c_iomanager_read_3_bufferify
+        end subroutine c_io_manager_read_3_bufferify
 
-        subroutine c_iomanager_load_external_data(self, group, &
+        subroutine c_io_manager_load_external_data(self, group, &
                 root_file) &
-                bind(C, name="SPIO_IOManager_load_external_data")
-            use axom_sidre, only : SIDRE_SHROUD_group_capsule
+                bind(C, name="SPIO_IOManager_loadExternalData")
+            use axom_sidre, only : SIDRE_SHROUD_capsule_data
             use iso_c_binding, only : C_CHAR
-            import :: SPIO_SHROUD_iomanager_capsule
+            import :: SPIO_SHROUD_capsule_data
             implicit none
-            type(SPIO_SHROUD_iomanager_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_group_capsule), intent(INOUT) :: group
+            type(SPIO_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: group
             character(kind=C_CHAR), intent(IN) :: root_file(*)
-        end subroutine c_iomanager_load_external_data
+        end subroutine c_io_manager_load_external_data
 
-        subroutine c_iomanager_load_external_data_bufferify(self, group, &
-                root_file, Lroot_file) &
-                bind(C, name="SPIO_IOManager_load_external_data_bufferify")
-            use axom_sidre, only : SIDRE_SHROUD_group_capsule
+        subroutine c_io_manager_load_external_data_bufferify(self, &
+                group, root_file, SHT_root_file_len) &
+                bind(C, name="SPIO_IOManager_loadExternalData_bufferify")
+            use axom_sidre, only : SIDRE_SHROUD_capsule_data
             use iso_c_binding, only : C_CHAR, C_INT
-            import :: SPIO_SHROUD_iomanager_capsule
+            import :: SPIO_SHROUD_capsule_data
             implicit none
-            type(SPIO_SHROUD_iomanager_capsule), intent(IN) :: self
-            type(SIDRE_SHROUD_group_capsule), intent(INOUT) :: group
+            type(SPIO_SHROUD_capsule_data), intent(IN) :: self
+            type(SIDRE_SHROUD_capsule_data), intent(INOUT) :: group
             character(kind=C_CHAR), intent(IN) :: root_file(*)
-            integer(C_INT), value, intent(IN) :: Lroot_file
-        end subroutine c_iomanager_load_external_data_bufferify
+            integer(C_INT), value, intent(IN) :: SHT_root_file_len
+        end subroutine c_io_manager_load_external_data_bufferify
+    end interface
 
-        ! splicer begin class.IOManager.additional_interfaces
-        ! splicer end class.IOManager.additional_interfaces
+    interface io_manager_read
+        module procedure io_manager_read_0
+        module procedure io_manager_read_1
+        module procedure io_manager_read_2
+        module procedure io_manager_read_3
+    end interface io_manager_read
 
-        ! splicer begin additional_interfaces
-        ! splicer end additional_interfaces
-    end interface
+    interface io_manager_write
+        module procedure io_manager_write_0
+        module procedure io_manager_write_1
+    end interface io_manager_write
 
     interface iomanager
-        module procedure iomanager_ctor_default
-        module procedure iomanager_ctor_usescr
+        module procedure io_manager_ctor_default
+        module procedure io_manager_ctor_usescr
     end interface iomanager
 
+    ! splicer begin additional_declarations
+    ! splicer end additional_declarations
+
 contains
 
-    function iomanager_ctor_default(com) &
+    function io_manager_ctor_default(com) &
             result(SHT_rv)
         use iso_c_binding, only : C_PTR
         integer, value, intent(IN) :: com
         type(iomanager) :: SHT_rv
-        ! splicer begin class.IOManager.method.ctor_default
         type(C_PTR) :: SHT_prv
-        SHT_prv = c_iomanager_ctor_default(com, SHT_rv%cxxmem)
+        ! splicer begin class.IOManager.method.ctor_default
+        SHT_prv = c_io_manager_ctor_default(com, SHT_rv%cxxmem)
         ! splicer end class.IOManager.method.ctor_default
-    end function iomanager_ctor_default
+    end function io_manager_ctor_default
 
-    function iomanager_ctor_usescr(com, use_scr) &
+    function io_manager_ctor_usescr(com, use_scr) &
             result(SHT_rv)
         use iso_c_binding, only : C_BOOL, C_PTR
         integer, value, intent(IN) :: com
         logical, value, intent(IN) :: use_scr
         type(iomanager) :: SHT_rv
+        type(C_PTR) :: SHT_prv
         ! splicer begin class.IOManager.method.ctor_usescr
         logical(C_BOOL) SH_use_scr
-        type(C_PTR) :: SHT_prv
         SH_use_scr = use_scr  ! coerce to C_BOOL
-        SHT_prv = c_iomanager_ctor_usescr(com, SH_use_scr, &
+        SHT_prv = c_io_manager_ctor_usescr(com, SH_use_scr, &
             SHT_rv%cxxmem)
         ! splicer end class.IOManager.method.ctor_usescr
-    end function iomanager_ctor_usescr
+    end function io_manager_ctor_usescr
 
-    subroutine iomanager_delete(obj)
+    subroutine io_manager_delete(obj)
         class(iomanager) :: obj
         ! splicer begin class.IOManager.method.delete
-        call c_iomanager_delete(obj%cxxmem)
+        call c_io_manager_delete(obj%cxxmem)
         ! splicer end class.IOManager.method.delete
-    end subroutine iomanager_delete
+    end subroutine io_manager_delete
 
-    subroutine iomanager_write_0(obj, group, num_files, file_string, &
+    subroutine io_manager_write_0(obj, group, num_files, file_string, &
             protocol)
         use axom_sidre, only : SidreGroup
         use iso_c_binding, only : C_INT
@@ -402,13 +415,17 @@ subroutine iomanager_write_0(obj, group, num_files, file_string, &
         character(len=*), intent(IN) :: file_string
         character(len=*), intent(IN) :: protocol
         ! splicer begin class.IOManager.method.write_0
-        call c_iomanager_write_0_bufferify(obj%cxxmem, group%cxxmem, &
-            num_files, file_string, len_trim(file_string, kind=C_INT), &
-            protocol, len_trim(protocol, kind=C_INT))
+        integer(C_INT) SHT_file_string_len
+        integer(C_INT) SHT_protocol_len
+        SHT_file_string_len = len(file_string, kind=C_INT)
+        SHT_protocol_len = len(protocol, kind=C_INT)
+        call c_io_manager_write_0_bufferify(obj%cxxmem, group%cxxmem, &
+            num_files, file_string, SHT_file_string_len, protocol, &
+            SHT_protocol_len)
         ! splicer end class.IOManager.method.write_0
-    end subroutine iomanager_write_0
+    end subroutine io_manager_write_0
 
-    subroutine iomanager_write_1(obj, group, num_files, file_string, &
+    subroutine io_manager_write_1(obj, group, num_files, file_string, &
             protocol, tree_pattern)
         use axom_sidre, only : SidreGroup
         use iso_c_binding, only : C_INT
@@ -419,26 +436,34 @@ subroutine iomanager_write_1(obj, group, num_files, file_string, &
         character(len=*), intent(IN) :: protocol
         character(len=*), intent(IN) :: tree_pattern
         ! splicer begin class.IOManager.method.write_1
-        call c_iomanager_write_1_bufferify(obj%cxxmem, group%cxxmem, &
-            num_files, file_string, len_trim(file_string, kind=C_INT), &
-            protocol, len_trim(protocol, kind=C_INT), tree_pattern, &
-            len_trim(tree_pattern, kind=C_INT))
+        integer(C_INT) SHT_file_string_len
+        integer(C_INT) SHT_protocol_len
+        integer(C_INT) SHT_tree_pattern_len
+        SHT_file_string_len = len(file_string, kind=C_INT)
+        SHT_protocol_len = len(protocol, kind=C_INT)
+        SHT_tree_pattern_len = len(tree_pattern, kind=C_INT)
+        call c_io_manager_write_1_bufferify(obj%cxxmem, group%cxxmem, &
+            num_files, file_string, SHT_file_string_len, protocol, &
+            SHT_protocol_len, tree_pattern, SHT_tree_pattern_len)
         ! splicer end class.IOManager.method.write_1
-    end subroutine iomanager_write_1
+    end subroutine io_manager_write_1
 
-    subroutine iomanager_write_group_to_root_file(obj, group, file_name)
+    subroutine io_manager_write_group_to_root_file(obj, group, &
+            file_name)
         use axom_sidre, only : SidreGroup
         use iso_c_binding, only : C_INT
         class(iomanager) :: obj
         type(SidreGroup), intent(INOUT) :: group
         character(len=*), intent(IN) :: file_name
         ! splicer begin class.IOManager.method.write_group_to_root_file
-        call c_iomanager_write_group_to_root_file_bufferify(obj%cxxmem, &
-            group%cxxmem, file_name, len_trim(file_name, kind=C_INT))
+        integer(C_INT) SHT_file_name_len
+        SHT_file_name_len = len(file_name, kind=C_INT)
+        call c_io_manager_write_group_to_root_file_bufferify(obj%cxxmem, &
+            group%cxxmem, file_name, SHT_file_name_len)
         ! splicer end class.IOManager.method.write_group_to_root_file
-    end subroutine iomanager_write_group_to_root_file
+    end subroutine io_manager_write_group_to_root_file
 
-    subroutine iomanager_write_blueprint_index_to_root_file(obj, &
+    subroutine io_manager_write_blueprint_index_to_root_file(obj, &
             datastore, domain_path, file_name, mesh_path)
         use axom_sidre, only : SidreDataStore
         use iso_c_binding, only : C_INT
@@ -448,15 +473,19 @@ subroutine iomanager_write_blueprint_index_to_root_file(obj, &
         character(len=*), intent(IN) :: file_name
         character(len=*), intent(IN) :: mesh_path
         ! splicer begin class.IOManager.method.write_blueprint_index_to_root_file
-        call c_iomanager_write_blueprint_index_to_root_file_bufferify(obj%cxxmem, &
-            datastore%cxxmem, domain_path, &
-            len_trim(domain_path, kind=C_INT), file_name, &
-            len_trim(file_name, kind=C_INT), mesh_path, &
-            len_trim(mesh_path, kind=C_INT))
+        integer(C_INT) SHT_domain_path_len
+        integer(C_INT) SHT_file_name_len
+        integer(C_INT) SHT_mesh_path_len
+        SHT_domain_path_len = len(domain_path, kind=C_INT)
+        SHT_file_name_len = len(file_name, kind=C_INT)
+        SHT_mesh_path_len = len(mesh_path, kind=C_INT)
+        call c_io_manager_write_blueprint_index_to_root_file_bufferify(obj%cxxmem, &
+            datastore%cxxmem, domain_path, SHT_domain_path_len, &
+            file_name, SHT_file_name_len, mesh_path, SHT_mesh_path_len)
         ! splicer end class.IOManager.method.write_blueprint_index_to_root_file
-    end subroutine iomanager_write_blueprint_index_to_root_file
+    end subroutine io_manager_write_blueprint_index_to_root_file
 
-    subroutine iomanager_read_0(obj, group, file_string, protocol)
+    subroutine io_manager_read_0(obj, group, file_string, protocol)
         use axom_sidre, only : SidreGroup
         use iso_c_binding, only : C_INT
         class(iomanager) :: obj
@@ -464,13 +493,17 @@ subroutine iomanager_read_0(obj, group, file_string, protocol)
         character(len=*), intent(IN) :: file_string
         character(len=*), intent(IN) :: protocol
         ! splicer begin class.IOManager.method.read_0
-        call c_iomanager_read_0_bufferify(obj%cxxmem, group%cxxmem, &
-            file_string, len_trim(file_string, kind=C_INT), protocol, &
-            len_trim(protocol, kind=C_INT))
+        integer(C_INT) SHT_file_string_len
+        integer(C_INT) SHT_protocol_len
+        SHT_file_string_len = len(file_string, kind=C_INT)
+        SHT_protocol_len = len(protocol, kind=C_INT)
+        call c_io_manager_read_0_bufferify(obj%cxxmem, group%cxxmem, &
+            file_string, SHT_file_string_len, protocol, &
+            SHT_protocol_len)
         ! splicer end class.IOManager.method.read_0
-    end subroutine iomanager_read_0
+    end subroutine io_manager_read_0
 
-    subroutine iomanager_read_1(obj, group, file_string, protocol, &
+    subroutine io_manager_read_1(obj, group, file_string, protocol, &
             preserve_contents)
         use axom_sidre, only : SidreGroup
         use iso_c_binding, only : C_BOOL, C_INT
@@ -480,27 +513,33 @@ subroutine iomanager_read_1(obj, group, file_string, protocol, &
         character(len=*), intent(IN) :: protocol
         logical, value, intent(IN) :: preserve_contents
         ! splicer begin class.IOManager.method.read_1
+        integer(C_INT) SHT_file_string_len
+        integer(C_INT) SHT_protocol_len
         logical(C_BOOL) SH_preserve_contents
+        SHT_file_string_len = len(file_string, kind=C_INT)
+        SHT_protocol_len = len(protocol, kind=C_INT)
         SH_preserve_contents = preserve_contents  ! coerce to C_BOOL
-        call c_iomanager_read_1_bufferify(obj%cxxmem, group%cxxmem, &
-            file_string, len_trim(file_string, kind=C_INT), protocol, &
-            len_trim(protocol, kind=C_INT), SH_preserve_contents)
+        call c_io_manager_read_1_bufferify(obj%cxxmem, group%cxxmem, &
+            file_string, SHT_file_string_len, protocol, &
+            SHT_protocol_len, SH_preserve_contents)
         ! splicer end class.IOManager.method.read_1
-    end subroutine iomanager_read_1
+    end subroutine io_manager_read_1
 
-    subroutine iomanager_read_2(obj, group, root_file)
+    subroutine io_manager_read_2(obj, group, root_file)
         use axom_sidre, only : SidreGroup
         use iso_c_binding, only : C_INT
         class(iomanager) :: obj
         type(SidreGroup), intent(INOUT) :: group
         character(len=*), intent(IN) :: root_file
         ! splicer begin class.IOManager.method.read_2
-        call c_iomanager_read_2_bufferify(obj%cxxmem, group%cxxmem, &
-            root_file, len_trim(root_file, kind=C_INT))
+        integer(C_INT) SHT_root_file_len
+        SHT_root_file_len = len(root_file, kind=C_INT)
+        call c_io_manager_read_2_bufferify(obj%cxxmem, group%cxxmem, &
+            root_file, SHT_root_file_len)
         ! splicer end class.IOManager.method.read_2
-    end subroutine iomanager_read_2
+    end subroutine io_manager_read_2
 
-    subroutine iomanager_read_3(obj, group, root_file, &
+    subroutine io_manager_read_3(obj, group, root_file, &
             preserve_contents)
         use axom_sidre, only : SidreGroup
         use iso_c_binding, only : C_BOOL, C_INT
@@ -509,48 +548,51 @@ subroutine iomanager_read_3(obj, group, root_file, &
         character(len=*), intent(IN) :: root_file
         logical, value, intent(IN) :: preserve_contents
         ! splicer begin class.IOManager.method.read_3
+        integer(C_INT) SHT_root_file_len
         logical(C_BOOL) SH_preserve_contents
+        SHT_root_file_len = len(root_file, kind=C_INT)
         SH_preserve_contents = preserve_contents  ! coerce to C_BOOL
-        call c_iomanager_read_3_bufferify(obj%cxxmem, group%cxxmem, &
-            root_file, len_trim(root_file, kind=C_INT), &
-            SH_preserve_contents)
+        call c_io_manager_read_3_bufferify(obj%cxxmem, group%cxxmem, &
+            root_file, SHT_root_file_len, SH_preserve_contents)
         ! splicer end class.IOManager.method.read_3
-    end subroutine iomanager_read_3
+    end subroutine io_manager_read_3
 
-    subroutine iomanager_load_external_data(obj, group, root_file)
+    subroutine io_manager_load_external_data(obj, group, root_file)
         use axom_sidre, only : SidreGroup
         use iso_c_binding, only : C_INT
         class(iomanager) :: obj
         type(SidreGroup), intent(INOUT) :: group
         character(len=*), intent(IN) :: root_file
         ! splicer begin class.IOManager.method.load_external_data
-        call c_iomanager_load_external_data_bufferify(obj%cxxmem, &
-            group%cxxmem, root_file, len_trim(root_file, kind=C_INT))
+        integer(C_INT) SHT_root_file_len
+        SHT_root_file_len = len(root_file, kind=C_INT)
+        call c_io_manager_load_external_data_bufferify(obj%cxxmem, &
+            group%cxxmem, root_file, SHT_root_file_len)
         ! splicer end class.IOManager.method.load_external_data
-    end subroutine iomanager_load_external_data
+    end subroutine io_manager_load_external_data
 
     ! Return pointer to C++ memory.
-    function iomanager_get_instance(obj) result (cxxptr)
+    function io_manager_get_instance(obj) result (cxxptr)
         use iso_c_binding, only: C_PTR
         class(iomanager), intent(IN) :: obj
         type(C_PTR) :: cxxptr
         cxxptr = obj%cxxmem%addr
-    end function iomanager_get_instance
+    end function io_manager_get_instance
 
-    subroutine iomanager_set_instance(obj, cxxmem)
+    subroutine io_manager_set_instance(obj, cxxmem)
         use iso_c_binding, only: C_PTR
         class(iomanager), intent(INOUT) :: obj
         type(C_PTR), intent(IN) :: cxxmem
         obj%cxxmem%addr = cxxmem
         obj%cxxmem%idtor = 0
-    end subroutine iomanager_set_instance
+    end subroutine io_manager_set_instance
 
-    function iomanager_associated(obj) result (rv)
+    function io_manager_associated(obj) result (rv)
         use iso_c_binding, only: c_associated
         class(iomanager), intent(IN) :: obj
         logical rv
         rv = c_associated(obj%cxxmem%addr)
-    end function iomanager_associated
+    end function io_manager_associated
 
     ! splicer begin class.IOManager.additional_functions
     ! splicer end class.IOManager.additional_functions
@@ -558,7 +600,7 @@ end function iomanager_associated
     ! splicer begin additional_functions
     ! splicer end additional_functions
 
-    function iomanager_eq(a,b) result (rv)
+    function io_manager_eq(a,b) result (rv)
         use iso_c_binding, only: c_associated
         type(iomanager), intent(IN) ::a,b
         logical :: rv
@@ -567,9 +609,9 @@ function iomanager_eq(a,b) result (rv)
         else
             rv = .false.
         endif
-    end function iomanager_eq
+    end function io_manager_eq
 
-    function iomanager_ne(a,b) result (rv)
+    function io_manager_ne(a,b) result (rv)
         use iso_c_binding, only: c_associated
         type(iomanager), intent(IN) ::a,b
         logical :: rv
@@ -578,6 +620,6 @@ function iomanager_ne(a,b) result (rv)
         else
             rv = .false.
         endif
-    end function iomanager_ne
+    end function io_manager_ne
 
 end module axom_spio
diff --git a/src/axom/sidre/spio/interface/yaml/spio_types.yaml b/src/axom/sidre/spio/interface/yaml/spio_types.yaml
index f7fa07fa1f..3fe8b866f1 100644
--- a/src/axom/sidre/spio/interface/yaml/spio_types.yaml
+++ b/src/axom/sidre/spio/interface/yaml/spio_types.yaml
@@ -1,5 +1,5 @@
 # spio_types.yaml
-# This file is generated by Shroud 0.12.2. Do not edit.
+# This file is generated by Shroud 0.13.0. Do not edit.
 #
 # Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 # other Axom Project Developers. See the top-level LICENSE file for details.
@@ -19,5 +19,5 @@ typemap:
           c_type: SPIO_IOManager
           f_module_name: axom_spio
           f_derived_type: iomanager
-          f_capsule_data_type: SPIO_SHROUD_iomanager_capsule
+          f_capsule_data_type: SPIO_SHROUD_capsule_data
           f_to_c: "{f_var}%cxxmem"
diff --git a/src/axom/slic/interface/c_fortran/typesSLIC.h b/src/axom/slic/interface/c_fortran/typesSLIC.h
index 6e04d20430..bc85a0655e 100644
--- a/src/axom/slic/interface/c_fortran/typesSLIC.h
+++ b/src/axom/slic/interface/c_fortran/typesSLIC.h
@@ -1,5 +1,5 @@
 // typesSLIC.h
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
@@ -10,10 +10,16 @@
 #ifndef TYPESSLIC_H
 #define TYPESSLIC_H
 
+// splicer begin types.CXX_declarations
+// splicer end types.CXX_declarations
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+// splicer begin types.C_declarations
+// splicer end types.C_declarations
+
 // helper capsule_SLIC_GenericOutputStream
 struct s_SLIC_GenericOutputStream
 {
diff --git a/src/axom/slic/interface/c_fortran/wrapGenericOutputStream.cpp b/src/axom/slic/interface/c_fortran/wrapGenericOutputStream.cpp
index 200dc0c454..a17ab4c743 100644
--- a/src/axom/slic/interface/c_fortran/wrapGenericOutputStream.cpp
+++ b/src/axom/slic/interface/c_fortran/wrapGenericOutputStream.cpp
@@ -1,20 +1,39 @@
 // wrapGenericOutputStream.cpp
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
 //
 // SPDX-License-Identifier: (BSD-3-Clause)
-#include "wrapGenericOutputStream.h"
-#include <cstddef>
-#include <string>
+
 #include "axom/slic/streams/GenericOutputStream.hpp"
+#include <string>
+#include <cstddef>
+#include "wrapGenericOutputStream.h"
 
 // splicer begin class.GenericOutputStream.CXX_definitions
 // splicer end class.GenericOutputStream.CXX_definitions
 
 extern "C" {
 
+// helper ShroudLenTrim
+// Returns the length of character string src with length nsrc,
+// ignoring any trailing blanks.
+static int ShroudLenTrim(const char *src, int nsrc)
+{
+  int i;
+
+  for(i = nsrc - 1; i >= 0; i--)
+  {
+    if(src[i] != ' ')
+    {
+      break;
+    }
+  }
+
+  return i + 1;
+}
+
 // splicer begin class.GenericOutputStream.C_definitions
 // splicer end class.GenericOutputStream.C_definitions
 
@@ -33,12 +52,12 @@ SLIC_GenericOutputStream *SLIC_GenericOutputStream_ctor_default(
 }
 
 SLIC_GenericOutputStream *SLIC_GenericOutputStream_ctor_default_bufferify(
-  const char *stream,
-  int Lstream,
+  char *stream,
+  int SHT_stream_len,
   SLIC_GenericOutputStream *SHC_rv)
 {
   // splicer begin class.GenericOutputStream.method.ctor_default_bufferify
-  const std::string SHCXX_stream(stream, Lstream);
+  const std::string SHCXX_stream(stream, ShroudLenTrim(stream, SHT_stream_len));
   axom::slic::GenericOutputStream *SHCXX_rv =
     new axom::slic::GenericOutputStream(SHCXX_stream);
   SHC_rv->addr = static_cast<void *>(SHCXX_rv);
@@ -64,15 +83,15 @@ SLIC_GenericOutputStream *SLIC_GenericOutputStream_ctor_format(
 }
 
 SLIC_GenericOutputStream *SLIC_GenericOutputStream_ctor_format_bufferify(
-  const char *stream,
-  int Lstream,
-  const char *format,
-  int Lformat,
+  char *stream,
+  int SHT_stream_len,
+  char *format,
+  int SHT_format_len,
   SLIC_GenericOutputStream *SHC_rv)
 {
   // splicer begin class.GenericOutputStream.method.ctor_format_bufferify
-  const std::string SHCXX_stream(stream, Lstream);
-  const std::string SHCXX_format(format, Lformat);
+  const std::string SHCXX_stream(stream, ShroudLenTrim(stream, SHT_stream_len));
+  const std::string SHCXX_format(format, ShroudLenTrim(format, SHT_format_len));
   axom::slic::GenericOutputStream *SHCXX_rv =
     new axom::slic::GenericOutputStream(SHCXX_stream, SHCXX_format);
   SHC_rv->addr = static_cast<void *>(SHCXX_rv);
diff --git a/src/axom/slic/interface/c_fortran/wrapGenericOutputStream.h b/src/axom/slic/interface/c_fortran/wrapGenericOutputStream.h
index 025286d21f..2cadb7be78 100644
--- a/src/axom/slic/interface/c_fortran/wrapGenericOutputStream.h
+++ b/src/axom/slic/interface/c_fortran/wrapGenericOutputStream.h
@@ -1,5 +1,5 @@
 // wrapGenericOutputStream.h
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
@@ -26,28 +26,28 @@ extern "C" {
 // splicer begin class.GenericOutputStream.C_declarations
 // splicer end class.GenericOutputStream.C_declarations
 
-SLIC_GenericOutputStream* SLIC_GenericOutputStream_ctor_default(
-  const char* stream,
-  SLIC_GenericOutputStream* SHC_rv);
+SLIC_GenericOutputStream *SLIC_GenericOutputStream_ctor_default(
+  const char *stream,
+  SLIC_GenericOutputStream *SHC_rv);
 
-SLIC_GenericOutputStream* SLIC_GenericOutputStream_ctor_default_bufferify(
-  const char* stream,
-  int Lstream,
-  SLIC_GenericOutputStream* SHC_rv);
+SLIC_GenericOutputStream *SLIC_GenericOutputStream_ctor_default_bufferify(
+  char *stream,
+  int SHT_stream_len,
+  SLIC_GenericOutputStream *SHC_rv);
 
-SLIC_GenericOutputStream* SLIC_GenericOutputStream_ctor_format(
-  const char* stream,
-  const char* format,
-  SLIC_GenericOutputStream* SHC_rv);
+SLIC_GenericOutputStream *SLIC_GenericOutputStream_ctor_format(
+  const char *stream,
+  const char *format,
+  SLIC_GenericOutputStream *SHC_rv);
 
-SLIC_GenericOutputStream* SLIC_GenericOutputStream_ctor_format_bufferify(
-  const char* stream,
-  int Lstream,
-  const char* format,
-  int Lformat,
-  SLIC_GenericOutputStream* SHC_rv);
+SLIC_GenericOutputStream *SLIC_GenericOutputStream_ctor_format_bufferify(
+  char *stream,
+  int SHT_stream_len,
+  char *format,
+  int SHT_format_len,
+  SLIC_GenericOutputStream *SHC_rv);
 
-void SLIC_GenericOutputStream_delete(SLIC_GenericOutputStream* self);
+void SLIC_GenericOutputStream_delete(SLIC_GenericOutputStream *self);
 
 #ifdef __cplusplus
 }
diff --git a/src/axom/slic/interface/c_fortran/wrapSLIC.cpp b/src/axom/slic/interface/c_fortran/wrapSLIC.cpp
index e0270df4fd..41109bc5fe 100644
--- a/src/axom/slic/interface/c_fortran/wrapSLIC.cpp
+++ b/src/axom/slic/interface/c_fortran/wrapSLIC.cpp
@@ -1,23 +1,40 @@
 // wrapSLIC.cpp
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
 //
 // SPDX-License-Identifier: (BSD-3-Clause)
-#include "wrapSLIC.h"
-#include <cstdlib>
-#include <cstring>
-#include <string>
+
 #include "axom/slic/interface/slic.hpp"
+#include <string>
 #include "axom/slic/streams/GenericOutputStream.hpp"
-#include "typesSLIC.h"
+#include <cstring>
+#include "wrapSLIC.h"
 
 // splicer begin CXX_definitions
 // splicer end CXX_definitions
 
 extern "C" {
 
+// helper ShroudLenTrim
+// Returns the length of character string src with length nsrc,
+// ignoring any trailing blanks.
+static int ShroudLenTrim(const char *src, int nsrc)
+{
+  int i;
+
+  for(i = nsrc - 1; i >= 0; i--)
+  {
+    if(src[i] != ' ')
+    {
+      break;
+    }
+  }
+
+  return i + 1;
+}
+
 // helper ShroudStrCopy
 // Copy src into dest, blank fill to ndest characters
 // Truncate if dest is too short.
@@ -30,16 +47,10 @@ static void ShroudStrCopy(char *dest, int ndest, const char *src, int nsrc)
   }
   else
   {
-    if(nsrc < 0)
-    {
-      nsrc = std::strlen(src);
-    }
+    if(nsrc < 0) nsrc = std::strlen(src);
     int nm = nsrc < ndest ? nsrc : ndest;
     std::memcpy(dest, src, nm);
-    if(ndest > nm)
-    {
-      std::memset(dest + nm, ' ', ndest - nm);  // blank fill
-    }
+    if(ndest > nm) std::memset(dest + nm, ' ', ndest - nm);  // blank fill
   }
 }
 // splicer begin C_definitions
@@ -52,196 +63,198 @@ void SLIC_initialize(void)
   // splicer end function.initialize
 }
 
-bool SLIC_is_initialized(void)
+bool SLIC_isInitialized(void)
 {
-  // splicer begin function.is_initialized
+  // splicer begin function.isInitialized
   bool SHC_rv = axom::slic::isInitialized();
   return SHC_rv;
-  // splicer end function.is_initialized
+  // splicer end function.isInitialized
 }
 
-void SLIC_create_logger(const char *name, char imask)
+void SLIC_createLogger(const char *name, char imask)
 {
-  // splicer begin function.create_logger
+  // splicer begin function.createLogger
   const std::string SHCXX_name(name);
   axom::slic::createLogger(SHCXX_name, imask);
-  // splicer end function.create_logger
+  // splicer end function.createLogger
 }
 
-void SLIC_create_logger_bufferify(const char *name, int Lname, char imask)
+void SLIC_createLogger_bufferify(char *name, int SHT_name_len, char imask)
 {
-  // splicer begin function.create_logger_bufferify
-  const std::string SHCXX_name(name, Lname);
+  // splicer begin function.createLogger_bufferify
+  const std::string SHCXX_name(name, ShroudLenTrim(name, SHT_name_len));
   axom::slic::createLogger(SHCXX_name, imask);
-  // splicer end function.create_logger_bufferify
+  // splicer end function.createLogger_bufferify
 }
 
-bool SLIC_activate_logger(const char *name)
+bool SLIC_activateLogger(const char *name)
 {
-  // splicer begin function.activate_logger
+  // splicer begin function.activateLogger
   const std::string SHCXX_name(name);
   bool SHC_rv = axom::slic::activateLogger(SHCXX_name);
   return SHC_rv;
-  // splicer end function.activate_logger
+  // splicer end function.activateLogger
 }
 
-bool SLIC_activate_logger_bufferify(const char *name, int Lname)
+bool SLIC_activateLogger_bufferify(char *name, int SHT_name_len)
 {
-  // splicer begin function.activate_logger_bufferify
-  const std::string SHCXX_name(name, Lname);
+  // splicer begin function.activateLogger_bufferify
+  const std::string SHCXX_name(name, ShroudLenTrim(name, SHT_name_len));
   bool SHC_rv = axom::slic::activateLogger(SHCXX_name);
   return SHC_rv;
-  // splicer end function.activate_logger_bufferify
+  // splicer end function.activateLogger_bufferify
 }
 
-void SLIC_get_active_logger_name_bufferify(char *name, int Nname)
+void SLIC_getActiveLoggerName_bufferify(char *name, int SHT_name_len)
 {
-  // splicer begin function.get_active_logger_name_bufferify
+  // splicer begin function.getActiveLoggerName_bufferify
   std::string SHCXX_rv = axom::slic::getActiveLoggerName();
   if(SHCXX_rv.empty())
   {
-    ShroudStrCopy(name, Nname, nullptr, 0);
+    ShroudStrCopy(name, SHT_name_len, nullptr, 0);
   }
   else
   {
-    ShroudStrCopy(name, Nname, SHCXX_rv.data(), SHCXX_rv.size());
+    ShroudStrCopy(name, SHT_name_len, SHCXX_rv.data(), SHCXX_rv.size());
   }
-  // splicer end function.get_active_logger_name_bufferify
+  // splicer end function.getActiveLoggerName_bufferify
 }
 
-int SLIC_get_logging_msg_level(void)
+int SLIC_getLoggingMsgLevel(void)
 {
-  // splicer begin function.get_logging_msg_level
+  // splicer begin function.getLoggingMsgLevel
   axom::slic::message::Level SHCXX_rv = axom::slic::getLoggingMsgLevel();
   int SHC_rv = static_cast<int>(SHCXX_rv);
   return SHC_rv;
-  // splicer end function.get_logging_msg_level
+  // splicer end function.getLoggingMsgLevel
 }
 
-void SLIC_set_logging_msg_level(int level)
+void SLIC_setLoggingMsgLevel(int level)
 {
-  // splicer begin function.set_logging_msg_level
+  // splicer begin function.setLoggingMsgLevel
   axom::slic::message::Level SHCXX_level =
     static_cast<axom::slic::message::Level>(level);
   axom::slic::setLoggingMsgLevel(SHCXX_level);
-  // splicer end function.set_logging_msg_level
+  // splicer end function.setLoggingMsgLevel
 }
 
-void SLIC_add_stream_to_msg_level(SLIC_GenericOutputStream *ls, int level)
+void SLIC_addStreamToMsgLevel(SLIC_GenericOutputStream *ls, int level)
 {
-  // splicer begin function.add_stream_to_msg_level
+  // splicer begin function.addStreamToMsgLevel
   axom::slic::GenericOutputStream *SHCXX_ls =
     static_cast<axom::slic::GenericOutputStream *>(ls->addr);
   axom::slic::message::Level SHCXX_level =
     static_cast<axom::slic::message::Level>(level);
   axom::slic::addStreamToMsgLevel(SHCXX_ls, SHCXX_level);
-  // splicer end function.add_stream_to_msg_level
+  // splicer end function.addStreamToMsgLevel
 }
 
-void SLIC_add_stream_to_all_msg_levels(SLIC_GenericOutputStream *ls)
+void SLIC_addStreamToAllMsgLevels(SLIC_GenericOutputStream *ls)
 {
-  // splicer begin function.add_stream_to_all_msg_levels
+  // splicer begin function.addStreamToAllMsgLevels
   axom::slic::GenericOutputStream *SHCXX_ls =
     static_cast<axom::slic::GenericOutputStream *>(ls->addr);
   axom::slic::addStreamToAllMsgLevels(SHCXX_ls);
-  // splicer end function.add_stream_to_all_msg_levels
+  // splicer end function.addStreamToAllMsgLevels
 }
 
-void SLIC_set_abort_on_error(bool status)
+void SLIC_setAbortOnError(bool status)
 {
-  // splicer begin function.set_abort_on_error
+  // splicer begin function.setAbortOnError
   axom::slic::setAbortOnError(status);
-  // splicer end function.set_abort_on_error
+  // splicer end function.setAbortOnError
 }
 
-void SLIC_enable_abort_on_error(void)
+void SLIC_enableAbortOnError(void)
 {
-  // splicer begin function.enable_abort_on_error
+  // splicer begin function.enableAbortOnError
   axom::slic::enableAbortOnError();
-  // splicer end function.enable_abort_on_error
+  // splicer end function.enableAbortOnError
 }
 
-void SLIC_disable_abort_on_error(void)
+void SLIC_disableAbortOnError(void)
 {
-  // splicer begin function.disable_abort_on_error
+  // splicer begin function.disableAbortOnError
   axom::slic::disableAbortOnError();
-  // splicer end function.disable_abort_on_error
+  // splicer end function.disableAbortOnError
 }
 
-bool SLIC_is_abort_on_errors_enabled(void)
+bool SLIC_isAbortOnErrorsEnabled(void)
 {
-  // splicer begin function.is_abort_on_errors_enabled
+  // splicer begin function.isAbortOnErrorsEnabled
   bool SHC_rv = axom::slic::isAbortOnErrorsEnabled();
   return SHC_rv;
-  // splicer end function.is_abort_on_errors_enabled
+  // splicer end function.isAbortOnErrorsEnabled
 }
 
-void SLIC_set_abort_on_warning(bool status)
+void SLIC_setAbortOnWarning(bool status)
 {
-  // splicer begin function.set_abort_on_warning
+  // splicer begin function.setAbortOnWarning
   axom::slic::setAbortOnWarning(status);
-  // splicer end function.set_abort_on_warning
+  // splicer end function.setAbortOnWarning
 }
 
-void SLIC_enable_abort_on_warning(void)
+void SLIC_enableAbortOnWarning(void)
 {
-  // splicer begin function.enable_abort_on_warning
+  // splicer begin function.enableAbortOnWarning
   axom::slic::enableAbortOnWarning();
-  // splicer end function.enable_abort_on_warning
+  // splicer end function.enableAbortOnWarning
 }
 
-void SLIC_disable_abort_on_warning(void)
+void SLIC_disableAbortOnWarning(void)
 {
-  // splicer begin function.disable_abort_on_warning
+  // splicer begin function.disableAbortOnWarning
   axom::slic::disableAbortOnWarning();
-  // splicer end function.disable_abort_on_warning
+  // splicer end function.disableAbortOnWarning
 }
 
-bool SLIC_is_abort_on_warnings_enabled(void)
+bool SLIC_isAbortOnWarningsEnabled(void)
 {
-  // splicer begin function.is_abort_on_warnings_enabled
+  // splicer begin function.isAbortOnWarningsEnabled
   bool SHC_rv = axom::slic::isAbortOnWarningsEnabled();
   return SHC_rv;
-  // splicer end function.is_abort_on_warnings_enabled
+  // splicer end function.isAbortOnWarningsEnabled
 }
 
-void SLIC_log_message_file_line(int level,
-                                const char *message,
-                                const char *fileName,
-                                int line)
+void SLIC_logMessage_file_line(int level,
+                               const char *message,
+                               const char *fileName,
+                               int line)
 {
-  // splicer begin function.log_message_file_line
+  // splicer begin function.logMessage_file_line
   axom::slic::message::Level SHCXX_level =
     static_cast<axom::slic::message::Level>(level);
   const std::string SHCXX_message(message);
   const std::string SHCXX_fileName(fileName);
   axom::slic::logMessage(SHCXX_level, SHCXX_message, SHCXX_fileName, line);
-  // splicer end function.log_message_file_line
+  // splicer end function.logMessage_file_line
 }
 
-void SLIC_log_message_file_line_bufferify(int level,
-                                          const char *message,
-                                          int Lmessage,
-                                          const char *fileName,
-                                          int LfileName,
-                                          int line)
+void SLIC_logMessage_file_line_bufferify(int level,
+                                         char *message,
+                                         int SHT_message_len,
+                                         char *fileName,
+                                         int SHT_fileName_len,
+                                         int line)
 {
-  // splicer begin function.log_message_file_line_bufferify
+  // splicer begin function.logMessage_file_line_bufferify
   axom::slic::message::Level SHCXX_level =
     static_cast<axom::slic::message::Level>(level);
-  const std::string SHCXX_message(message, Lmessage);
-  const std::string SHCXX_fileName(fileName, LfileName);
+  const std::string SHCXX_message(message,
+                                  ShroudLenTrim(message, SHT_message_len));
+  const std::string SHCXX_fileName(fileName,
+                                   ShroudLenTrim(fileName, SHT_fileName_len));
   axom::slic::logMessage(SHCXX_level, SHCXX_message, SHCXX_fileName, line);
-  // splicer end function.log_message_file_line_bufferify
+  // splicer end function.logMessage_file_line_bufferify
 }
 
-void SLIC_log_message_file_line_filter(int level,
-                                       const char *message,
-                                       const char *fileName,
-                                       int line,
-                                       bool filter_duplicates)
+void SLIC_logMessage_file_line_filter(int level,
+                                      const char *message,
+                                      const char *fileName,
+                                      int line,
+                                      bool filter_duplicates)
 {
-  // splicer begin function.log_message_file_line_filter
+  // splicer begin function.logMessage_file_line_filter
   axom::slic::message::Level SHCXX_level =
     static_cast<axom::slic::message::Level>(level);
   const std::string SHCXX_message(message);
@@ -251,78 +264,82 @@ void SLIC_log_message_file_line_filter(int level,
                          SHCXX_fileName,
                          line,
                          filter_duplicates);
-  // splicer end function.log_message_file_line_filter
+  // splicer end function.logMessage_file_line_filter
 }
 
-void SLIC_log_message_file_line_filter_bufferify(int level,
-                                                 const char *message,
-                                                 int Lmessage,
-                                                 const char *fileName,
-                                                 int LfileName,
-                                                 int line,
-                                                 bool filter_duplicates)
+void SLIC_logMessage_file_line_filter_bufferify(int level,
+                                                char *message,
+                                                int SHT_message_len,
+                                                char *fileName,
+                                                int SHT_fileName_len,
+                                                int line,
+                                                bool filter_duplicates)
 {
-  // splicer begin function.log_message_file_line_filter_bufferify
+  // splicer begin function.logMessage_file_line_filter_bufferify
   axom::slic::message::Level SHCXX_level =
     static_cast<axom::slic::message::Level>(level);
-  const std::string SHCXX_message(message, Lmessage);
-  const std::string SHCXX_fileName(fileName, LfileName);
+  const std::string SHCXX_message(message,
+                                  ShroudLenTrim(message, SHT_message_len));
+  const std::string SHCXX_fileName(fileName,
+                                   ShroudLenTrim(fileName, SHT_fileName_len));
   axom::slic::logMessage(SHCXX_level,
                          SHCXX_message,
                          SHCXX_fileName,
                          line,
                          filter_duplicates);
-  // splicer end function.log_message_file_line_filter_bufferify
+  // splicer end function.logMessage_file_line_filter_bufferify
 }
 
-void SLIC_log_message(int level, const char *message)
+void SLIC_logMessage(int level, const char *message)
 {
-  // splicer begin function.log_message
+  // splicer begin function.logMessage
   axom::slic::message::Level SHCXX_level =
     static_cast<axom::slic::message::Level>(level);
   const std::string SHCXX_message(message);
   axom::slic::logMessage(SHCXX_level, SHCXX_message);
-  // splicer end function.log_message
+  // splicer end function.logMessage
 }
 
-void SLIC_log_message_bufferify(int level, const char *message, int Lmessage)
+void SLIC_logMessage_bufferify(int level, char *message, int SHT_message_len)
 {
-  // splicer begin function.log_message_bufferify
+  // splicer begin function.logMessage_bufferify
   axom::slic::message::Level SHCXX_level =
     static_cast<axom::slic::message::Level>(level);
-  const std::string SHCXX_message(message, Lmessage);
+  const std::string SHCXX_message(message,
+                                  ShroudLenTrim(message, SHT_message_len));
   axom::slic::logMessage(SHCXX_level, SHCXX_message);
-  // splicer end function.log_message_bufferify
+  // splicer end function.logMessage_bufferify
 }
 
-void SLIC_log_message_filter(int level, const char *message, bool filter_duplicates)
+void SLIC_logMessage_filter(int level, const char *message, bool filter_duplicates)
 {
-  // splicer begin function.log_message_filter
+  // splicer begin function.logMessage_filter
   axom::slic::message::Level SHCXX_level =
     static_cast<axom::slic::message::Level>(level);
   const std::string SHCXX_message(message);
   axom::slic::logMessage(SHCXX_level, SHCXX_message, filter_duplicates);
-  // splicer end function.log_message_filter
+  // splicer end function.logMessage_filter
 }
 
-void SLIC_log_message_filter_bufferify(int level,
-                                       const char *message,
-                                       int Lmessage,
-                                       bool filter_duplicates)
+void SLIC_logMessage_filter_bufferify(int level,
+                                      char *message,
+                                      int SHT_message_len,
+                                      bool filter_duplicates)
 {
-  // splicer begin function.log_message_filter_bufferify
+  // splicer begin function.logMessage_filter_bufferify
   axom::slic::message::Level SHCXX_level =
     static_cast<axom::slic::message::Level>(level);
-  const std::string SHCXX_message(message, Lmessage);
+  const std::string SHCXX_message(message,
+                                  ShroudLenTrim(message, SHT_message_len));
   axom::slic::logMessage(SHCXX_level, SHCXX_message, filter_duplicates);
-  // splicer end function.log_message_filter_bufferify
+  // splicer end function.logMessage_filter_bufferify
 }
 
-void SLIC_flush_streams(void)
+void SLIC_flushStreams(void)
 {
-  // splicer begin function.flush_streams
+  // splicer begin function.flushStreams
   axom::slic::flushStreams();
-  // splicer end function.flush_streams
+  // splicer end function.flushStreams
 }
 
 void SLIC_finalize(void)
@@ -332,32 +349,4 @@ void SLIC_finalize(void)
   // splicer end function.finalize
 }
 
-// Release library allocated memory.
-void SLIC_SHROUD_memory_destructor(SLIC_SHROUD_capsule_data *cap)
-{
-  void *ptr = cap->addr;
-  switch(cap->idtor)
-  {
-  case 0:  // --none--
-  {
-    // Nothing to delete
-    break;
-  }
-  case 1:  // axom::slic::GenericOutputStream
-  {
-    axom::slic::GenericOutputStream *cxx_ptr =
-      reinterpret_cast<axom::slic::GenericOutputStream *>(ptr);
-    delete cxx_ptr;
-    break;
-  }
-  default:
-  {
-    // Unexpected case in destructor
-    break;
-  }
-  }
-  cap->addr = nullptr;
-  cap->idtor = 0;  // avoid deleting again
-}
-
 }  // extern "C"
diff --git a/src/axom/slic/interface/c_fortran/wrapSLIC.h b/src/axom/slic/interface/c_fortran/wrapSLIC.h
index 36b0ce6697..d5a98179ce 100644
--- a/src/axom/slic/interface/c_fortran/wrapSLIC.h
+++ b/src/axom/slic/interface/c_fortran/wrapSLIC.h
@@ -1,5 +1,5 @@
 // wrapSLIC.h
-// This file is generated by Shroud 0.12.2. Do not edit.
+// This file is generated by Shroud 0.13.0. Do not edit.
 //
 // Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 // other Axom Project Developers. See the top-level LICENSE file for details.
@@ -14,10 +14,10 @@
 #ifndef WRAPSLIC_H
 #define WRAPSLIC_H
 
-#include "typesSLIC.h"
 #ifndef __cplusplus
   #include <stdbool.h>
 #endif
+#include "typesSLIC.h"
 
 // splicer begin CXX_declarations
 // splicer end CXX_declarations
@@ -41,82 +41,80 @@ enum SLIC_message_Level
 
 void SLIC_initialize(void);
 
-bool SLIC_is_initialized(void);
+bool SLIC_isInitialized(void);
 
-void SLIC_create_logger(const char* name, char imask);
+void SLIC_createLogger(const char *name, char imask);
 
-void SLIC_create_logger_bufferify(const char* name, int Lname, char imask);
+void SLIC_createLogger_bufferify(char *name, int SHT_name_len, char imask);
 
-bool SLIC_activate_logger(const char* name);
+bool SLIC_activateLogger(const char *name);
 
-bool SLIC_activate_logger_bufferify(const char* name, int Lname);
+bool SLIC_activateLogger_bufferify(char *name, int SHT_name_len);
 
-void SLIC_get_active_logger_name_bufferify(char* name, int Nname);
+void SLIC_getActiveLoggerName_bufferify(char *name, int SHT_name_len);
 
-int SLIC_get_logging_msg_level(void);
+int SLIC_getLoggingMsgLevel(void);
 
-void SLIC_set_logging_msg_level(int level);
+void SLIC_setLoggingMsgLevel(int level);
 
-void SLIC_add_stream_to_msg_level(SLIC_GenericOutputStream* ls, int level);
+void SLIC_addStreamToMsgLevel(SLIC_GenericOutputStream *ls, int level);
 
-void SLIC_add_stream_to_all_msg_levels(SLIC_GenericOutputStream* ls);
+void SLIC_addStreamToAllMsgLevels(SLIC_GenericOutputStream *ls);
 
-void SLIC_set_abort_on_error(bool status);
+void SLIC_setAbortOnError(bool status);
 
-void SLIC_enable_abort_on_error(void);
+void SLIC_enableAbortOnError(void);
 
-void SLIC_disable_abort_on_error(void);
+void SLIC_disableAbortOnError(void);
 
-bool SLIC_is_abort_on_errors_enabled(void);
+bool SLIC_isAbortOnErrorsEnabled(void);
 
-void SLIC_set_abort_on_warning(bool status);
+void SLIC_setAbortOnWarning(bool status);
 
-void SLIC_enable_abort_on_warning(void);
+void SLIC_enableAbortOnWarning(void);
 
-void SLIC_disable_abort_on_warning(void);
+void SLIC_disableAbortOnWarning(void);
 
-bool SLIC_is_abort_on_warnings_enabled(void);
+bool SLIC_isAbortOnWarningsEnabled(void);
 
-void SLIC_log_message_file_line(int level,
-                                const char* message,
-                                const char* fileName,
-                                int line);
+void SLIC_logMessage_file_line(int level,
+                               const char *message,
+                               const char *fileName,
+                               int line);
 
-void SLIC_log_message_file_line_bufferify(int level,
-                                          const char* message,
-                                          int Lmessage,
-                                          const char* fileName,
-                                          int LfileName,
-                                          int line);
+void SLIC_logMessage_file_line_bufferify(int level,
+                                         char *message,
+                                         int SHT_message_len,
+                                         char *fileName,
+                                         int SHT_fileName_len,
+                                         int line);
 
-void SLIC_log_message_file_line_filter(int level,
-                                       const char* message,
-                                       const char* fileName,
-                                       int line,
-                                       bool filter_duplicates);
+void SLIC_logMessage_file_line_filter(int level,
+                                      const char *message,
+                                      const char *fileName,
+                                      int line,
+                                      bool filter_duplicates);
 
-void SLIC_log_message_file_line_filter_bufferify(int level,
-                                                 const char* message,
-                                                 int Lmessage,
-                                                 const char* fileName,
-                                                 int LfileName,
-                                                 int line,
-                                                 bool filter_duplicates);
+void SLIC_logMessage_file_line_filter_bufferify(int level,
+                                                char *message,
+                                                int SHT_message_len,
+                                                char *fileName,
+                                                int SHT_fileName_len,
+                                                int line,
+                                                bool filter_duplicates);
 
-void SLIC_log_message(int level, const char* message);
+void SLIC_logMessage(int level, const char *message);
 
-void SLIC_log_message_bufferify(int level, const char* message, int Lmessage);
+void SLIC_logMessage_bufferify(int level, char *message, int SHT_message_len);
 
-void SLIC_log_message_filter(int level,
-                             const char* message,
-                             bool filter_duplicates);
+void SLIC_logMessage_filter(int level, const char *message, bool filter_duplicates);
 
-void SLIC_log_message_filter_bufferify(int level,
-                                       const char* message,
-                                       int Lmessage,
-                                       bool filter_duplicates);
+void SLIC_logMessage_filter_bufferify(int level,
+                                      char *message,
+                                      int SHT_message_len,
+                                      bool filter_duplicates);
 
-void SLIC_flush_streams(void);
+void SLIC_flushStreams(void);
 
 void SLIC_finalize(void);
 
diff --git a/src/axom/slic/interface/c_fortran/wrapfslic.f b/src/axom/slic/interface/c_fortran/wrapfslic.f
index 936dbae4c0..94fddd1762 100644
--- a/src/axom/slic/interface/c_fortran/wrapfslic.f
+++ b/src/axom/slic/interface/c_fortran/wrapfslic.f
@@ -1,5 +1,5 @@
 ! wrapfslic.f
-! This file is generated by Shroud 0.12.2. Do not edit.
+! This file is generated by Shroud 0.13.0. Do not edit.
 !
 ! Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 ! other Axom Project Developers. See the top-level LICENSE file for details.
@@ -20,6 +20,12 @@ module axom_slic
     ! splicer begin module_top
     ! splicer end module_top
 
+    ! helper capsule_data_helper
+    type, bind(C) :: SLIC_SHROUD_capsule_data
+        type(C_PTR) :: addr = C_NULL_PTR  ! address of C++ memory
+        integer(C_INT) :: idtor = 0       ! index of destructor
+    end type SLIC_SHROUD_capsule_data
+
     !  enum axom::slic::message::Level
     integer(C_INT), parameter :: message_error = 0
     integer(C_INT), parameter :: message_warning = 1
@@ -27,95 +33,87 @@ module axom_slic
     integer(C_INT), parameter :: message_debug = 3
     integer(C_INT), parameter :: message_num_levels = 4
 
-    type, bind(C) :: SLIC_SHROUD_genericoutputstream_capsule
-        type(C_PTR) :: addr = C_NULL_PTR  ! address of C++ memory
-        integer(C_INT) :: idtor = 0       ! index of destructor
-    end type SLIC_SHROUD_genericoutputstream_capsule
-
     type SlicGenericOutputStream
-        type(SLIC_SHROUD_genericoutputstream_capsule) :: cxxmem
+        type(SLIC_SHROUD_capsule_data) :: cxxmem
         ! splicer begin class.GenericOutputStream.component_part
         ! splicer end class.GenericOutputStream.component_part
     contains
-        procedure :: delete => slic_genericoutputstream_delete
-        procedure :: get_instance => slic_genericoutputstream_get_instance
-        procedure :: set_instance => slic_genericoutputstream_set_instance
-        procedure :: associated => slic_genericoutputstream_associated
+        procedure :: delete => slic_generic_output_stream_delete
+        procedure :: get_instance => slic_generic_output_stream_get_instance
+        procedure :: set_instance => slic_generic_output_stream_set_instance
+        procedure :: associated => slic_generic_output_stream_associated
         ! splicer begin class.GenericOutputStream.type_bound_procedure_part
         ! splicer end class.GenericOutputStream.type_bound_procedure_part
     end type SlicGenericOutputStream
 
     interface operator (.eq.)
-        module procedure genericoutputstream_eq
+        module procedure generic_output_stream_eq
     end interface
 
     interface operator (.ne.)
-        module procedure genericoutputstream_ne
+        module procedure generic_output_stream_ne
     end interface
 
     interface
 
-        function c_genericoutputstream_ctor_default(stream, SHT_crv) &
-                result(SHT_rv) &
+        function c_generic_output_stream_ctor_default(stream, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SLIC_GenericOutputStream_ctor_default")
             use iso_c_binding, only : C_CHAR, C_PTR
-            import :: SLIC_SHROUD_genericoutputstream_capsule
+            import :: SLIC_SHROUD_capsule_data
             implicit none
             character(kind=C_CHAR), intent(IN) :: stream(*)
-            type(SLIC_SHROUD_genericoutputstream_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
-        end function c_genericoutputstream_ctor_default
+            type(SLIC_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) SHT_prv
+        end function c_generic_output_stream_ctor_default
 
-        function c_genericoutputstream_ctor_default_bufferify(stream, &
-                Lstream, SHT_crv) &
-                result(SHT_rv) &
+        function c_generic_output_stream_ctor_default_bufferify(stream, &
+                SHT_stream_len, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SLIC_GenericOutputStream_ctor_default_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT, C_PTR
-            import :: SLIC_SHROUD_genericoutputstream_capsule
+            import :: SLIC_SHROUD_capsule_data
             implicit none
             character(kind=C_CHAR), intent(IN) :: stream(*)
-            integer(C_INT), value, intent(IN) :: Lstream
-            type(SLIC_SHROUD_genericoutputstream_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
-        end function c_genericoutputstream_ctor_default_bufferify
-
-        function c_genericoutputstream_ctor_format(stream, format, &
-                SHT_crv) &
-                result(SHT_rv) &
+            integer(C_INT), value, intent(IN) :: SHT_stream_len
+            type(SLIC_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) SHT_prv
+        end function c_generic_output_stream_ctor_default_bufferify
+
+        function c_generic_output_stream_ctor_format(stream, format, &
+                SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SLIC_GenericOutputStream_ctor_format")
             use iso_c_binding, only : C_CHAR, C_PTR
-            import :: SLIC_SHROUD_genericoutputstream_capsule
+            import :: SLIC_SHROUD_capsule_data
             implicit none
             character(kind=C_CHAR), intent(IN) :: stream(*)
             character(kind=C_CHAR), intent(IN) :: format(*)
-            type(SLIC_SHROUD_genericoutputstream_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
-        end function c_genericoutputstream_ctor_format
+            type(SLIC_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) SHT_prv
+        end function c_generic_output_stream_ctor_format
 
-        function c_genericoutputstream_ctor_format_bufferify(stream, &
-                Lstream, format, Lformat, SHT_crv) &
-                result(SHT_rv) &
+        function c_generic_output_stream_ctor_format_bufferify(stream, &
+                SHT_stream_len, format, SHT_format_len, SHT_rv) &
+                result(SHT_prv) &
                 bind(C, name="SLIC_GenericOutputStream_ctor_format_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT, C_PTR
-            import :: SLIC_SHROUD_genericoutputstream_capsule
+            import :: SLIC_SHROUD_capsule_data
             implicit none
             character(kind=C_CHAR), intent(IN) :: stream(*)
-            integer(C_INT), value, intent(IN) :: Lstream
+            integer(C_INT), value, intent(IN) :: SHT_stream_len
             character(kind=C_CHAR), intent(IN) :: format(*)
-            integer(C_INT), value, intent(IN) :: Lformat
-            type(SLIC_SHROUD_genericoutputstream_capsule), intent(OUT) :: SHT_crv
-            type(C_PTR) SHT_rv
-        end function c_genericoutputstream_ctor_format_bufferify
+            integer(C_INT), value, intent(IN) :: SHT_format_len
+            type(SLIC_SHROUD_capsule_data), intent(OUT) :: SHT_rv
+            type(C_PTR) SHT_prv
+        end function c_generic_output_stream_ctor_format_bufferify
 
-        subroutine c_genericoutputstream_delete(self) &
+        subroutine c_generic_output_stream_delete(self) &
                 bind(C, name="SLIC_GenericOutputStream_delete")
-            import :: SLIC_SHROUD_genericoutputstream_capsule
+            import :: SLIC_SHROUD_capsule_data
             implicit none
-            type(SLIC_SHROUD_genericoutputstream_capsule), intent(IN) :: self
-        end subroutine c_genericoutputstream_delete
-
-        ! splicer begin class.GenericOutputStream.additional_interfaces
-        ! splicer end class.GenericOutputStream.additional_interfaces
+            type(SLIC_SHROUD_capsule_data), intent(INOUT) :: self
+        end subroutine c_generic_output_stream_delete
 
         subroutine slic_initialize() &
                 bind(C, name="SLIC_initialize")
@@ -124,132 +122,133 @@ end subroutine slic_initialize
 
         function c_is_initialized() &
                 result(SHT_rv) &
-                bind(C, name="SLIC_is_initialized")
+                bind(C, name="SLIC_isInitialized")
             use iso_c_binding, only : C_BOOL
             implicit none
             logical(C_BOOL) :: SHT_rv
         end function c_is_initialized
 
         subroutine c_create_logger(name, imask) &
-                bind(C, name="SLIC_create_logger")
+                bind(C, name="SLIC_createLogger")
             use iso_c_binding, only : C_CHAR
             implicit none
             character(kind=C_CHAR), intent(IN) :: name(*)
             character(kind=C_CHAR), value, intent(IN) :: imask
         end subroutine c_create_logger
 
-        subroutine c_create_logger_bufferify(name, Lname, imask) &
-                bind(C, name="SLIC_create_logger_bufferify")
+        subroutine c_create_logger_bufferify(name, SHT_name_len, imask) &
+                bind(C, name="SLIC_createLogger_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
             implicit none
             character(kind=C_CHAR), intent(IN) :: name(*)
-            integer(C_INT), value, intent(IN) :: Lname
+            integer(C_INT), value, intent(IN) :: SHT_name_len
             character(kind=C_CHAR), value, intent(IN) :: imask
         end subroutine c_create_logger_bufferify
 
         function c_activate_logger(name) &
                 result(SHT_rv) &
-                bind(C, name="SLIC_activate_logger")
+                bind(C, name="SLIC_activateLogger")
             use iso_c_binding, only : C_BOOL, C_CHAR
             implicit none
             character(kind=C_CHAR), intent(IN) :: name(*)
             logical(C_BOOL) :: SHT_rv
         end function c_activate_logger
 
-        function c_activate_logger_bufferify(name, Lname) &
+        function c_activate_logger_bufferify(name, SHT_name_len) &
                 result(SHT_rv) &
-                bind(C, name="SLIC_activate_logger_bufferify")
+                bind(C, name="SLIC_activateLogger_bufferify")
             use iso_c_binding, only : C_BOOL, C_CHAR, C_INT
             implicit none
             character(kind=C_CHAR), intent(IN) :: name(*)
-            integer(C_INT), value, intent(IN) :: Lname
+            integer(C_INT), value, intent(IN) :: SHT_name_len
             logical(C_BOOL) :: SHT_rv
         end function c_activate_logger_bufferify
 
-        subroutine c_get_active_logger_name_bufferify(name, Nname) &
-                bind(C, name="SLIC_get_active_logger_name_bufferify")
+        subroutine c_get_active_logger_name_bufferify(name, &
+                SHT_name_len) &
+                bind(C, name="SLIC_getActiveLoggerName_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
             implicit none
             character(kind=C_CHAR), intent(OUT) :: name(*)
-            integer(C_INT), value, intent(IN) :: Nname
+            integer(C_INT), value, intent(IN) :: SHT_name_len
         end subroutine c_get_active_logger_name_bufferify
 
         function slic_get_logging_msg_level() &
                 result(SHT_rv) &
-                bind(C, name="SLIC_get_logging_msg_level")
+                bind(C, name="SLIC_getLoggingMsgLevel")
             use iso_c_binding, only : C_INT
             implicit none
             integer(C_INT) :: SHT_rv
         end function slic_get_logging_msg_level
 
         subroutine slic_set_logging_msg_level(level) &
-                bind(C, name="SLIC_set_logging_msg_level")
+                bind(C, name="SLIC_setLoggingMsgLevel")
             use iso_c_binding, only : C_INT
             implicit none
             integer(C_INT), value, intent(IN) :: level
         end subroutine slic_set_logging_msg_level
 
         subroutine c_add_stream_to_msg_level(ls, level) &
-                bind(C, name="SLIC_add_stream_to_msg_level")
+                bind(C, name="SLIC_addStreamToMsgLevel")
             use iso_c_binding, only : C_INT
-            import :: SLIC_SHROUD_genericoutputstream_capsule
+            import :: SLIC_SHROUD_capsule_data
             implicit none
-            type(SLIC_SHROUD_genericoutputstream_capsule), intent(INOUT) :: ls
+            type(SLIC_SHROUD_capsule_data), intent(INOUT) :: ls
             integer(C_INT), value, intent(IN) :: level
         end subroutine c_add_stream_to_msg_level
 
         subroutine c_add_stream_to_all_msg_levels(ls) &
-                bind(C, name="SLIC_add_stream_to_all_msg_levels")
-            import :: SLIC_SHROUD_genericoutputstream_capsule
+                bind(C, name="SLIC_addStreamToAllMsgLevels")
+            import :: SLIC_SHROUD_capsule_data
             implicit none
-            type(SLIC_SHROUD_genericoutputstream_capsule), intent(INOUT) :: ls
+            type(SLIC_SHROUD_capsule_data), intent(INOUT) :: ls
         end subroutine c_add_stream_to_all_msg_levels
 
         subroutine c_set_abort_on_error(status) &
-                bind(C, name="SLIC_set_abort_on_error")
+                bind(C, name="SLIC_setAbortOnError")
             use iso_c_binding, only : C_BOOL
             implicit none
             logical(C_BOOL), value, intent(IN) :: status
         end subroutine c_set_abort_on_error
 
         subroutine slic_enable_abort_on_error() &
-                bind(C, name="SLIC_enable_abort_on_error")
+                bind(C, name="SLIC_enableAbortOnError")
             implicit none
         end subroutine slic_enable_abort_on_error
 
         subroutine slic_disable_abort_on_error() &
-                bind(C, name="SLIC_disable_abort_on_error")
+                bind(C, name="SLIC_disableAbortOnError")
             implicit none
         end subroutine slic_disable_abort_on_error
 
         function c_is_abort_on_errors_enabled() &
                 result(SHT_rv) &
-                bind(C, name="SLIC_is_abort_on_errors_enabled")
+                bind(C, name="SLIC_isAbortOnErrorsEnabled")
             use iso_c_binding, only : C_BOOL
             implicit none
             logical(C_BOOL) :: SHT_rv
         end function c_is_abort_on_errors_enabled
 
         subroutine c_set_abort_on_warning(status) &
-                bind(C, name="SLIC_set_abort_on_warning")
+                bind(C, name="SLIC_setAbortOnWarning")
             use iso_c_binding, only : C_BOOL
             implicit none
             logical(C_BOOL), value, intent(IN) :: status
         end subroutine c_set_abort_on_warning
 
         subroutine slic_enable_abort_on_warning() &
-                bind(C, name="SLIC_enable_abort_on_warning")
+                bind(C, name="SLIC_enableAbortOnWarning")
             implicit none
         end subroutine slic_enable_abort_on_warning
 
         subroutine slic_disable_abort_on_warning() &
-                bind(C, name="SLIC_disable_abort_on_warning")
+                bind(C, name="SLIC_disableAbortOnWarning")
             implicit none
         end subroutine slic_disable_abort_on_warning
 
         function c_is_abort_on_warnings_enabled() &
                 result(SHT_rv) &
-                bind(C, name="SLIC_is_abort_on_warnings_enabled")
+                bind(C, name="SLIC_isAbortOnWarningsEnabled")
             use iso_c_binding, only : C_BOOL
             implicit none
             logical(C_BOOL) :: SHT_rv
@@ -257,7 +256,7 @@ end function c_is_abort_on_warnings_enabled
 
         subroutine c_log_message_file_line(level, message, fileName, &
                 line) &
-                bind(C, name="SLIC_log_message_file_line")
+                bind(C, name="SLIC_logMessage_file_line")
             use iso_c_binding, only : C_CHAR, C_INT
             implicit none
             integer(C_INT), value, intent(IN) :: level
@@ -267,21 +266,21 @@ subroutine c_log_message_file_line(level, message, fileName, &
         end subroutine c_log_message_file_line
 
         subroutine c_log_message_file_line_bufferify(level, message, &
-                Lmessage, fileName, LfileName, line) &
-                bind(C, name="SLIC_log_message_file_line_bufferify")
+                SHT_message_len, fileName, SHT_fileName_len, line) &
+                bind(C, name="SLIC_logMessage_file_line_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
             implicit none
             integer(C_INT), value, intent(IN) :: level
             character(kind=C_CHAR), intent(IN) :: message(*)
-            integer(C_INT), value, intent(IN) :: Lmessage
+            integer(C_INT), value, intent(IN) :: SHT_message_len
             character(kind=C_CHAR), intent(IN) :: fileName(*)
-            integer(C_INT), value, intent(IN) :: LfileName
+            integer(C_INT), value, intent(IN) :: SHT_fileName_len
             integer(C_INT), value, intent(IN) :: line
         end subroutine c_log_message_file_line_bufferify
 
         subroutine c_log_message_file_line_filter(level, message, &
                 fileName, line, filter_duplicates) &
-                bind(C, name="SLIC_log_message_file_line_filter")
+                bind(C, name="SLIC_logMessage_file_line_filter")
             use iso_c_binding, only : C_BOOL, C_CHAR, C_INT
             implicit none
             integer(C_INT), value, intent(IN) :: level
@@ -292,40 +291,41 @@ subroutine c_log_message_file_line_filter(level, message, &
         end subroutine c_log_message_file_line_filter
 
         subroutine c_log_message_file_line_filter_bufferify(level, &
-                message, Lmessage, fileName, LfileName, line, &
-                filter_duplicates) &
-                bind(C, name="SLIC_log_message_file_line_filter_bufferify")
+                message, SHT_message_len, fileName, SHT_fileName_len, &
+                line, filter_duplicates) &
+                bind(C, name="SLIC_logMessage_file_line_filter_bufferify")
             use iso_c_binding, only : C_BOOL, C_CHAR, C_INT
             implicit none
             integer(C_INT), value, intent(IN) :: level
             character(kind=C_CHAR), intent(IN) :: message(*)
-            integer(C_INT), value, intent(IN) :: Lmessage
+            integer(C_INT), value, intent(IN) :: SHT_message_len
             character(kind=C_CHAR), intent(IN) :: fileName(*)
-            integer(C_INT), value, intent(IN) :: LfileName
+            integer(C_INT), value, intent(IN) :: SHT_fileName_len
             integer(C_INT), value, intent(IN) :: line
             logical(C_BOOL), value, intent(IN) :: filter_duplicates
         end subroutine c_log_message_file_line_filter_bufferify
 
         subroutine c_log_message(level, message) &
-                bind(C, name="SLIC_log_message")
+                bind(C, name="SLIC_logMessage")
             use iso_c_binding, only : C_CHAR, C_INT
             implicit none
             integer(C_INT), value, intent(IN) :: level
             character(kind=C_CHAR), intent(IN) :: message(*)
         end subroutine c_log_message
 
-        subroutine c_log_message_bufferify(level, message, Lmessage) &
-                bind(C, name="SLIC_log_message_bufferify")
+        subroutine c_log_message_bufferify(level, message, &
+                SHT_message_len) &
+                bind(C, name="SLIC_logMessage_bufferify")
             use iso_c_binding, only : C_CHAR, C_INT
             implicit none
             integer(C_INT), value, intent(IN) :: level
             character(kind=C_CHAR), intent(IN) :: message(*)
-            integer(C_INT), value, intent(IN) :: Lmessage
+            integer(C_INT), value, intent(IN) :: SHT_message_len
         end subroutine c_log_message_bufferify
 
         subroutine c_log_message_filter(level, message, &
                 filter_duplicates) &
-                bind(C, name="SLIC_log_message_filter")
+                bind(C, name="SLIC_logMessage_filter")
             use iso_c_binding, only : C_BOOL, C_CHAR, C_INT
             implicit none
             integer(C_INT), value, intent(IN) :: level
@@ -334,18 +334,18 @@ subroutine c_log_message_filter(level, message, &
         end subroutine c_log_message_filter
 
         subroutine c_log_message_filter_bufferify(level, message, &
-                Lmessage, filter_duplicates) &
-                bind(C, name="SLIC_log_message_filter_bufferify")
+                SHT_message_len, filter_duplicates) &
+                bind(C, name="SLIC_logMessage_filter_bufferify")
             use iso_c_binding, only : C_BOOL, C_CHAR, C_INT
             implicit none
             integer(C_INT), value, intent(IN) :: level
             character(kind=C_CHAR), intent(IN) :: message(*)
-            integer(C_INT), value, intent(IN) :: Lmessage
+            integer(C_INT), value, intent(IN) :: SHT_message_len
             logical(C_BOOL), value, intent(IN) :: filter_duplicates
         end subroutine c_log_message_filter_bufferify
 
         subroutine slic_flush_streams() &
-                bind(C, name="SLIC_flush_streams")
+                bind(C, name="SLIC_flushStreams")
             implicit none
         end subroutine slic_flush_streams
 
@@ -353,14 +353,11 @@ subroutine slic_finalize() &
                 bind(C, name="SLIC_finalize")
             implicit none
         end subroutine slic_finalize
-
-        ! splicer begin additional_interfaces
-        ! splicer end additional_interfaces
     end interface
 
     interface SlicGenericOutputStream
-        module procedure slic_genericoutputstream_ctor_default
-        module procedure slic_genericoutputstream_ctor_format
+        module procedure slic_generic_output_stream_ctor_default
+        module procedure slic_generic_output_stream_ctor_format
     end interface SlicGenericOutputStream
 
     interface log_message
@@ -370,63 +367,71 @@ end subroutine slic_finalize
         module procedure slic_log_message_filter
     end interface log_message
 
+    ! splicer begin additional_declarations
+    ! splicer end additional_declarations
+
 contains
 
-    function slic_genericoutputstream_ctor_default(stream) &
+    function slic_generic_output_stream_ctor_default(stream) &
             result(SHT_rv)
         use iso_c_binding, only : C_INT, C_PTR
         character(len=*), intent(IN) :: stream
         type(SlicGenericOutputStream) :: SHT_rv
-        ! splicer begin class.GenericOutputStream.method.ctor_default
         type(C_PTR) :: SHT_prv
-        SHT_prv = c_genericoutputstream_ctor_default_bufferify(stream, &
-            len_trim(stream, kind=C_INT), SHT_rv%cxxmem)
+        ! splicer begin class.GenericOutputStream.method.ctor_default
+        integer(C_INT) SHT_stream_len
+        SHT_stream_len = len(stream, kind=C_INT)
+        SHT_prv = c_generic_output_stream_ctor_default_bufferify(stream, &
+            SHT_stream_len, SHT_rv%cxxmem)
         ! splicer end class.GenericOutputStream.method.ctor_default
-    end function slic_genericoutputstream_ctor_default
+    end function slic_generic_output_stream_ctor_default
 
-    function slic_genericoutputstream_ctor_format(stream, format) &
+    function slic_generic_output_stream_ctor_format(stream, format) &
             result(SHT_rv)
         use iso_c_binding, only : C_INT, C_PTR
         character(len=*), intent(IN) :: stream
         character(len=*), intent(IN) :: format
         type(SlicGenericOutputStream) :: SHT_rv
-        ! splicer begin class.GenericOutputStream.method.ctor_format
         type(C_PTR) :: SHT_prv
-        SHT_prv = c_genericoutputstream_ctor_format_bufferify(stream, &
-            len_trim(stream, kind=C_INT), format, &
-            len_trim(format, kind=C_INT), SHT_rv%cxxmem)
+        ! splicer begin class.GenericOutputStream.method.ctor_format
+        integer(C_INT) SHT_stream_len
+        integer(C_INT) SHT_format_len
+        SHT_stream_len = len(stream, kind=C_INT)
+        SHT_format_len = len(format, kind=C_INT)
+        SHT_prv = c_generic_output_stream_ctor_format_bufferify(stream, &
+            SHT_stream_len, format, SHT_format_len, SHT_rv%cxxmem)
         ! splicer end class.GenericOutputStream.method.ctor_format
-    end function slic_genericoutputstream_ctor_format
+    end function slic_generic_output_stream_ctor_format
 
-    subroutine slic_genericoutputstream_delete(obj)
+    subroutine slic_generic_output_stream_delete(obj)
         class(SlicGenericOutputStream) :: obj
         ! splicer begin class.GenericOutputStream.method.delete
-        call c_genericoutputstream_delete(obj%cxxmem)
+        call c_generic_output_stream_delete(obj%cxxmem)
         ! splicer end class.GenericOutputStream.method.delete
-    end subroutine slic_genericoutputstream_delete
+    end subroutine slic_generic_output_stream_delete
 
     ! Return pointer to C++ memory.
-    function slic_genericoutputstream_get_instance(obj) result (cxxptr)
+    function slic_generic_output_stream_get_instance(obj) result (cxxptr)
         use iso_c_binding, only: C_PTR
         class(SlicGenericOutputStream), intent(IN) :: obj
         type(C_PTR) :: cxxptr
         cxxptr = obj%cxxmem%addr
-    end function slic_genericoutputstream_get_instance
+    end function slic_generic_output_stream_get_instance
 
-    subroutine slic_genericoutputstream_set_instance(obj, cxxmem)
+    subroutine slic_generic_output_stream_set_instance(obj, cxxmem)
         use iso_c_binding, only: C_PTR
         class(SlicGenericOutputStream), intent(INOUT) :: obj
         type(C_PTR), intent(IN) :: cxxmem
         obj%cxxmem%addr = cxxmem
         obj%cxxmem%idtor = 0
-    end subroutine slic_genericoutputstream_set_instance
+    end subroutine slic_generic_output_stream_set_instance
 
-    function slic_genericoutputstream_associated(obj) result (rv)
+    function slic_generic_output_stream_associated(obj) result (rv)
         use iso_c_binding, only: c_associated
         class(SlicGenericOutputStream), intent(IN) :: obj
         logical rv
         rv = c_associated(obj%cxxmem%addr)
-    end function slic_genericoutputstream_associated
+    end function slic_generic_output_stream_associated
 
     ! splicer begin class.GenericOutputStream.additional_functions
     ! splicer end class.GenericOutputStream.additional_functions
@@ -445,8 +450,9 @@ subroutine slic_create_logger(name, imask)
         character(len=*), intent(IN) :: name
         character, value, intent(IN) :: imask
         ! splicer begin function.create_logger
-        call c_create_logger_bufferify(name, len_trim(name, kind=C_INT), &
-            imask)
+        integer(C_INT) SHT_name_len
+        SHT_name_len = len(name, kind=C_INT)
+        call c_create_logger_bufferify(name, SHT_name_len, imask)
         ! splicer end function.create_logger
     end subroutine slic_create_logger
 
@@ -456,8 +462,9 @@ function slic_activate_logger(name) &
         character(len=*), intent(IN) :: name
         logical :: SHT_rv
         ! splicer begin function.activate_logger
-        SHT_rv = c_activate_logger_bufferify(name, &
-            len_trim(name, kind=C_INT))
+        integer(C_INT) SHT_name_len
+        SHT_name_len = len(name, kind=C_INT)
+        SHT_rv = c_activate_logger_bufferify(name, SHT_name_len)
         ! splicer end function.activate_logger
     end function slic_activate_logger
 
@@ -465,8 +472,9 @@ subroutine slic_get_active_logger_name(name)
         use iso_c_binding, only : C_INT
         character(len=*), intent(OUT) :: name
         ! splicer begin function.get_active_logger_name
-        call c_get_active_logger_name_bufferify(name, &
-            len(name, kind=C_INT))
+        integer(C_INT) SHT_name_len
+        SHT_name_len = len(name, kind=C_INT)
+        call c_get_active_logger_name_bufferify(name, SHT_name_len)
         ! splicer end function.get_active_logger_name
     end subroutine slic_get_active_logger_name
 
@@ -532,9 +540,12 @@ subroutine slic_log_message_file_line(level, message, fileName, &
         character(len=*), intent(IN) :: fileName
         integer(C_INT), value, intent(IN) :: line
         ! splicer begin function.log_message_file_line
+        integer(C_INT) SHT_message_len
+        integer(C_INT) SHT_fileName_len
+        SHT_message_len = len(message, kind=C_INT)
+        SHT_fileName_len = len(fileName, kind=C_INT)
         call c_log_message_file_line_bufferify(level, message, &
-            len_trim(message, kind=C_INT), fileName, &
-            len_trim(fileName, kind=C_INT), line)
+            SHT_message_len, fileName, SHT_fileName_len, line)
         ! splicer end function.log_message_file_line
     end subroutine slic_log_message_file_line
 
@@ -547,11 +558,15 @@ subroutine slic_log_message_file_line_filter(level, message, &
         integer(C_INT), value, intent(IN) :: line
         logical, value, intent(IN) :: filter_duplicates
         ! splicer begin function.log_message_file_line_filter
+        integer(C_INT) SHT_message_len
+        integer(C_INT) SHT_fileName_len
         logical(C_BOOL) SH_filter_duplicates
+        SHT_message_len = len(message, kind=C_INT)
+        SHT_fileName_len = len(fileName, kind=C_INT)
         SH_filter_duplicates = filter_duplicates  ! coerce to C_BOOL
         call c_log_message_file_line_filter_bufferify(level, message, &
-            len_trim(message, kind=C_INT), fileName, &
-            len_trim(fileName, kind=C_INT), line, SH_filter_duplicates)
+            SHT_message_len, fileName, SHT_fileName_len, line, &
+            SH_filter_duplicates)
         ! splicer end function.log_message_file_line_filter
     end subroutine slic_log_message_file_line_filter
 
@@ -560,8 +575,9 @@ subroutine slic_log_message(level, message)
         integer(C_INT), value, intent(IN) :: level
         character(len=*), intent(IN) :: message
         ! splicer begin function.log_message
-        call c_log_message_bufferify(level, message, &
-            len_trim(message, kind=C_INT))
+        integer(C_INT) SHT_message_len
+        SHT_message_len = len(message, kind=C_INT)
+        call c_log_message_bufferify(level, message, SHT_message_len)
         ! splicer end function.log_message
     end subroutine slic_log_message
 
@@ -572,17 +588,19 @@ subroutine slic_log_message_filter(level, message, &
         character(len=*), intent(IN) :: message
         logical, value, intent(IN) :: filter_duplicates
         ! splicer begin function.log_message_filter
+        integer(C_INT) SHT_message_len
         logical(C_BOOL) SH_filter_duplicates
+        SHT_message_len = len(message, kind=C_INT)
         SH_filter_duplicates = filter_duplicates  ! coerce to C_BOOL
         call c_log_message_filter_bufferify(level, message, &
-            len_trim(message, kind=C_INT), SH_filter_duplicates)
+            SHT_message_len, SH_filter_duplicates)
         ! splicer end function.log_message_filter
     end subroutine slic_log_message_filter
 
     ! splicer begin additional_functions
     ! splicer end additional_functions
 
-    function genericoutputstream_eq(a,b) result (rv)
+    function generic_output_stream_eq(a,b) result (rv)
         use iso_c_binding, only: c_associated
         type(SlicGenericOutputStream), intent(IN) ::a,b
         logical :: rv
@@ -591,9 +609,9 @@ function genericoutputstream_eq(a,b) result (rv)
         else
             rv = .false.
         endif
-    end function genericoutputstream_eq
+    end function generic_output_stream_eq
 
-    function genericoutputstream_ne(a,b) result (rv)
+    function generic_output_stream_ne(a,b) result (rv)
         use iso_c_binding, only: c_associated
         type(SlicGenericOutputStream), intent(IN) ::a,b
         logical :: rv
@@ -602,6 +620,6 @@ function genericoutputstream_ne(a,b) result (rv)
         else
             rv = .false.
         endif
-    end function genericoutputstream_ne
+    end function generic_output_stream_ne
 
 end module axom_slic
diff --git a/src/axom/slic/interface/slic_types.yaml b/src/axom/slic/interface/slic_types.yaml
index 22fda023c3..0466e68bd0 100644
--- a/src/axom/slic/interface/slic_types.yaml
+++ b/src/axom/slic/interface/slic_types.yaml
@@ -1,5 +1,5 @@
 # slic_types.yaml
-# This file is generated by Shroud 0.12.2. Do not edit.
+# This file is generated by Shroud 0.13.0. Do not edit.
 #
 # Copyright (c) 2017-2024, Lawrence Livermore National Security, LLC and
 # other Axom Project Developers. See the top-level LICENSE file for details.
@@ -19,5 +19,5 @@ typemap:
           c_type: SLIC_GenericOutputStream
           f_module_name: axom_slic
           f_derived_type: SlicGenericOutputStream
-          f_capsule_data_type: SLIC_SHROUD_genericoutputstream_capsule
+          f_capsule_data_type: SLIC_SHROUD_capsule_data
           f_to_c: "{f_var}%cxxmem"

From 91d57f4d57022ef52a7ba9127efdfd4e5342b6e7 Mon Sep 17 00:00:00 2001
From: Lee Taylor <taylor16@llnl.gov>
Date: Wed, 14 Feb 2024 13:27:10 -0800
Subject: [PATCH 3/3] Update no-tpl intel to 19.1.2

---
 ....cmake => no-tpl-toss_4_x86_64_ib-intel@19.1.2.cmake} | 4 ++--
 src/axom/quest/interface/python/README.md                | 9 +++++++--
 2 files changed, 9 insertions(+), 4 deletions(-)
 rename host-configs/other/{no-tpl-toss_4_x86_64_ib-intel@19.0.4.cmake => no-tpl-toss_4_x86_64_ib-intel@19.1.2.cmake} (97%)

diff --git a/host-configs/other/no-tpl-toss_4_x86_64_ib-intel@19.0.4.cmake b/host-configs/other/no-tpl-toss_4_x86_64_ib-intel@19.1.2.cmake
similarity index 97%
rename from host-configs/other/no-tpl-toss_4_x86_64_ib-intel@19.0.4.cmake
rename to host-configs/other/no-tpl-toss_4_x86_64_ib-intel@19.1.2.cmake
index d064d9109a..86268df1c2 100644
--- a/host-configs/other/no-tpl-toss_4_x86_64_ib-intel@19.0.4.cmake
+++ b/host-configs/other/no-tpl-toss_4_x86_64_ib-intel@19.1.2.cmake
@@ -28,7 +28,7 @@
 
 set(ENABLE_FORTRAN ON CACHE BOOL "")
 
-set(COMPILER_HOME "/usr/tce/packages/intel-classic-tce/intel-classic-19.0.4" )
+set(COMPILER_HOME "/usr/tce/packages/intel-classic-tce/intel-classic-19.1.2" )
 set(CMAKE_C_COMPILER "${COMPILER_HOME}/bin/icc" CACHE PATH "")
 set(CMAKE_CXX_COMPILER "${COMPILER_HOME}/bin/icpc" CACHE PATH "")
 set(CMAKE_Fortran_COMPILER "${COMPILER_HOME}/bin/ifort" CACHE PATH "")
@@ -44,7 +44,7 @@ set(AXOM_ENABLE_KLEE OFF CACHE BOOL "")
 #------------------------------------------------------------------------------
 set(ENABLE_MPI ON CACHE BOOL "")
 
-set(MPI_HOME             "/usr/tce/packages/mvapich2/mvapich2-2.3-intel-19.0.4" CACHE PATH "")
+set(MPI_HOME             "/usr/tce/packages/mvapich2/mvapich2-2.3.7-intel-classic-19.1.2" CACHE PATH "")
 set(MPI_C_COMPILER       "${MPI_HOME}/bin/mpicc"   CACHE PATH "")
 set(MPI_CXX_COMPILER     "${MPI_HOME}/bin/mpicxx"  CACHE PATH "")
 set(MPI_Fortran_COMPILER "${MPI_HOME}/bin/mpif90" CACHE PATH "")
diff --git a/src/axom/quest/interface/python/README.md b/src/axom/quest/interface/python/README.md
index c57552a32a..11dec93ef3 100644
--- a/src/axom/quest/interface/python/README.md
+++ b/src/axom/quest/interface/python/README.md
@@ -25,10 +25,15 @@ Both `mpi4py` and Axom should be build with the same version of MPI.
 These flags may be different than the ones used to compile Axom.
 
 Some functions in `quest_shroud.yaml` are not wrapped pending fixes to shroud.
-(version 0.10.1 is currently used)
+(version 0.13.0 is currently used)
 
 A sample host-config file is provided in
-`host-configs/other/no-tpl-toss_4_x86_64_ib-intel@19.0.4.cmake`. This host-config requires
+`host-configs/other/no-tpl-toss_3_x86_64_ib-intel@19.0.4.cmake`. This host-config requires
 no third-party libraries but does not enable Sidre.  The Python interface requires you build
 Axom with shared libraries which can be enabled via the CMake command line with
 `-DBUILD_SHARED_LIBS=ON` and defining MPI_HOME, which is already enabled in the sample host-config.
+
+To build only quest, and its dependencies:
+
+    ./config-build.py -hc host-configs/other/no-tpl-toss_3_x86_64_ib-intel@19.0.4.cmake -DBUILD_SHARED_LIBS=ON -DAXOM_ENABLE_ALL_COMPONENTS=BOOL:OFF -DAXOM_ENABLE_QUEST=BOOL:ON  -DAXOM_ENABLE_MINT=BOOL:ON  -DAXOM_ENABLE_SLIC=BOOL:ON -DAXOM_ENABLE_SLAM=BOOL:ON  -DAXOM_ENABLE_PRIMAL=BOOL:ON  -DAXOM_ENABLE_SPIN=BOOL:ON
+