diff --git a/internal/test_unit/xml/unit_plot_data_plane.xml b/internal/test_unit/xml/unit_plot_data_plane.xml
index 999773a57d..e84a5bcb66 100644
--- a/internal/test_unit/xml/unit_plot_data_plane.xml
+++ b/internal/test_unit/xml/unit_plot_data_plane.xml
@@ -657,7 +657,7 @@
\
&DATA_DIR_MODEL;/wrf/wrfout_solarwind_d02_2019-08-31_12:00:00 \
&OUTPUT_DIR;/plot_data_plane/wrf_num_z_levels_stag.ps \
- 'name="RH_ZL"; level="(0,0,*,*)";' \
+ 'name="RH_ZL"; level="(0,@-78,*,*)";' \
-title "Relative Humidity Z-level (num_z_levels_stag)" \
-v 1
diff --git a/src/libcode/vx_data2d/Makefile.am b/src/libcode/vx_data2d/Makefile.am
index 9c43d52286..8204de2c7b 100644
--- a/src/libcode/vx_data2d/Makefile.am
+++ b/src/libcode/vx_data2d/Makefile.am
@@ -15,6 +15,7 @@ libvx_data2d_a_SOURCES = \
leveltype_to_string.cc leveltype_to_string.h \
level_info.cc level_info.h \
var_info.cc var_info.h \
+ var_info_nc.cc var_info_nc.h \
var_info_pairs.cc var_info_pairs.h \
data_class.cc data_class.h \
data2d_utils.cc data2d_utils.h \
diff --git a/src/libcode/vx_data2d/Makefile.in b/src/libcode/vx_data2d/Makefile.in
index 52e5a7b78e..8a1a1eb83c 100644
--- a/src/libcode/vx_data2d/Makefile.in
+++ b/src/libcode/vx_data2d/Makefile.in
@@ -111,6 +111,7 @@ am_libvx_data2d_a_OBJECTS = \
libvx_data2d_a-leveltype_to_string.$(OBJEXT) \
libvx_data2d_a-level_info.$(OBJEXT) \
libvx_data2d_a-var_info.$(OBJEXT) \
+ libvx_data2d_a-var_info_nc.$(OBJEXT) \
libvx_data2d_a-var_info_pairs.$(OBJEXT) \
libvx_data2d_a-data_class.$(OBJEXT) \
libvx_data2d_a-data2d_utils.$(OBJEXT) \
@@ -139,6 +140,7 @@ am__depfiles_remade = ./$(DEPDIR)/libvx_data2d_a-data2d_utils.Po \
./$(DEPDIR)/libvx_data2d_a-mask_filters.Po \
./$(DEPDIR)/libvx_data2d_a-table_lookup.Po \
./$(DEPDIR)/libvx_data2d_a-var_info.Po \
+ ./$(DEPDIR)/libvx_data2d_a-var_info_nc.Po \
./$(DEPDIR)/libvx_data2d_a-var_info_pairs.Po
am__mv = mv -f
AM_V_lt = $(am__v_lt_@AM_V@)
@@ -357,6 +359,7 @@ libvx_data2d_a_SOURCES = \
leveltype_to_string.cc leveltype_to_string.h \
level_info.cc level_info.h \
var_info.cc var_info.h \
+ var_info_nc.cc var_info_nc.h \
var_info_pairs.cc var_info_pairs.h \
data_class.cc data_class.h \
data2d_utils.cc data2d_utils.h \
@@ -420,6 +423,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_data2d_a-mask_filters.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_data2d_a-table_lookup.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_data2d_a-var_info.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_data2d_a-var_info_nc.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_data2d_a-var_info_pairs.Po@am__quote@ # am--include-marker
$(am__depfiles_remade):
@@ -484,6 +488,20 @@ libvx_data2d_a-var_info.obj: var_info.cc
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_a-var_info.obj `if test -f 'var_info.cc'; then $(CYGPATH_W) 'var_info.cc'; else $(CYGPATH_W) '$(srcdir)/var_info.cc'; fi`
+libvx_data2d_a-var_info_nc.o: var_info_nc.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_a-var_info_nc.o -MD -MP -MF $(DEPDIR)/libvx_data2d_a-var_info_nc.Tpo -c -o libvx_data2d_a-var_info_nc.o `test -f 'var_info_nc.cc' || echo '$(srcdir)/'`var_info_nc.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_a-var_info_nc.Tpo $(DEPDIR)/libvx_data2d_a-var_info_nc.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='var_info_nc.cc' object='libvx_data2d_a-var_info_nc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_a-var_info_nc.o `test -f 'var_info_nc.cc' || echo '$(srcdir)/'`var_info_nc.cc
+
+libvx_data2d_a-var_info_nc.obj: var_info_nc.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_a-var_info_nc.obj -MD -MP -MF $(DEPDIR)/libvx_data2d_a-var_info_nc.Tpo -c -o libvx_data2d_a-var_info_nc.obj `if test -f 'var_info_nc.cc'; then $(CYGPATH_W) 'var_info_nc.cc'; else $(CYGPATH_W) '$(srcdir)/var_info_nc.cc'; fi`
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_a-var_info_nc.Tpo $(DEPDIR)/libvx_data2d_a-var_info_nc.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='var_info_nc.cc' object='libvx_data2d_a-var_info_nc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_a-var_info_nc.obj `if test -f 'var_info_nc.cc'; then $(CYGPATH_W) 'var_info_nc.cc'; else $(CYGPATH_W) '$(srcdir)/var_info_nc.cc'; fi`
+
libvx_data2d_a-var_info_pairs.o: var_info_pairs.cc
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_a-var_info_pairs.o -MD -MP -MF $(DEPDIR)/libvx_data2d_a-var_info_pairs.Tpo -c -o libvx_data2d_a-var_info_pairs.o `test -f 'var_info_pairs.cc' || echo '$(srcdir)/'`var_info_pairs.cc
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_a-var_info_pairs.Tpo $(DEPDIR)/libvx_data2d_a-var_info_pairs.Po
@@ -687,6 +705,7 @@ distclean: distclean-am
-rm -f ./$(DEPDIR)/libvx_data2d_a-mask_filters.Po
-rm -f ./$(DEPDIR)/libvx_data2d_a-table_lookup.Po
-rm -f ./$(DEPDIR)/libvx_data2d_a-var_info.Po
+ -rm -f ./$(DEPDIR)/libvx_data2d_a-var_info_nc.Po
-rm -f ./$(DEPDIR)/libvx_data2d_a-var_info_pairs.Po
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
@@ -740,6 +759,7 @@ maintainer-clean: maintainer-clean-am
-rm -f ./$(DEPDIR)/libvx_data2d_a-mask_filters.Po
-rm -f ./$(DEPDIR)/libvx_data2d_a-table_lookup.Po
-rm -f ./$(DEPDIR)/libvx_data2d_a-var_info.Po
+ -rm -f ./$(DEPDIR)/libvx_data2d_a-var_info_nc.Po
-rm -f ./$(DEPDIR)/libvx_data2d_a-var_info_pairs.Po
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
diff --git a/src/libcode/vx_data2d/var_info_nc.cc b/src/libcode/vx_data2d/var_info_nc.cc
new file mode 100644
index 0000000000..ac072e2eed
--- /dev/null
+++ b/src/libcode/vx_data2d/var_info_nc.cc
@@ -0,0 +1,389 @@
+// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
+// ** Copyright UCAR (c) 1992 - 2026
+// ** University Corporation for Atmospheric Research (UCAR)
+// ** National Center for Atmospheric Research (NCAR)
+// ** Research Applications Lab (RAL)
+// ** P.O.Box 3000, Boulder, Colorado, 80307-3000, USA
+// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// Filename: var_info_nc.cc
+//
+// Description:
+//
+// Mod# Date Name Description
+// ---- ---- ---- -----------
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include