Index: /issm/trunk/src/m/contrib/musselman/read_netCDF_commit.py
===================================================================
--- /issm/trunk/src/m/contrib/musselman/read_netCDF_commit.py	(revision 27858)
+++ /issm/trunk/src/m/contrib/musselman/read_netCDF_commit.py	(revision 27859)
@@ -7,4 +7,6 @@
 import re
 from results import *
+from m1qn3inversion import m1qn3inversion
+from taoinversion import taoinversion
 
 
@@ -42,4 +44,11 @@
     except:
         pass
+
+    # similarly, we need to check and see if we have an m1qn3inversion class instance
+    try:
+        NCData.groups['inversion']
+        check_inversion_class()
+    except:
+        pass
     
     # walk through each group looking for subgroups and variables
@@ -56,7 +65,20 @@
         class_instance = subclass + '()'
         class_instance_name = NCData.groups['results'].variables[subclass][:][...].tobytes().decode()
-        print(class_instance)
-        print(class_instance_name)
         setattr(model_copy.results, class_instance_name, eval(class_instance))
+
+
+def check_inversion_class():
+    # get the name of the inversion class: either inversion or m1qn3inversion or taoinversion
+    inversion_class_is = NCData.groups['inversion'].variables['inversion_class_name'][:][...].tobytes().decode()
+    if inversion_class_is == 'm1qn3inversion':
+        # if it is m1qn3inversion we need to instantiate that class since it's not native to model()
+        model_copy.inversion = m1qn3inversion(model_copy.inversion)
+        print('Conversion successful')
+    elif inversion_class_is == 'taoinversion':
+        # if it is taoinversion we need to instantiate that class since it's not native to model()
+        model_copy.inversion = taoinverion()
+        print('Conversion successful')
+    else: pass
+
 
 
Index: /issm/trunk/src/m/contrib/musselman/write_netCDF_commit.py
===================================================================
--- /issm/trunk/src/m/contrib/musselman/write_netCDF_commit.py	(revision 27858)
+++ /issm/trunk/src/m/contrib/musselman/write_netCDF_commit.py	(revision 27859)
@@ -8,4 +8,6 @@
 from model import *
 from results import *
+from m1qn3inversion import m1qn3inversion
+from taoinversion import taoinversion
 
 
@@ -114,5 +116,6 @@
         # Recursively walk through subclasses
         walk_through_subclasses(model_var, adress, model_name)       
-        
+
+
 
 def walk_through_subclasses(model_var, adress: str, model_name: str):
@@ -157,4 +160,9 @@
     group = NetCDF.createGroup(str(group_name))
 
+    # need to check if inversion or m1qn3inversion class
+    if group_name == 'inversion':
+        check_inversion_class(model_var)
+    else: pass
+
     # if the data is nested, create nested groups to match class structure
     if len(levels_of_class) > 3:
@@ -166,4 +174,19 @@
     variable_name = levels_of_class[-1]
     create_var(variable_name, adress_of_child, group)
+
+
+def check_inversion_class(model_var):
+    # need to make sure that we have the right inversion class: inversion, m1qn3inversion, taoinversion
+    if isinstance(model_var.__dict__['inversion'], m1qn3inversion):
+        write_string_to_netcdf(variable_name=str('inversion_class_name'), adress_of_child=str('m1qn3inversion'), group=NetCDF.groups['inversion'])
+        print('Successfully saved inversion class instance ' + 'm1qn3inversion')
+    elif isinstance(model_var.__dict__['inversion'], taoinversion):
+        write_string_to_netcdf(variable_name=str('inversion_class_name'), adress_of_child=str('taoinversion'), group=NetCDF.groups['inversion'])
+        print('Successfully saved inversion class instance ' + 'taoinversion')
+    else:
+        write_string_to_netcdf(variable_name=str('inversion_class_name'), adress_of_child=str('inversion'), group=NetCDF.groups['inversion'])
+        print('Successfully saved inversion class instance ' + 'inversion')
+
+        
 
 
