diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_amns_data.m b/matlab/TCV_IMAS/ids_empty/ids_empty_amns_data.m
index c7b2fa355a63f9260334172addc05f6d48a35164..be16780d93bd199b3e949d1fb5fec5b1fa6039ab 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_amns_data.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_amns_data.m
@@ -1,9 +1,11 @@
 function S = ids_empty_amns_data
 % function S = ids_empty_amns_data
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'a',double(-9e+40),...
 'a_error_index',int32(-999999999),...
@@ -11,13 +13,15 @@ struct(...
 'a_error_upper',double(-9e+40),...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -36,12 +40,57 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}})
-;}},...
+}})
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
@@ -87,7 +136,7 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'citation','',...
 'coordinate_index',int32(-999999999),...
 'label','',...
@@ -110,7 +159,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'mass',double(-9e+40),...
 'mass_error_index',int32(-999999999),...
@@ -127,7 +176,7 @@ struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''))
-;}},...
+}},...
 'provider','',...
 'reactants',{{struct(...
 'charge',double(-9e+40),...
@@ -148,7 +197,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'mass',double(-9e+40),...
 'mass_error_index',int32(-999999999),...
@@ -165,22 +214,22 @@ struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''))
-;}},...
+}},...
 'result_label','',...
 'result_transformation',int32(-999999999),...
 'result_units','',...
 'source','',...
 'table_dimension',int32(-999999999))
-;}},...
+}},...
 'release',{{struct(...
 'data_entry',{{struct(...
 'description','',...
 'run',int32(-999999999),...
 'shot',int32(-999999999))
-;}},...
+}},...
 'date','',...
 'description','')
-;}},...
+}},...
 'time',double([]),...
 'z_n',double(-9e+40),...
 'z_n_error_index',int32(-999999999),...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_b_field_non_axisymmetric.m b/matlab/TCV_IMAS/ids_empty/ids_empty_b_field_non_axisymmetric.m
new file mode 100644
index 0000000000000000000000000000000000000000..a9c2f227113d7a345e53019577ddf259fb8cb45c
--- /dev/null
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_b_field_non_axisymmetric.m
@@ -0,0 +1,161 @@
+function S = ids_empty_b_field_non_axisymmetric
+% function S = ids_empty_b_field_non_axisymmetric
+%
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
+
+S = ...
+struct(...
+'code',struct(...
+'commit','',...
+'description','',...
+'library',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'name','',...
+'output_flag',int32([]),...
+'parameters','',...
+'repository','',...
+'version',''),...
+'configuration','',...
+'control_surface_names',{{}},...
+'ids_properties',struct(...
+'comment','',...
+'creation_date','',...
+'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
+'provider','',...
+'source','',...
+'version_put',struct(...
+'access_layer','',...
+'access_layer_language','',...
+'data_dictionary','')),...
+'time',double([]),...
+'time_slice',{{struct(...
+'control_surface',{{struct(...
+'b_field_normal',double([]),...
+'b_field_normal_error_index',int32(-999999999),...
+'b_field_normal_error_lower',double([]),...
+'b_field_normal_error_upper',double([]),...
+'b_field_normal_fourier',double([]),...
+'b_field_normal_fourier_error_index',int32(-999999999),...
+'b_field_normal_fourier_error_lower',double([]),...
+'b_field_normal_fourier_error_upper',double([]),...
+'b_field_r',double([]),...
+'b_field_r_error_index',int32(-999999999),...
+'b_field_r_error_lower',double([]),...
+'b_field_r_error_upper',double([]),...
+'b_field_tor',double([]),...
+'b_field_tor_error_index',int32(-999999999),...
+'b_field_tor_error_lower',double([]),...
+'b_field_tor_error_upper',double([]),...
+'b_field_z',double([]),...
+'b_field_z_error_index',int32(-999999999),...
+'b_field_z_error_lower',double([]),...
+'b_field_z_error_upper',double([]),...
+'n_tor',int32([]),...
+'normal_vector',struct(...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([])),...
+'outline',struct(...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([])),...
+'phi',double([]),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double([]),...
+'phi_error_upper',double([]))
+}},...
+'field_map',struct(...
+'b_field_r',double([]),...
+'b_field_r_error_index',int32(-999999999),...
+'b_field_r_error_lower',double([]),...
+'b_field_r_error_upper',double([]),...
+'b_field_tor',double([]),...
+'b_field_tor_error_index',int32(-999999999),...
+'b_field_tor_error_lower',double([]),...
+'b_field_tor_error_upper',double([]),...
+'b_field_z',double([]),...
+'b_field_z_error_index',int32(-999999999),...
+'b_field_z_error_lower',double([]),...
+'b_field_z_error_upper',double([]),...
+'grid',struct(...
+'phi',double([]),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double([]),...
+'phi_error_upper',double([]),...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([])),...
+'ripple_amplitude',double([]),...
+'ripple_amplitude_error_index',int32(-999999999),...
+'ripple_amplitude_error_lower',double([]),...
+'ripple_amplitude_error_upper',double([])),...
+'time',double(-9e+40))
+}});
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_barometry.m b/matlab/TCV_IMAS/ids_empty/ids_empty_barometry.m
index b893cfeca7e17f327f41ac72e5128d1ccedaa5b1..fc0aab27ae58b7f3848aa0f2376c79519f2aca7f 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_barometry.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_barometry.m
@@ -1,19 +1,23 @@
 function S = ids_empty_barometry
 % function S = ids_empty_barometry
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -48,15 +52,64 @@ struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''))
-;}},...
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_bolometer.m b/matlab/TCV_IMAS/ids_empty/ids_empty_bolometer.m
index 6ac800749d5af7f9d1e4becd75791c9a648c5272..8ab58cd9ace4a883a1b7b323d56efc296791b969 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_bolometer.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_bolometer.m
@@ -1,9 +1,11 @@
 function S = ids_empty_bolometer
 % function S = ids_empty_bolometer
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'channel',{{struct(...
 'aperture',{{struct(...
@@ -85,7 +87,7 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40)))
-;}},...
+}},...
 'detector',struct(...
 'centre',struct(...
 'phi',double(-9e+40),...
@@ -225,16 +227,18 @@ struct(...
 'validity_timed',struct(...
 'data',int32([]),...
 'time',double([])))
-;}},...
+}},...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -244,12 +248,61 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'power_radiated_inside_lcfs',double([]),...
 'power_radiated_inside_lcfs_error_index',int32(-999999999),...
 'power_radiated_inside_lcfs_error_lower',double([]),...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_bremsstrahlung_visible.m b/matlab/TCV_IMAS/ids_empty/ids_empty_bremsstrahlung_visible.m
index 96da2125bf6f1f2d81c0441cc607503e405d931e..31dedb503fcd339245dac7df8cb5db8a3f7e8f7d 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_bremsstrahlung_visible.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_bremsstrahlung_visible.m
@@ -1,9 +1,11 @@
 function S = ids_empty_bremsstrahlung_visible
 % function S = ids_empty_bremsstrahlung_visible
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'channel',{{struct(...
 'filter',struct(...
@@ -71,16 +73,18 @@ struct(...
 'time',double([]),...
 'validity',int32(-999999999),...
 'validity_timed',int32([])))
-;}},...
+}},...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -90,10 +94,59 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_calorimetry.m b/matlab/TCV_IMAS/ids_empty/ids_empty_calorimetry.m
index 86178f8af384919bafa1dfb1a3f8d694ae278ace..16083fabe295f53a6d79bd15b31d61a86363b1b4 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_calorimetry.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_calorimetry.m
@@ -1,19 +1,23 @@
 function S = ids_empty_calorimetry
 % function S = ids_empty_calorimetry
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -46,7 +50,7 @@ struct(...
 'time',double([]),...
 'validity',int32(-999999999),...
 'validity_timed',int32([])))
-;}},...
+}},...
 'group',{{struct(...
 'component',{{struct(...
 'energy_cumulated',struct(...
@@ -105,18 +109,67 @@ struct(...
 'time',double([]),...
 'validity',int32(-999999999),...
 'validity_timed',int32([])))
-;}},...
+}},...
 'identifier','',...
 'name','')
-;}},...
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_camera_ir.m b/matlab/TCV_IMAS/ids_empty/ids_empty_camera_ir.m
index e9346d45733df02ddbc9ba59ab9baf423f97cf2f..f7a0effa225067ed728494456c227c01846cbb28 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_camera_ir.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_camera_ir.m
@@ -1,9 +1,11 @@
 function S = ids_empty_camera_ir
 % function S = ids_empty_camera_ir
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'calibration',struct(...
 'luminance_to_temperature',int32([]),...
@@ -13,31 +15,337 @@ struct(...
 'transmission_window',int32([])),...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
 'repository','',...
 'version',''),...
+'fibre_bundle',struct(...
+'fibre_positions',struct(...
+'x1',double([]),...
+'x1_error_index',int32(-999999999),...
+'x1_error_lower',double([]),...
+'x1_error_upper',double([]),...
+'x2',double([]),...
+'x2_error_index',int32(-999999999),...
+'x2_error_lower',double([]),...
+'x2_error_upper',double([])),...
+'fibre_radius',double(-9e+40),...
+'fibre_radius_error_index',int32(-999999999),...
+'fibre_radius_error_lower',double(-9e+40),...
+'fibre_radius_error_upper',double(-9e+40),...
+'geometry',struct(...
+'centre',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'geometry_type',int32(-999999999),...
+'outline',struct(...
+'x1',double([]),...
+'x1_error_index',int32(-999999999),...
+'x1_error_lower',double([]),...
+'x1_error_upper',double([]),...
+'x2',double([]),...
+'x2_error_index',int32(-999999999),...
+'x2_error_lower',double([]),...
+'x2_error_upper',double([])),...
+'radius',double(-9e+40),...
+'radius_error_index',int32(-999999999),...
+'radius_error_lower',double(-9e+40),...
+'radius_error_upper',double(-9e+40),...
+'surface',double(-9e+40),...
+'surface_error_index',int32(-999999999),...
+'surface_error_lower',double(-9e+40),...
+'surface_error_upper',double(-9e+40),...
+'x1_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x1_width',double(-9e+40),...
+'x1_width_error_index',int32(-999999999),...
+'x1_width_error_lower',double(-9e+40),...
+'x1_width_error_upper',double(-9e+40),...
+'x2_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x2_width',double(-9e+40),...
+'x2_width_error_index',int32(-999999999),...
+'x2_width_error_lower',double(-9e+40),...
+'x2_width_error_upper',double(-9e+40),...
+'x3_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)))),...
 'frame',{{struct(...
-'image_raw',int32([]),...
+'surface_temperature',double([]),...
+'surface_temperature_error_index',int32(-999999999),...
+'surface_temperature_error_lower',double([]),...
+'surface_temperature_error_upper',double([]),...
+'time',double(-9e+40))
+}},...
+'frame_analysis',{{struct(...
+'distance_separatrix_midplane',double([]),...
+'distance_separatrix_midplane_error_index',int32(-999999999),...
+'distance_separatrix_midplane_error_lower',double([]),...
+'distance_separatrix_midplane_error_upper',double([]),...
+'power_flux_parallel',double([]),...
+'power_flux_parallel_error_index',int32(-999999999),...
+'power_flux_parallel_error_lower',double([]),...
+'power_flux_parallel_error_upper',double([]),...
+'sol_heat_decay_length',double(-9e+40),...
+'sol_heat_decay_length_error_index',int32(-999999999),...
+'sol_heat_decay_length_error_lower',double(-9e+40),...
+'sol_heat_decay_length_error_upper',double(-9e+40),...
 'time',double(-9e+40))
-;}},...
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
+'midplane',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
 'name','',...
+'optical_element',{{struct(...
+'back_surface',struct(...
+'curvature_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'x1_curvature',double(-9e+40),...
+'x1_curvature_error_index',int32(-999999999),...
+'x1_curvature_error_lower',double(-9e+40),...
+'x1_curvature_error_upper',double(-9e+40),...
+'x2_curvature',double(-9e+40),...
+'x2_curvature_error_index',int32(-999999999),...
+'x2_curvature_error_lower',double(-9e+40),...
+'x2_curvature_error_upper',double(-9e+40)),...
+'front_surface',struct(...
+'curvature_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'x1_curvature',double(-9e+40),...
+'x1_curvature_error_index',int32(-999999999),...
+'x1_curvature_error_lower',double(-9e+40),...
+'x1_curvature_error_upper',double(-9e+40),...
+'x2_curvature',double(-9e+40),...
+'x2_curvature_error_index',int32(-999999999),...
+'x2_curvature_error_lower',double(-9e+40),...
+'x2_curvature_error_upper',double(-9e+40)),...
+'geometry',struct(...
+'centre',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'geometry_type',int32(-999999999),...
+'outline',struct(...
+'x1',double([]),...
+'x1_error_index',int32(-999999999),...
+'x1_error_lower',double([]),...
+'x1_error_upper',double([]),...
+'x2',double([]),...
+'x2_error_index',int32(-999999999),...
+'x2_error_lower',double([]),...
+'x2_error_upper',double([])),...
+'radius',double(-9e+40),...
+'radius_error_index',int32(-999999999),...
+'radius_error_lower',double(-9e+40),...
+'radius_error_upper',double(-9e+40),...
+'surface',double(-9e+40),...
+'surface_error_index',int32(-999999999),...
+'surface_error_lower',double(-9e+40),...
+'surface_error_upper',double(-9e+40),...
+'x1_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x1_width',double(-9e+40),...
+'x1_width_error_index',int32(-999999999),...
+'x1_width_error_lower',double(-9e+40),...
+'x1_width_error_upper',double(-9e+40),...
+'x2_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x2_width',double(-9e+40),...
+'x2_width_error_index',int32(-999999999),...
+'x2_width_error_lower',double(-9e+40),...
+'x2_width_error_upper',double(-9e+40),...
+'x3_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40))),...
+'material_properties',struct(...
+'extinction_coefficient',double([]),...
+'extinction_coefficient_error_index',int32(-999999999),...
+'extinction_coefficient_error_lower',double([]),...
+'extinction_coefficient_error_upper',double([]),...
+'refractive_index',double([]),...
+'refractive_index_error_index',int32(-999999999),...
+'refractive_index_error_lower',double([]),...
+'refractive_index_error_upper',double([]),...
+'roughness',double([]),...
+'roughness_error_index',int32(-999999999),...
+'roughness_error_lower',double([]),...
+'roughness_error_upper',double([]),...
+'transmission_coefficient',double([]),...
+'transmission_coefficient_error_index',int32(-999999999),...
+'transmission_coefficient_error_lower',double([]),...
+'transmission_coefficient_error_upper',double([]),...
+'type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'wavelengths',double([]),...
+'wavelengths_error_index',int32(-999999999),...
+'wavelengths_error_lower',double([]),...
+'wavelengths_error_upper',double([])),...
+'thickness',double(-9e+40),...
+'thickness_error_index',int32(-999999999),...
+'thickness_error_lower',double(-9e+40),...
+'thickness_error_upper',double(-9e+40),...
+'type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''))
+}},...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_camera_visible.m b/matlab/TCV_IMAS/ids_empty/ids_empty_camera_visible.m
index 32cf9f234f852bf335578cd83324bec2e38a5c42..7276ab216af4b712a1d4d7ee2c33fb10002025ff 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_camera_visible.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_camera_visible.m
@@ -1,9 +1,11 @@
 function S = ids_empty_camera_visible
 % function S = ids_empty_camera_visible
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'channel',{{struct(...
 'aperture',{{struct(...
@@ -85,8 +87,9 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40)))
-;}},...
+}},...
 'detector',{{struct(...
+'columns_n',int32(-999999999),...
 'counts_to_radiance',double([]),...
 'counts_to_radiance_error_index',int32(-999999999),...
 'counts_to_radiance_error_lower',double([]),...
@@ -102,13 +105,30 @@ struct(...
 'radiance_error_lower',double([]),...
 'radiance_error_upper',double([]),...
 'time',double(-9e+40))
-;}},...
+}},...
 'geometry_matrix',struct(...
+'emission_grid',struct(...
+'dim1',double([]),...
+'dim1_error_index',int32(-999999999),...
+'dim1_error_lower',double([]),...
+'dim1_error_upper',double([]),...
+'dim2',double([]),...
+'dim2_error_index',int32(-999999999),...
+'dim2_error_lower',double([]),...
+'dim2_error_upper',double([]),...
+'dim3',double([]),...
+'dim3_error_index',int32(-999999999),...
+'dim3_error_lower',double([]),...
+'dim3_error_upper',double([]),...
+'grid_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name','')),...
+'interpolated',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
-'emission_grid',struct(...
 'phi',double([]),...
 'phi_error_index',int32(-999999999),...
 'phi_error_lower',double([]),...
@@ -121,7 +141,23 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double([]),...
 'z_error_upper',double([])),...
-'voxel_map',int32([])),...
+'voxel_map',int32([]),...
+'voxels_n',int32(-999999999),...
+'with_reflections',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'pixel_indices',int32([]),...
+'voxel_indices',int32([])),...
+'without_reflections',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'pixel_indices',int32([]),...
+'voxel_indices',int32([]))),...
+'lines_n',int32(-999999999),...
 'noise',double(-9e+40),...
 'noise_error_index',int32(-999999999),...
 'noise_error_lower',double(-9e+40),...
@@ -142,8 +178,241 @@ struct(...
 'wavelength_upper_error_index',int32(-999999999),...
 'wavelength_upper_error_lower',double(-9e+40),...
 'wavelength_upper_error_upper',double(-9e+40))
-;}},...
+}},...
+'fibre_bundle',struct(...
+'fibre_positions',struct(...
+'x1',double([]),...
+'x1_error_index',int32(-999999999),...
+'x1_error_lower',double([]),...
+'x1_error_upper',double([]),...
+'x2',double([]),...
+'x2_error_index',int32(-999999999),...
+'x2_error_lower',double([]),...
+'x2_error_upper',double([])),...
+'fibre_radius',double(-9e+40),...
+'fibre_radius_error_index',int32(-999999999),...
+'fibre_radius_error_lower',double(-9e+40),...
+'fibre_radius_error_upper',double(-9e+40),...
+'geometry',struct(...
+'centre',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'geometry_type',int32(-999999999),...
+'outline',struct(...
+'x1',double([]),...
+'x1_error_index',int32(-999999999),...
+'x1_error_lower',double([]),...
+'x1_error_upper',double([]),...
+'x2',double([]),...
+'x2_error_index',int32(-999999999),...
+'x2_error_lower',double([]),...
+'x2_error_upper',double([])),...
+'radius',double(-9e+40),...
+'radius_error_index',int32(-999999999),...
+'radius_error_lower',double(-9e+40),...
+'radius_error_upper',double(-9e+40),...
+'surface',double(-9e+40),...
+'surface_error_index',int32(-999999999),...
+'surface_error_lower',double(-9e+40),...
+'surface_error_upper',double(-9e+40),...
+'x1_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x1_width',double(-9e+40),...
+'x1_width_error_index',int32(-999999999),...
+'x1_width_error_lower',double(-9e+40),...
+'x1_width_error_upper',double(-9e+40),...
+'x2_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x2_width',double(-9e+40),...
+'x2_width_error_index',int32(-999999999),...
+'x2_width_error_lower',double(-9e+40),...
+'x2_width_error_upper',double(-9e+40),...
+'x3_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)))),...
 'name','',...
+'optical_element',{{struct(...
+'back_surface',struct(...
+'curvature_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'x1_curvature',double(-9e+40),...
+'x1_curvature_error_index',int32(-999999999),...
+'x1_curvature_error_lower',double(-9e+40),...
+'x1_curvature_error_upper',double(-9e+40),...
+'x2_curvature',double(-9e+40),...
+'x2_curvature_error_index',int32(-999999999),...
+'x2_curvature_error_lower',double(-9e+40),...
+'x2_curvature_error_upper',double(-9e+40)),...
+'front_surface',struct(...
+'curvature_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'x1_curvature',double(-9e+40),...
+'x1_curvature_error_index',int32(-999999999),...
+'x1_curvature_error_lower',double(-9e+40),...
+'x1_curvature_error_upper',double(-9e+40),...
+'x2_curvature',double(-9e+40),...
+'x2_curvature_error_index',int32(-999999999),...
+'x2_curvature_error_lower',double(-9e+40),...
+'x2_curvature_error_upper',double(-9e+40)),...
+'geometry',struct(...
+'centre',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'geometry_type',int32(-999999999),...
+'outline',struct(...
+'x1',double([]),...
+'x1_error_index',int32(-999999999),...
+'x1_error_lower',double([]),...
+'x1_error_upper',double([]),...
+'x2',double([]),...
+'x2_error_index',int32(-999999999),...
+'x2_error_lower',double([]),...
+'x2_error_upper',double([])),...
+'radius',double(-9e+40),...
+'radius_error_index',int32(-999999999),...
+'radius_error_lower',double(-9e+40),...
+'radius_error_upper',double(-9e+40),...
+'surface',double(-9e+40),...
+'surface_error_index',int32(-999999999),...
+'surface_error_lower',double(-9e+40),...
+'surface_error_upper',double(-9e+40),...
+'x1_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x1_width',double(-9e+40),...
+'x1_width_error_index',int32(-999999999),...
+'x1_width_error_lower',double(-9e+40),...
+'x1_width_error_upper',double(-9e+40),...
+'x2_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x2_width',double(-9e+40),...
+'x2_width_error_index',int32(-999999999),...
+'x2_width_error_lower',double(-9e+40),...
+'x2_width_error_upper',double(-9e+40),...
+'x3_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40))),...
+'material_properties',struct(...
+'extinction_coefficient',double([]),...
+'extinction_coefficient_error_index',int32(-999999999),...
+'extinction_coefficient_error_lower',double([]),...
+'extinction_coefficient_error_upper',double([]),...
+'refractive_index',double([]),...
+'refractive_index_error_index',int32(-999999999),...
+'refractive_index_error_lower',double([]),...
+'refractive_index_error_upper',double([]),...
+'roughness',double([]),...
+'roughness_error_index',int32(-999999999),...
+'roughness_error_lower',double([]),...
+'roughness_error_upper',double([]),...
+'transmission_coefficient',double([]),...
+'transmission_coefficient_error_index',int32(-999999999),...
+'transmission_coefficient_error_lower',double([]),...
+'transmission_coefficient_error_upper',double([]),...
+'type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'wavelengths',double([]),...
+'wavelengths_error_index',int32(-999999999),...
+'wavelengths_error_lower',double([]),...
+'wavelengths_error_upper',double([])),...
+'thickness',double(-9e+40),...
+'thickness_error_index',int32(-999999999),...
+'thickness_error_lower',double(-9e+40),...
+'thickness_error_upper',double(-9e+40),...
+'type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''))
+}},...
 'viewing_angle_alpha_bounds',double([]),...
 'viewing_angle_alpha_bounds_error_index',int32(-999999999),...
 'viewing_angle_alpha_bounds_error_lower',double([]),...
@@ -152,16 +421,18 @@ struct(...
 'viewing_angle_beta_bounds_error_index',int32(-999999999),...
 'viewing_angle_beta_bounds_error_lower',double([]),...
 'viewing_angle_beta_bounds_error_upper',double([]))
-;}},...
+}},...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -171,11 +442,60 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'name','',...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_camera_x_rays.m b/matlab/TCV_IMAS/ids_empty/ids_empty_camera_x_rays.m
new file mode 100644
index 0000000000000000000000000000000000000000..318a307220dbf8ae6683441387afbc369c3281f9
--- /dev/null
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_camera_x_rays.m
@@ -0,0 +1,425 @@
+function S = ids_empty_camera_x_rays
+% function S = ids_empty_camera_x_rays
+%
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
+
+S = ...
+struct(...
+'aperture',struct(...
+'centre',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'geometry_type',int32(-999999999),...
+'outline',struct(...
+'x1',double([]),...
+'x1_error_index',int32(-999999999),...
+'x1_error_lower',double([]),...
+'x1_error_upper',double([]),...
+'x2',double([]),...
+'x2_error_index',int32(-999999999),...
+'x2_error_lower',double([]),...
+'x2_error_upper',double([])),...
+'radius',double(-9e+40),...
+'radius_error_index',int32(-999999999),...
+'radius_error_lower',double(-9e+40),...
+'radius_error_upper',double(-9e+40),...
+'surface',double(-9e+40),...
+'surface_error_index',int32(-999999999),...
+'surface_error_lower',double(-9e+40),...
+'surface_error_upper',double(-9e+40),...
+'x1_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x1_width',double(-9e+40),...
+'x1_width_error_index',int32(-999999999),...
+'x1_width_error_lower',double(-9e+40),...
+'x1_width_error_upper',double(-9e+40),...
+'x2_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x2_width',double(-9e+40),...
+'x2_width_error_index',int32(-999999999),...
+'x2_width_error_lower',double(-9e+40),...
+'x2_width_error_upper',double(-9e+40),...
+'x3_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40))),...
+'camera',struct(...
+'camera_dimensions',double([]),...
+'camera_dimensions_error_index',int32(-999999999),...
+'camera_dimensions_error_lower',double([]),...
+'camera_dimensions_error_upper',double([]),...
+'centre',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'identifier','',...
+'line_of_sight',struct(...
+'first_point',struct(...
+'phi',double([]),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double([]),...
+'phi_error_upper',double([]),...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([])),...
+'second_point',struct(...
+'phi',double([]),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double([]),...
+'phi_error_upper',double([]),...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))),...
+'pixel_dimensions',double([]),...
+'pixel_dimensions_error_index',int32(-999999999),...
+'pixel_dimensions_error_lower',double([]),...
+'pixel_dimensions_error_upper',double([]),...
+'pixel_position',struct(...
+'phi',double([]),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double([]),...
+'phi_error_upper',double([]),...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([])),...
+'pixels_n',int32([]),...
+'x1_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x2_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x3_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40))),...
+'code',struct(...
+'commit','',...
+'description','',...
+'library',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'name','',...
+'output_flag',int32([]),...
+'parameters','',...
+'repository','',...
+'version',''),...
+'detector_humidity',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'detector_temperature',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'energy_configuration_name','',...
+'energy_threshold_lower',double([]),...
+'energy_threshold_lower_error_index',int32(-999999999),...
+'energy_threshold_lower_error_lower',double([]),...
+'energy_threshold_lower_error_upper',double([]),...
+'exposure_time',double(-9e+40),...
+'exposure_time_error_index',int32(-999999999),...
+'exposure_time_error_lower',double(-9e+40),...
+'exposure_time_error_upper',double(-9e+40),...
+'filter_window',struct(...
+'centre',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'curvature_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'geometry_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'identifier','',...
+'material',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'outline',struct(...
+'x1',double([]),...
+'x1_error_index',int32(-999999999),...
+'x1_error_lower',double([]),...
+'x1_error_upper',double([]),...
+'x2',double([]),...
+'x2_error_index',int32(-999999999),...
+'x2_error_lower',double([]),...
+'x2_error_upper',double([])),...
+'photon_absorption',double([]),...
+'photon_absorption_error_index',int32(-999999999),...
+'photon_absorption_error_lower',double([]),...
+'photon_absorption_error_upper',double([]),...
+'radius',double(-9e+40),...
+'radius_error_index',int32(-999999999),...
+'radius_error_lower',double(-9e+40),...
+'radius_error_upper',double(-9e+40),...
+'surface',double(-9e+40),...
+'surface_error_index',int32(-999999999),...
+'surface_error_lower',double(-9e+40),...
+'surface_error_upper',double(-9e+40),...
+'thickness',double(-9e+40),...
+'thickness_error_index',int32(-999999999),...
+'thickness_error_lower',double(-9e+40),...
+'thickness_error_upper',double(-9e+40),...
+'wavelength_lower',double(-9e+40),...
+'wavelength_lower_error_index',int32(-999999999),...
+'wavelength_lower_error_lower',double(-9e+40),...
+'wavelength_lower_error_upper',double(-9e+40),...
+'wavelength_upper',double(-9e+40),...
+'wavelength_upper_error_index',int32(-999999999),...
+'wavelength_upper_error_lower',double(-9e+40),...
+'wavelength_upper_error_upper',double(-9e+40),...
+'wavelengths',double([]),...
+'wavelengths_error_index',int32(-999999999),...
+'wavelengths_error_lower',double([]),...
+'wavelengths_error_upper',double([]),...
+'x1_curvature',double(-9e+40),...
+'x1_curvature_error_index',int32(-999999999),...
+'x1_curvature_error_lower',double(-9e+40),...
+'x1_curvature_error_upper',double(-9e+40),...
+'x1_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x1_width',double(-9e+40),...
+'x1_width_error_index',int32(-999999999),...
+'x1_width_error_lower',double(-9e+40),...
+'x1_width_error_upper',double(-9e+40),...
+'x2_curvature',double(-9e+40),...
+'x2_curvature_error_index',int32(-999999999),...
+'x2_curvature_error_lower',double(-9e+40),...
+'x2_curvature_error_upper',double(-9e+40),...
+'x2_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x2_width',double(-9e+40),...
+'x2_width_error_index',int32(-999999999),...
+'x2_width_error_lower',double(-9e+40),...
+'x2_width_error_upper',double(-9e+40),...
+'x3_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40))),...
+'frame',{{struct(...
+'counts_n',int32([]),...
+'time',double(-9e+40))
+}},...
+'ids_properties',struct(...
+'comment','',...
+'creation_date','',...
+'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
+'provider','',...
+'source','',...
+'version_put',struct(...
+'access_layer','',...
+'access_layer_language','',...
+'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
+'name','',...
+'photon_energy',double([]),...
+'photon_energy_error_index',int32(-999999999),...
+'photon_energy_error_lower',double([]),...
+'photon_energy_error_upper',double([]),...
+'pixel_status',int32([]),...
+'quantum_efficiency',double([]),...
+'quantum_efficiency_error_index',int32(-999999999),...
+'quantum_efficiency_error_lower',double([]),...
+'quantum_efficiency_error_upper',double([]),...
+'readout_time',double(-9e+40),...
+'readout_time_error_index',int32(-999999999),...
+'readout_time_error_lower',double(-9e+40),...
+'readout_time_error_upper',double(-9e+40),...
+'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_charge_exchange.m b/matlab/TCV_IMAS/ids_empty/ids_empty_charge_exchange.m
index 23f769eea93d40c457e0eebb0c22bcc8b4e1b937..f2b743835976a87c344e84ac663bfc4cca79bfd8 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_charge_exchange.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_charge_exchange.m
@@ -1,9 +1,11 @@
 function S = ids_empty_charge_exchange
 % function S = ids_empty_charge_exchange
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'aperture',struct(...
 'centre',struct(...
@@ -176,7 +178,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'ion_fast',{{struct(...
 'a',double(-9e+40),...
 'a_error_index',int32(-999999999),...
@@ -205,7 +207,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'momentum_tor',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
@@ -285,7 +287,7 @@ struct(...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])))
-;}},...
+}},...
 'radiance_calibration',double([]),...
 'radiance_calibration_date','',...
 'radiance_calibration_error_index',int32(-999999999),...
@@ -312,7 +314,7 @@ struct(...
 'wavelengths_error_index',int32(-999999999),...
 'wavelengths_error_lower',double([]),...
 'wavelengths_error_upper',double([]))
-;}},...
+}},...
 't_i_average',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
@@ -343,16 +345,18 @@ struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''))
-;}},...
+}},...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -370,10 +374,59 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_coils_non_axisymmetric.m b/matlab/TCV_IMAS/ids_empty/ids_empty_coils_non_axisymmetric.m
index cb719f1a66ea73ce7e15b653a87679e30b80934c..55f95fc6c8af3bb86f4ebb1826947b1d17dbd20d 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_coils_non_axisymmetric.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_coils_non_axisymmetric.m
@@ -1,10 +1,28 @@
 function S = ids_empty_coils_non_axisymmetric
 % function S = ids_empty_coils_non_axisymmetric
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
+'code',struct(...
+'commit','',...
+'description','',...
+'library',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'name','',...
+'output_flag',int32([]),...
+'parameters','',...
+'repository','',...
+'version',''),...
 'coil',{{struct(...
 'conductor',{{struct(...
 'cross_section',struct(...
@@ -91,7 +109,7 @@ struct(...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])))
-;}},...
+}},...
 'current',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
@@ -114,15 +132,64 @@ struct(...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])))
-;}},...
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_controllers.m b/matlab/TCV_IMAS/ids_empty/ids_empty_controllers.m
index 5873b2edee62a566dae25ae32a0c9eedc072c679..22ebf4f2947c5e47ecb9e20dc7e764c5447666bd 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_controllers.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_controllers.m
@@ -1,19 +1,23 @@
 function S = ids_empty_controllers
 % function S = ids_empty_controllers
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -23,6 +27,51 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
@@ -104,7 +153,7 @@ struct(...
 'data_error_upper',double([]),...
 'time',double([])),...
 'state_names',{{}}))
-;}},...
+}},...
 'nonlinear_controller',{{struct(...
 'controller_class','',...
 'description','',...
@@ -124,5 +173,5 @@ struct(...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])))
-;}},...
+}},...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_core_instant_changes.m b/matlab/TCV_IMAS/ids_empty/ids_empty_core_instant_changes.m
index 6bb1b5d89e11a0919d9a39e4d9c552654beafcc5..81200d881ca237c50e54a2e93f9a8c3a97e19574 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_core_instant_changes.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_core_instant_changes.m
@@ -1,9 +1,11 @@
 function S = ids_empty_core_instant_changes
 % function S = ids_empty_core_instant_changes
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'change',{{struct(...
 'identifier',struct(...
@@ -285,7 +287,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
 'neutral_index',int32(-999999999),...
@@ -438,7 +440,7 @@ struct(...
 'z_square_average_error_index',int32(-999999999),...
 'z_square_average_error_lower',double(-9e+40),...
 'z_square_average_error_upper',double(-9e+40))
-;}},...
+}},...
 'temperature',double([]),...
 'temperature_error_index',int32(-999999999),...
 'temperature_error_lower',double([]),...
@@ -521,7 +523,7 @@ struct(...
 'z_ion_square_1d_error_index',int32(-999999999),...
 'z_ion_square_1d_error_lower',double([]),...
 'z_ion_square_1d_error_upper',double([]))
-;}},...
+}},...
 'j_bootstrap',double([]),...
 'j_bootstrap_error_index',int32(-999999999),...
 'j_bootstrap_error_lower',double([]),...
@@ -585,7 +587,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'ion_index',int32(-999999999),...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
@@ -670,7 +672,7 @@ struct(...
 'vibrational_level_error_lower',double(-9e+40),...
 'vibrational_level_error_upper',double(-9e+40),...
 'vibrational_mode','')
-;}},...
+}},...
 'temperature',double([]),...
 'temperature_error_index',int32(-999999999),...
 'temperature_error_lower',double([]),...
@@ -696,7 +698,7 @@ struct(...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
 'toroidal_error_upper',double([])))
-;}},...
+}},...
 'phi_potential',double([]),...
 'phi_potential_error_index',int32(-999999999),...
 'phi_potential_error_lower',double([]),...
@@ -806,17 +808,19 @@ struct(...
 'weight_error_index',int32(-999999999),...
 'weight_error_lower',double([]),...
 'weight_error_upper',double([])))
-;}})
-;}},...
+}})
+}},...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -826,6 +830,51 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_core_profiles.m b/matlab/TCV_IMAS/ids_empty/ids_empty_core_profiles.m
index c4cf20c5045d0860eab5659e1a07f8015fa26bd2..e49d0947e3166c09841dedb5d8bfd44a2d583995 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_core_profiles.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_core_profiles.m
@@ -1,19 +1,23 @@
 function S = ids_empty_core_profiles
 % function S = ids_empty_core_profiles
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -40,10 +44,28 @@ struct(...
 'current_non_inductive_error_index',int32(-999999999),...
 'current_non_inductive_error_lower',double([]),...
 'current_non_inductive_error_upper',double([]),...
+'ejima',double([]),...
+'ejima_error_index',int32(-999999999),...
+'ejima_error_lower',double([]),...
+'ejima_error_upper',double([]),...
 'energy_diamagnetic',double([]),...
 'energy_diamagnetic_error_index',int32(-999999999),...
 'energy_diamagnetic_error_lower',double([]),...
 'energy_diamagnetic_error_upper',double([]),...
+'ion',{{struct(...
+'n_i_volume_average',double([]),...
+'n_i_volume_average_error_index',int32(-999999999),...
+'n_i_volume_average_error_lower',double([]),...
+'n_i_volume_average_error_upper',double([]),...
+'t_i_volume_average',double([]),...
+'t_i_volume_average_error_index',int32(-999999999),...
+'t_i_volume_average_error_lower',double([]),...
+'t_i_volume_average_error_upper',double([]))
+}},...
+'ion_time_slice',double(-9e+40),...
+'ion_time_slice_error_index',int32(-999999999),...
+'ion_time_slice_error_lower',double(-9e+40),...
+'ion_time_slice_error_upper',double(-9e+40),...
 'ip',double([]),...
 'ip_error_index',int32(-999999999),...
 'ip_error_lower',double([]),...
@@ -56,6 +78,26 @@ struct(...
 'li_error_index',int32(-999999999),...
 'li_error_lower',double([]),...
 'li_error_upper',double([]),...
+'n_e_volume_average',double([]),...
+'n_e_volume_average_error_index',int32(-999999999),...
+'n_e_volume_average_error_lower',double([]),...
+'n_e_volume_average_error_upper',double([]),...
+'resistive_psi_losses',double([]),...
+'resistive_psi_losses_error_index',int32(-999999999),...
+'resistive_psi_losses_error_lower',double([]),...
+'resistive_psi_losses_error_upper',double([]),...
+'t_e_peaking',double([]),...
+'t_e_peaking_error_index',int32(-999999999),...
+'t_e_peaking_error_lower',double([]),...
+'t_e_peaking_error_upper',double([]),...
+'t_e_volume_average',double([]),...
+'t_e_volume_average_error_index',int32(-999999999),...
+'t_e_volume_average_error_lower',double([]),...
+'t_e_volume_average_error_upper',double([]),...
+'t_i_average_peaking',double([]),...
+'t_i_average_peaking_error_index',int32(-999999999),...
+'t_i_average_peaking_error_lower',double([]),...
+'t_i_average_peaking_error_upper',double([]),...
 'v_loop',double([]),...
 'v_loop_error_index',int32(-999999999),...
 'v_loop_error_lower',double([]),...
@@ -68,6 +110,51 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
@@ -349,7 +436,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
 'neutral_index',int32(-999999999),...
@@ -502,7 +589,7 @@ struct(...
 'z_square_average_error_index',int32(-999999999),...
 'z_square_average_error_lower',double(-9e+40),...
 'z_square_average_error_upper',double(-9e+40))
-;}},...
+}},...
 'temperature',double([]),...
 'temperature_error_index',int32(-999999999),...
 'temperature_error_lower',double([]),...
@@ -585,7 +672,7 @@ struct(...
 'z_ion_square_1d_error_index',int32(-999999999),...
 'z_ion_square_1d_error_lower',double([]),...
 'z_ion_square_1d_error_upper',double([]))
-;}},...
+}},...
 'j_bootstrap',double([]),...
 'j_bootstrap_error_index',int32(-999999999),...
 'j_bootstrap_error_lower',double([]),...
@@ -649,7 +736,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'ion_index',int32(-999999999),...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
@@ -734,7 +821,7 @@ struct(...
 'vibrational_level_error_lower',double(-9e+40),...
 'vibrational_level_error_upper',double(-9e+40),...
 'vibrational_mode','')
-;}},...
+}},...
 'temperature',double([]),...
 'temperature_error_index',int32(-999999999),...
 'temperature_error_lower',double([]),...
@@ -760,7 +847,7 @@ struct(...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
 'toroidal_error_upper',double([])))
-;}},...
+}},...
 'phi_potential',double([]),...
 'phi_potential_error_index',int32(-999999999),...
 'phi_potential_error_lower',double([]),...
@@ -870,7 +957,209 @@ struct(...
 'weight_error_index',int32(-999999999),...
 'weight_error_lower',double([]),...
 'weight_error_upper',double([])))
-;}},...
+}},...
+'profiles_2d',{{struct(...
+'grid',struct(...
+'dim1',double([]),...
+'dim1_error_index',int32(-999999999),...
+'dim1_error_lower',double([]),...
+'dim1_error_upper',double([]),...
+'dim2',double([]),...
+'dim2_error_index',int32(-999999999),...
+'dim2_error_lower',double([]),...
+'dim2_error_upper',double([]),...
+'volume_element',double([]),...
+'volume_element_error_index',int32(-999999999),...
+'volume_element_error_lower',double([]),...
+'volume_element_error_upper',double([])),...
+'grid_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'ion',{{struct(...
+'density',double([]),...
+'density_error_index',int32(-999999999),...
+'density_error_lower',double([]),...
+'density_error_upper',double([]),...
+'density_fast',double([]),...
+'density_fast_error_index',int32(-999999999),...
+'density_fast_error_lower',double([]),...
+'density_fast_error_upper',double([]),...
+'density_thermal',double([]),...
+'density_thermal_error_index',int32(-999999999),...
+'density_thermal_error_lower',double([]),...
+'density_thermal_error_upper',double([]),...
+'element',{{struct(...
+'a',double(-9e+40),...
+'a_error_index',int32(-999999999),...
+'a_error_lower',double(-9e+40),...
+'a_error_upper',double(-9e+40),...
+'atoms_n',int32(-999999999),...
+'multiplicity',double(-9e+40),...
+'multiplicity_error_index',int32(-999999999),...
+'multiplicity_error_lower',double(-9e+40),...
+'multiplicity_error_upper',double(-9e+40),...
+'z_n',double(-9e+40),...
+'z_n_error_index',int32(-999999999),...
+'z_n_error_lower',double(-9e+40),...
+'z_n_error_upper',double(-9e+40))
+}},...
+'ion_index',int32(-999999999),...
+'label','',...
+'multiple_states_flag',int32(-999999999),...
+'pressure',double([]),...
+'pressure_error_index',int32(-999999999),...
+'pressure_error_lower',double([]),...
+'pressure_error_upper',double([]),...
+'pressure_fast_parallel',double([]),...
+'pressure_fast_parallel_error_index',int32(-999999999),...
+'pressure_fast_parallel_error_lower',double([]),...
+'pressure_fast_parallel_error_upper',double([]),...
+'pressure_fast_perpendicular',double([]),...
+'pressure_fast_perpendicular_error_index',int32(-999999999),...
+'pressure_fast_perpendicular_error_lower',double([]),...
+'pressure_fast_perpendicular_error_upper',double([]),...
+'pressure_thermal',double([]),...
+'pressure_thermal_error_index',int32(-999999999),...
+'pressure_thermal_error_lower',double([]),...
+'pressure_thermal_error_upper',double([]),...
+'rotation_frequency_tor',double([]),...
+'rotation_frequency_tor_error_index',int32(-999999999),...
+'rotation_frequency_tor_error_lower',double([]),...
+'rotation_frequency_tor_error_upper',double([]),...
+'state',{{struct(...
+'density',double([]),...
+'density_error_index',int32(-999999999),...
+'density_error_lower',double([]),...
+'density_error_upper',double([]),...
+'density_fast',double([]),...
+'density_fast_error_index',int32(-999999999),...
+'density_fast_error_lower',double([]),...
+'density_fast_error_upper',double([]),...
+'density_thermal',double([]),...
+'density_thermal_error_index',int32(-999999999),...
+'density_thermal_error_lower',double([]),...
+'density_thermal_error_upper',double([]),...
+'electron_configuration','',...
+'ionisation_potential',double(-9e+40),...
+'ionisation_potential_error_index',int32(-999999999),...
+'ionisation_potential_error_lower',double(-9e+40),...
+'ionisation_potential_error_upper',double(-9e+40),...
+'label','',...
+'pressure',double([]),...
+'pressure_error_index',int32(-999999999),...
+'pressure_error_lower',double([]),...
+'pressure_error_upper',double([]),...
+'pressure_fast_parallel',double([]),...
+'pressure_fast_parallel_error_index',int32(-999999999),...
+'pressure_fast_parallel_error_lower',double([]),...
+'pressure_fast_parallel_error_upper',double([]),...
+'pressure_fast_perpendicular',double([]),...
+'pressure_fast_perpendicular_error_index',int32(-999999999),...
+'pressure_fast_perpendicular_error_lower',double([]),...
+'pressure_fast_perpendicular_error_upper',double([]),...
+'pressure_thermal',double([]),...
+'pressure_thermal_error_index',int32(-999999999),...
+'pressure_thermal_error_lower',double([]),...
+'pressure_thermal_error_upper',double([]),...
+'rotation_frequency_tor',double([]),...
+'rotation_frequency_tor_error_index',int32(-999999999),...
+'rotation_frequency_tor_error_lower',double([]),...
+'rotation_frequency_tor_error_upper',double([]),...
+'temperature',double([]),...
+'temperature_error_index',int32(-999999999),...
+'temperature_error_lower',double([]),...
+'temperature_error_upper',double([]),...
+'vibrational_level',double(-9e+40),...
+'vibrational_level_error_index',int32(-999999999),...
+'vibrational_level_error_lower',double(-9e+40),...
+'vibrational_level_error_upper',double(-9e+40),...
+'vibrational_mode','',...
+'z_average',double(-9e+40),...
+'z_average_error_index',int32(-999999999),...
+'z_average_error_lower',double(-9e+40),...
+'z_average_error_upper',double(-9e+40),...
+'z_max',double(-9e+40),...
+'z_max_error_index',int32(-999999999),...
+'z_max_error_lower',double(-9e+40),...
+'z_max_error_upper',double(-9e+40),...
+'z_min',double(-9e+40),...
+'z_min_error_index',int32(-999999999),...
+'z_min_error_lower',double(-9e+40),...
+'z_min_error_upper',double(-9e+40),...
+'z_square_average',double(-9e+40),...
+'z_square_average_error_index',int32(-999999999),...
+'z_square_average_error_lower',double(-9e+40),...
+'z_square_average_error_upper',double(-9e+40))
+}},...
+'temperature',double([]),...
+'temperature_error_index',int32(-999999999),...
+'temperature_error_lower',double([]),...
+'temperature_error_upper',double([]),...
+'velocity',struct(...
+'diamagnetic',double([]),...
+'diamagnetic_error_index',int32(-999999999),...
+'diamagnetic_error_lower',double([]),...
+'diamagnetic_error_upper',double([]),...
+'parallel',double([]),...
+'parallel_error_index',int32(-999999999),...
+'parallel_error_lower',double([]),...
+'parallel_error_upper',double([]),...
+'poloidal',double([]),...
+'poloidal_error_index',int32(-999999999),...
+'poloidal_error_lower',double([]),...
+'poloidal_error_upper',double([]),...
+'radial',double([]),...
+'radial_error_index',int32(-999999999),...
+'radial_error_lower',double([]),...
+'radial_error_upper',double([]),...
+'toroidal',double([]),...
+'toroidal_error_index',int32(-999999999),...
+'toroidal_error_lower',double([]),...
+'toroidal_error_upper',double([])),...
+'z_ion',double(-9e+40),...
+'z_ion_error_index',int32(-999999999),...
+'z_ion_error_lower',double(-9e+40),...
+'z_ion_error_upper',double(-9e+40))
+}},...
+'momentum_tor',double([]),...
+'momentum_tor_error_index',int32(-999999999),...
+'momentum_tor_error_lower',double([]),...
+'momentum_tor_error_upper',double([]),...
+'n_i_thermal_total',double([]),...
+'n_i_thermal_total_error_index',int32(-999999999),...
+'n_i_thermal_total_error_lower',double([]),...
+'n_i_thermal_total_error_upper',double([]),...
+'n_i_total_over_n_e',double([]),...
+'n_i_total_over_n_e_error_index',int32(-999999999),...
+'n_i_total_over_n_e_error_lower',double([]),...
+'n_i_total_over_n_e_error_upper',double([]),...
+'pressure_ion_total',double([]),...
+'pressure_ion_total_error_index',int32(-999999999),...
+'pressure_ion_total_error_lower',double([]),...
+'pressure_ion_total_error_upper',double([]),...
+'pressure_parallel',double([]),...
+'pressure_parallel_error_index',int32(-999999999),...
+'pressure_parallel_error_lower',double([]),...
+'pressure_parallel_error_upper',double([]),...
+'pressure_perpendicular',double([]),...
+'pressure_perpendicular_error_index',int32(-999999999),...
+'pressure_perpendicular_error_lower',double([]),...
+'pressure_perpendicular_error_upper',double([]),...
+'pressure_thermal',double([]),...
+'pressure_thermal_error_index',int32(-999999999),...
+'pressure_thermal_error_lower',double([]),...
+'pressure_thermal_error_upper',double([]),...
+'t_i_average',double([]),...
+'t_i_average_error_index',int32(-999999999),...
+'t_i_average_error_lower',double([]),...
+'t_i_average_error_upper',double([]),...
+'time',double(-9e+40),...
+'zeff',double([]),...
+'zeff_error_index',int32(-999999999),...
+'zeff_error_lower',double([]),...
+'zeff_error_upper',double([]))
+}},...
 'time',double([]),...
 'vacuum_toroidal_field',struct(...
 'b0',double([]),...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_core_sources.m b/matlab/TCV_IMAS/ids_empty/ids_empty_core_sources.m
index 215732c9ae5e74c6c7397b924d17ef609214d048..289969544bf092ad33e2cf0893adf8c60a7c52b4 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_core_sources.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_core_sources.m
@@ -1,19 +1,23 @@
 function S = ids_empty_core_sources
 % function S = ids_empty_core_sources
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -23,6 +27,51 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
@@ -61,7 +110,7 @@ struct(...
 'total_ion_power_error_index',int32(-999999999),...
 'total_ion_power_error_lower',double(-9e+40),...
 'total_ion_power_error_upper',double(-9e+40))
-;}},...
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -162,7 +211,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'energy',double([]),...
 'energy_decomposed',struct(...
 'explicit_part',double([]),...
@@ -269,12 +318,12 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'z_ion',double(-9e+40),...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}},...
+}},...
 'j_parallel',double([]),...
 'j_parallel_error_index',int32(-999999999),...
 'j_parallel_error_lower',double([]),...
@@ -302,7 +351,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'energy',double([]),...
 'energy_error_index',int32(-999999999),...
 'energy_error_lower',double([]),...
@@ -334,8 +383,8 @@ struct(...
 'vibrational_level_error_lower',double(-9e+40),...
 'vibrational_level_error_upper',double(-9e+40),...
 'vibrational_mode','')
-;}})
-;}},...
+}})
+}},...
 'time',double(-9e+40),...
 'torque_tor_inside',double([]),...
 'torque_tor_inside_error_index',int32(-999999999),...
@@ -358,7 +407,7 @@ struct(...
 'total_ion_power_inside_error_index',int32(-999999999),...
 'total_ion_power_inside_error_lower',double([]),...
 'total_ion_power_inside_error_upper',double([]))
-;}},...
+}},...
 'species',struct(...
 'ion',struct(...
 'element',{{struct(...
@@ -375,7 +424,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'state',struct(...
 'electron_configuration','',...
@@ -412,7 +461,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'state',struct(...
 'electron_configuration','',...
@@ -430,7 +479,7 @@ struct(...
 'description','',...
 'index',int32(-999999999),...
 'name','')))
-;}},...
+}},...
 'time',double([]),...
 'vacuum_toroidal_field',struct(...
 'b0',double([]),...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_core_transport.m b/matlab/TCV_IMAS/ids_empty/ids_empty_core_transport.m
index 89cc177e463082cba685a35d8e38800e9fc8b8e3..6de9300c5543b0e3170346fcda0da946f65d2a27 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_core_transport.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_core_transport.m
@@ -1,19 +1,23 @@
 function S = ids_empty_core_transport
 % function S = ids_empty_core_transport
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -23,6 +27,51 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
@@ -32,6 +81,7 @@ struct(...
 'model',{{struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'name','',...
 'output_flag',struct(...
 'data',int32([]),...
@@ -210,7 +260,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'energy',struct(...
 'd',double([]),...
 'd_error_index',int32(-999999999),...
@@ -459,12 +509,12 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'z_ion',double(-9e+40),...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}},...
+}},...
 'momentum_tor',struct(...
 'd',double([]),...
 'd_error_index',int32(-999999999),...
@@ -493,7 +543,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'energy',struct(...
 'd',double([]),...
 'd_error_index',int32(-999999999),...
@@ -557,8 +607,8 @@ struct(...
 'vibrational_level_error_lower',double(-9e+40),...
 'vibrational_level_error_upper',double(-9e+40),...
 'vibrational_mode','')
-;}})
-;}},...
+}})
+}},...
 'time',double(-9e+40),...
 'total_ion_energy',struct(...
 'd',double([]),...
@@ -573,8 +623,8 @@ struct(...
 'v_error_index',int32(-999999999),...
 'v_error_lower',double([]),...
 'v_error_upper',double([])))
-;}})
-;}},...
+}})
+}},...
 'time',double([]),...
 'vacuum_toroidal_field',struct(...
 'b0',double([]),...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_cryostat.m b/matlab/TCV_IMAS/ids_empty/ids_empty_cryostat.m
index 5d34061d0827219f985dfc76390dc55ff549b6f3..feda5390f6c596e61928f044cd623409b3c26bc1 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_cryostat.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_cryostat.m
@@ -1,19 +1,23 @@
 function S = ids_empty_cryostat
 % function S = ids_empty_cryostat
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -91,10 +95,10 @@ struct(...
 'resistivity_error_index',int32(-999999999),...
 'resistivity_error_lower',double(-9e+40),...
 'resistivity_error_upper',double(-9e+40))
-;}},...
+}},...
 'identifier','',...
 'name','')
-;}}),...
+}}),...
 'thermal_shield',struct(...
 'type',struct(...
 'description','',...
@@ -166,15 +170,60 @@ struct(...
 'resistivity_error_index',int32(-999999999),...
 'resistivity_error_lower',double(-9e+40),...
 'resistivity_error_upper',double(-9e+40))
-;}},...
+}},...
 'identifier','',...
 'name','')
-;}}))
-;}},...
+}}))
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_dataset_description.m b/matlab/TCV_IMAS/ids_empty/ids_empty_dataset_description.m
index 1d5e7efbd9381a871ce99bd8374f0d955b629542..2fd620c26f75c2288aced30a9541df66956af6dc 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_dataset_description.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_dataset_description.m
@@ -1,9 +1,11 @@
 function S = ids_empty_dataset_description
 % function S = ids_empty_dataset_description
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'data_entry',struct(...
 'machine','',...
@@ -16,6 +18,51 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_dataset_fair.m b/matlab/TCV_IMAS/ids_empty/ids_empty_dataset_fair.m
index 1f3b80274ec082e90904fc0c46f0f4dc3a4acfe9..9cfe89fcdd866a921747fd6d53525c9272aa2916 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_dataset_fair.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_dataset_fair.m
@@ -1,15 +1,62 @@
 function S = ids_empty_dataset_fair
 % function S = ids_empty_dataset_fair
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'identifier','',...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_disruption.m b/matlab/TCV_IMAS/ids_empty/ids_empty_disruption.m
index 29b3267876cbf9a31b79431e469bd31f1ff8ad64..c76ee1a8ecbdb24ca1c61f4a54deb0a98c52eaec 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_disruption.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_disruption.m
@@ -1,19 +1,23 @@
 function S = ids_empty_disruption
 % function S = ids_empty_disruption
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -105,13 +109,58 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40)))
-;}},...
+}},...
 'time',double(-9e+40))
-;}},...
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
@@ -169,7 +218,7 @@ struct(...
 'power_density_radiative_losses_error_lower',double([]),...
 'power_density_radiative_losses_error_upper',double([]),...
 'time',double(-9e+40))
-;}},...
+}},...
 'time',double([]),...
 'vacuum_toroidal_field',struct(...
 'b0',double([]),...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_distribution_sources.m b/matlab/TCV_IMAS/ids_empty/ids_empty_distribution_sources.m
index d3759106fb5c951a97428fb11751ae1131bb0561..5c8d20017b3c0f40f56a2eb8441e662155287cea 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_distribution_sources.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_distribution_sources.m
@@ -1,19 +1,23 @@
 function S = ids_empty_distribution_sources
 % function S = ids_empty_distribution_sources
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -23,6 +27,51 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
@@ -56,15 +105,15 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([]))
-;}},...
+}},...
 'dimension',int32(-999999999),...
 'element',{{struct(...
 'object',{{struct(...
 'dimension',int32(-999999999),...
 'index',int32(-999999999),...
 'space',int32(-999999999))
-;}})
-;}},...
+}})
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -82,11 +131,12 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([])))
-;}},...
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
+'path','',...
 'space',{{struct(...
 'coordinates_type',int32([]),...
 'geometry_type',struct(...
@@ -98,12 +148,20 @@ struct(...
 'index',int32(-999999999),...
 'name',''),...
 'objects_per_dimension',{{struct(...
+'geometry_content',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
 'object',{{struct(...
 'boundary',{{struct(...
 'index',int32(-999999999),...
 'neighbours',int32([]))
-;}},...
+}},...
 'geometry',double([]),...
+'geometry_2d',double([]),...
+'geometry_2d_error_index',int32(-999999999),...
+'geometry_2d_error_lower',double([]),...
+'geometry_2d_error_upper',double([]),...
 'geometry_error_index',int32(-999999999),...
 'geometry_error_lower',double([]),...
 'geometry_error_upper',double([]),...
@@ -112,9 +170,9 @@ struct(...
 'measure_error_lower',double(-9e+40),...
 'measure_error_upper',double(-9e+40),...
 'nodes',int32([]))
-;}})
-;}})
-;}}),...
+}})
+}})
+}}),...
 'particles',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -126,9 +184,9 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'time',double(-9e+40))
-;}},...
+}},...
 'global_quantities',{{struct(...
 'particles',double(-9e+40),...
 'particles_error_index',int32(-999999999),...
@@ -156,24 +214,44 @@ struct(...
 'torque_tor_error_index',int32(-999999999),...
 'torque_tor_error_lower',double(-9e+40),...
 'torque_tor_error_upper',double(-9e+40))
-;}},...
+}},...
 'gyro_type',int32(-999999999),...
 'markers',{{struct(...
 'coordinate_identifier',{{struct(...
 'description','',...
 'index',int32(-999999999),...
 'name','')
-;}},...
+}},...
+'orbit_integrals',struct(...
+'bounce_harmonics',int32([]),...
+'expressions',{{}},...
+'m_pol',int32([]),...
+'n_tor',int32([]),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([])),...
+'orbit_integrals_instant',struct(...
+'expressions',{{}},...
+'time_orbit',double([]),...
+'time_orbit_error_index',int32(-999999999),...
+'time_orbit_error_lower',double([]),...
+'time_orbit_error_upper',double([]),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([])),...
 'positions',double([]),...
 'positions_error_index',int32(-999999999),...
 'positions_error_lower',double([]),...
 'positions_error_upper',double([]),...
 'time',double(-9e+40),...
+'toroidal_mode',int32(-999999999),...
 'weights',double([]),...
 'weights_error_index',int32(-999999999),...
 'weights_error_lower',double([]),...
 'weights_error_upper',double([]))
-;}},...
+}},...
 'process',{{struct(...
 'nbi_beamlets_group',int32(-999999999),...
 'nbi_energy',struct(...
@@ -189,7 +267,7 @@ struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''))
-;}},...
+}},...
 'profiles_1d',{{struct(...
 'energy',double([]),...
 'energy_error_index',int32(-999999999),...
@@ -241,7 +319,7 @@ struct(...
 'particles_error_lower',double([]),...
 'particles_error_upper',double([]),...
 'time',double(-9e+40))
-;}},...
+}},...
 'species',struct(...
 'ion',struct(...
 'element',{{struct(...
@@ -258,7 +336,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'state',struct(...
 'electron_configuration','',...
@@ -295,7 +373,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'state',struct(...
 'electron_configuration','',...
@@ -313,7 +391,7 @@ struct(...
 'description','',...
 'index',int32(-999999999),...
 'name','')))
-;}},...
+}},...
 'time',double([]),...
 'vacuum_toroidal_field',struct(...
 'b0',double([]),...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_distributions.m b/matlab/TCV_IMAS/ids_empty/ids_empty_distributions.m
index c63a4e154915716c16ef7c8421f973dd53237e62..ad1c9761b606f7c1d2979d6a72da4c66271177c0 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_distributions.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_distributions.m
@@ -1,19 +1,23 @@
 function S = ids_empty_distributions
 % function S = ids_empty_distributions
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -33,8 +37,22 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}})
-;}},...
+}})
+}},...
+'expansion_fd3v',{{struct(...
+'grid_subset',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}})
+}},...
 'grid',struct(...
 'grid_subset',{{struct(...
 'base',{{struct(...
@@ -50,15 +68,15 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([]))
-;}},...
+}},...
 'dimension',int32(-999999999),...
 'element',{{struct(...
 'object',{{struct(...
 'dimension',int32(-999999999),...
 'index',int32(-999999999),...
 'space',int32(-999999999))
-;}})
-;}},...
+}})
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -76,11 +94,12 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([])))
-;}},...
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
+'path','',...
 'space',{{struct(...
 'coordinates_type',int32([]),...
 'geometry_type',struct(...
@@ -92,12 +111,20 @@ struct(...
 'index',int32(-999999999),...
 'name',''),...
 'objects_per_dimension',{{struct(...
+'geometry_content',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
 'object',{{struct(...
 'boundary',{{struct(...
 'index',int32(-999999999),...
 'neighbours',int32([]))
-;}},...
+}},...
 'geometry',double([]),...
+'geometry_2d',double([]),...
+'geometry_2d_error_index',int32(-999999999),...
+'geometry_2d_error_lower',double([]),...
+'geometry_2d_error_upper',double([]),...
 'geometry_error_index',int32(-999999999),...
 'geometry_error_lower',double([]),...
 'geometry_error_upper',double([]),...
@@ -106,15 +133,15 @@ struct(...
 'measure_error_lower',double(-9e+40),...
 'measure_error_upper',double(-9e+40),...
 'nodes',int32([]))
-;}})
-;}})
-;}}),...
+}})
+}})
+}}),...
 'temperature',double([]),...
 'temperature_error_index',int32(-999999999),...
 'temperature_error_lower',double([]),...
 'temperature_error_upper',double([]),...
 'time',double(-9e+40))
-;}},...
+}},...
 'global_quantities',{{struct(...
 'collisions',struct(...
 'electrons',struct(...
@@ -149,7 +176,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
 'neutral_index',int32(-999999999),...
@@ -193,7 +220,7 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'torque_fast_tor',double(-9e+40),...
 'torque_fast_tor_error_index',int32(-999999999),...
 'torque_fast_tor_error_lower',double(-9e+40),...
@@ -206,7 +233,7 @@ struct(...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}}),...
+}}),...
 'current_tor',double(-9e+40),...
 'current_tor_error_index',int32(-999999999),...
 'current_tor_error_lower',double(-9e+40),...
@@ -251,7 +278,7 @@ struct(...
 'torque_tor_error_index',int32(-999999999),...
 'torque_tor_error_lower',double(-9e+40),...
 'torque_tor_error_upper',double(-9e+40))
-;}},...
+}},...
 'thermalisation',struct(...
 'particles',double(-9e+40),...
 'particles_error_index',int32(-999999999),...
@@ -270,7 +297,7 @@ struct(...
 'torque_tor_j_radial_error_index',int32(-999999999),...
 'torque_tor_j_radial_error_lower',double(-9e+40),...
 'torque_tor_j_radial_error_upper',double(-9e+40))
-;}},...
+}},...
 'gyro_type',int32(-999999999),...
 'is_delta_f',int32(-999999999),...
 'markers',{{struct(...
@@ -278,17 +305,37 @@ struct(...
 'description','',...
 'index',int32(-999999999),...
 'name','')
-;}},...
+}},...
+'orbit_integrals',struct(...
+'bounce_harmonics',int32([]),...
+'expressions',{{}},...
+'m_pol',int32([]),...
+'n_tor',int32([]),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([])),...
+'orbit_integrals_instant',struct(...
+'expressions',{{}},...
+'time_orbit',double([]),...
+'time_orbit_error_index',int32(-999999999),...
+'time_orbit_error_lower',double([]),...
+'time_orbit_error_upper',double([]),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([])),...
 'positions',double([]),...
 'positions_error_index',int32(-999999999),...
 'positions_error_lower',double([]),...
 'positions_error_upper',double([]),...
 'time',double(-9e+40),...
+'toroidal_mode',int32(-999999999),...
 'weights',double([]),...
 'weights_error_index',int32(-999999999),...
 'weights_error_lower',double([]),...
 'weights_error_upper',double([]))
-;}},...
+}},...
 'process',{{struct(...
 'nbi_beamlets_group',int32(-999999999),...
 'nbi_energy',struct(...
@@ -304,7 +351,7 @@ struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''))
-;}},...
+}},...
 'profiles_1d',{{struct(...
 'co_passing',struct(...
 'collisions',struct(...
@@ -340,7 +387,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
 'neutral_index',int32(-999999999),...
@@ -384,7 +431,7 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'torque_fast_tor',double([]),...
 'torque_fast_tor_error_index',int32(-999999999),...
 'torque_fast_tor_error_lower',double([]),...
@@ -397,7 +444,7 @@ struct(...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}}),...
+}}),...
 'current_fast_tor',double([]),...
 'current_fast_tor_error_index',int32(-999999999),...
 'current_fast_tor_error_lower',double([]),...
@@ -446,7 +493,7 @@ struct(...
 'particles_error_index',int32(-999999999),...
 'particles_error_lower',double([]),...
 'particles_error_upper',double([]))
-;}},...
+}},...
 'torque_tor_j_radial',double([]),...
 'torque_tor_j_radial_error_index',int32(-999999999),...
 'torque_tor_j_radial_error_lower',double([]),...
@@ -484,7 +531,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
 'neutral_index',int32(-999999999),...
@@ -528,7 +575,7 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'torque_fast_tor',double([]),...
 'torque_fast_tor_error_index',int32(-999999999),...
 'torque_fast_tor_error_lower',double([]),...
@@ -541,7 +588,7 @@ struct(...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}}),...
+}}),...
 'counter_passing',struct(...
 'collisions',struct(...
 'electrons',struct(...
@@ -576,7 +623,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
 'neutral_index',int32(-999999999),...
@@ -620,7 +667,7 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'torque_fast_tor',double([]),...
 'torque_fast_tor_error_index',int32(-999999999),...
 'torque_fast_tor_error_lower',double([]),...
@@ -633,7 +680,7 @@ struct(...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}}),...
+}}),...
 'current_fast_tor',double([]),...
 'current_fast_tor_error_index',int32(-999999999),...
 'current_fast_tor_error_lower',double([]),...
@@ -682,7 +729,7 @@ struct(...
 'particles_error_index',int32(-999999999),...
 'particles_error_lower',double([]),...
 'particles_error_upper',double([]))
-;}},...
+}},...
 'torque_tor_j_radial',double([]),...
 'torque_tor_j_radial_error_index',int32(-999999999),...
 'torque_tor_j_radial_error_lower',double([]),...
@@ -781,7 +828,7 @@ struct(...
 'particles_error_index',int32(-999999999),...
 'particles_error_lower',double([]),...
 'particles_error_upper',double([]))
-;}},...
+}},...
 'thermalisation',struct(...
 'energy',double([]),...
 'energy_error_index',int32(-999999999),...
@@ -834,7 +881,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
 'neutral_index',int32(-999999999),...
@@ -878,7 +925,7 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'torque_fast_tor',double([]),...
 'torque_fast_tor_error_index',int32(-999999999),...
 'torque_fast_tor_error_lower',double([]),...
@@ -891,7 +938,7 @@ struct(...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}}),...
+}}),...
 'current_fast_tor',double([]),...
 'current_fast_tor_error_index',int32(-999999999),...
 'current_fast_tor_error_lower',double([]),...
@@ -940,12 +987,12 @@ struct(...
 'particles_error_index',int32(-999999999),...
 'particles_error_lower',double([]),...
 'particles_error_upper',double([]))
-;}},...
+}},...
 'torque_tor_j_radial',double([]),...
 'torque_tor_j_radial_error_index',int32(-999999999),...
 'torque_tor_j_radial_error_lower',double([]),...
 'torque_tor_j_radial_error_upper',double([])))
-;}},...
+}},...
 'profiles_2d',{{struct(...
 'co_passing',struct(...
 'collisions',struct(...
@@ -981,7 +1028,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
 'neutral_index',int32(-999999999),...
@@ -1025,7 +1072,7 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'torque_fast_tor',double([]),...
 'torque_fast_tor_error_index',int32(-999999999),...
 'torque_fast_tor_error_lower',double([]),...
@@ -1038,7 +1085,7 @@ struct(...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}}),...
+}}),...
 'current_fast_tor',double([]),...
 'current_fast_tor_error_index',int32(-999999999),...
 'current_fast_tor_error_lower',double([]),...
@@ -1104,7 +1151,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
 'neutral_index',int32(-999999999),...
@@ -1148,7 +1195,7 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'torque_fast_tor',double([]),...
 'torque_fast_tor_error_index',int32(-999999999),...
 'torque_fast_tor_error_lower',double([]),...
@@ -1161,7 +1208,7 @@ struct(...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}}),...
+}}),...
 'counter_passing',struct(...
 'collisions',struct(...
 'electrons',struct(...
@@ -1196,7 +1243,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
 'neutral_index',int32(-999999999),...
@@ -1240,7 +1287,7 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'torque_fast_tor',double([]),...
 'torque_fast_tor_error_index',int32(-999999999),...
 'torque_fast_tor_error_lower',double([]),...
@@ -1253,7 +1300,7 @@ struct(...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}}),...
+}}),...
 'current_fast_tor',double([]),...
 'current_fast_tor_error_index',int32(-999999999),...
 'current_fast_tor_error_lower',double([]),...
@@ -1394,7 +1441,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
 'neutral_index',int32(-999999999),...
@@ -1438,7 +1485,7 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'torque_fast_tor',double([]),...
 'torque_fast_tor_error_index',int32(-999999999),...
 'torque_fast_tor_error_lower',double([]),...
@@ -1451,7 +1498,7 @@ struct(...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}}),...
+}}),...
 'current_fast_tor',double([]),...
 'current_fast_tor_error_index',int32(-999999999),...
 'current_fast_tor_error_lower',double([]),...
@@ -1484,7 +1531,7 @@ struct(...
 'torque_tor_j_radial_error_index',int32(-999999999),...
 'torque_tor_j_radial_error_lower',double([]),...
 'torque_tor_j_radial_error_upper',double([])))
-;}},...
+}},...
 'species',struct(...
 'ion',struct(...
 'element',{{struct(...
@@ -1501,7 +1548,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'state',struct(...
 'electron_configuration','',...
@@ -1538,7 +1585,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'state',struct(...
 'electron_configuration','',...
@@ -1563,12 +1610,57 @@ struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''))
-;}})
-;}},...
+}})
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_divertors.m b/matlab/TCV_IMAS/ids_empty/ids_empty_divertors.m
index 0ca55b0d64c7d9a7d2be28293df3a759c0e9dce6..9189279bff29504aeb5dbd1b2ff9aaf2cd66a0c3 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_divertors.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_divertors.m
@@ -1,25 +1,35 @@
 function S = ids_empty_divertors
 % function S = ids_empty_divertors
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
 'repository','',...
 'version',''),...
 'divertor',{{struct(...
+'current_incident',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
 'identifier','',...
 'name','',...
 'particle_flux_recycled_total',struct(...
@@ -83,6 +93,12 @@ struct(...
 'data_error_upper',double([]),...
 'time',double([])),...
 'target',{{struct(...
+'current_incident',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
 'extension_r',double(-9e+40),...
 'extension_r_error_index',int32(-999999999),...
 'extension_r_error_lower',double(-9e+40),...
@@ -98,9 +114,6 @@ struct(...
 'data_error_upper',double([]),...
 'time',double([])),...
 'heat_flux_steady_limit_max',double(-9e+40),...
-'heat_flux_steady_limit_max_error_index',int32(-999999999),...
-'heat_flux_steady_limit_max_error_lower',double(-9e+40),...
-'heat_flux_steady_limit_max_error_upper',double(-9e+40),...
 'identifier','',...
 'name','',...
 'power_black_body',struct(...
@@ -170,13 +183,35 @@ struct(...
 'data_error_upper',double([]),...
 'time',double([])),...
 't_e_target_sputtering_limit_max',double(-9e+40),...
-'t_e_target_sputtering_limit_max_error_index',int32(-999999999),...
-'t_e_target_sputtering_limit_max_error_lower',double(-9e+40),...
-'t_e_target_sputtering_limit_max_error_upper',double(-9e+40),...
 'temperature_limit_max',double(-9e+40),...
-'temperature_limit_max_error_index',int32(-999999999),...
-'temperature_limit_max_error_lower',double(-9e+40),...
-'temperature_limit_max_error_upper',double(-9e+40),...
+'tile',{{struct(...
+'current_incident',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'identifier','',...
+'name','',...
+'shunt_index',int32(-999999999),...
+'surface_area',double(-9e+40),...
+'surface_area_error_index',int32(-999999999),...
+'surface_area_error_lower',double(-9e+40),...
+'surface_area_error_upper',double(-9e+40),...
+'surface_outline',struct(...
+'phi',double([]),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double([]),...
+'phi_error_upper',double([]),...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([])))
+}},...
 'tilt_angle_pol',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
@@ -201,33 +236,78 @@ struct(...
 't_e_target_error_lower',double(-9e+40),...
 't_e_target_error_upper',double(-9e+40),...
 'time',double(-9e+40))
-;}},...
+}},...
 'wetted_area',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])))
-;}},...
+}},...
 'wetted_area',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])))
-;}},...
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
-'poloidal_sol_current',{{struct(...
-'identifier','',...
-'name','')
-;}},...
+'midplane',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_ec_launchers.m b/matlab/TCV_IMAS/ids_empty/ids_empty_ec_launchers.m
index 426542d4346b825c2d9cee0be9275405d127e80f..2c0d2f7b237ae9dcabff3b7403b64a755b098382 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_ec_launchers.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_ec_launchers.m
@@ -1,62 +1,13 @@
 function S = ids_empty_ec_launchers
 % function S = ids_empty_ec_launchers
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
-'code',struct(...
-'commit','',...
-'library',{{struct(...
-'commit','',...
-'name','',...
-'parameters','',...
-'repository','',...
-'version','')
-;}},...
-'name','',...
-'output_flag',int32([]),...
-'parameters','',...
-'repository','',...
-'version',''),...
-'ids_properties',struct(...
-'comment','',...
-'creation_date','',...
-'homogeneous_time',int32(-999999999),...
-'provider','',...
-'source','',...
-'version_put',struct(...
-'access_layer','',...
-'access_layer_language','',...
-'data_dictionary','')),...
-'launcher',{{struct(...
-'beam',struct(...
-'phase',struct(...
-'angle',struct(...
-'data',double([]),...
-'data_error_index',int32(-999999999),...
-'data_error_lower',double([]),...
-'data_error_upper',double([]),...
-'time',double([])),...
-'curvature',struct(...
-'data',double([]),...
-'data_error_index',int32(-999999999),...
-'data_error_lower',double([]),...
-'data_error_upper',double([]),...
-'time',double([]))),...
-'spot',struct(...
-'angle',struct(...
-'data',double([]),...
-'data_error_index',int32(-999999999),...
-'data_error_lower',double([]),...
-'data_error_upper',double([]),...
-'time',double([])),...
-'size',struct(...
-'data',double([]),...
-'data_error_index',int32(-999999999),...
-'data_error_lower',double([]),...
-'data_error_upper',double([]),...
-'time',double([])))),...
+'beam',{{struct(...
 'frequency',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
@@ -73,32 +24,121 @@ struct(...
 'r_error_index',int32(-999999999),...
 'r_error_lower',double([]),...
 'r_error_upper',double([]),...
-'time',double([]),...
+'r_limit_max',double(-9e+40),...
+'r_limit_min',double(-9e+40),...
 'z',double([]),...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double([]),...
 'z_error_upper',double([])),...
-'mode',struct(...
-'data',int32([]),...
-'time',double([])),...
+'mode',int32(-999999999),...
 'name','',...
+'phase',struct(...
+'angle',double([]),...
+'angle_error_index',int32(-999999999),...
+'angle_error_lower',double([]),...
+'angle_error_upper',double([]),...
+'curvature',double([]),...
+'curvature_error_index',int32(-999999999),...
+'curvature_error_lower',double([]),...
+'curvature_error_upper',double([])),...
 'power_launched',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])),...
-'steering_angle_pol',struct(...
-'data',double([]),...
-'data_error_index',int32(-999999999),...
-'data_error_lower',double([]),...
-'data_error_upper',double([]),...
-'time',double([])),...
-'steering_angle_tor',struct(...
-'data',double([]),...
-'data_error_index',int32(-999999999),...
-'data_error_lower',double([]),...
-'data_error_upper',double([]),...
-'time',double([])))
-;}},...
+'spot',struct(...
+'angle',double([]),...
+'angle_error_index',int32(-999999999),...
+'angle_error_lower',double([]),...
+'angle_error_upper',double([]),...
+'size',double([]),...
+'size_error_index',int32(-999999999),...
+'size_error_lower',double([]),...
+'size_error_upper',double([])),...
+'steering_angle_pol',double([]),...
+'steering_angle_pol_error_index',int32(-999999999),...
+'steering_angle_pol_error_lower',double([]),...
+'steering_angle_pol_error_upper',double([]),...
+'steering_angle_tor',double([]),...
+'steering_angle_tor_error_index',int32(-999999999),...
+'steering_angle_tor_error_lower',double([]),...
+'steering_angle_tor_error_upper',double([]),...
+'time',double([]))
+}},...
+'code',struct(...
+'commit','',...
+'description','',...
+'library',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'name','',...
+'output_flag',int32([]),...
+'parameters','',...
+'repository','',...
+'version',''),...
+'ids_properties',struct(...
+'comment','',...
+'creation_date','',...
+'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
+'provider','',...
+'source','',...
+'version_put',struct(...
+'access_layer','',...
+'access_layer_language','',...
+'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_ece.m b/matlab/TCV_IMAS/ids_empty/ids_empty_ece.m
index 628fc490da9825c4b8fe8e1bbfd84c13cf141bac..5f19a5bfa5e35711454aed30aebd6b0847a08994 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_ece.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_ece.m
@@ -1,11 +1,40 @@
 function S = ids_empty_ece
 % function S = ids_empty_ece
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'channel',{{struct(...
+'beam',struct(...
+'phase',struct(...
+'angle',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'curvature',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([]))),...
+'spot',struct(...
+'angle',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'size',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])))),...
 'delta_position_suprathermal',struct(...
 'phi',double([]),...
 'phi_error_index',int32(-999999999),...
@@ -46,6 +75,10 @@ struct(...
 'validity',int32(-999999999),...
 'validity_timed',int32([])),...
 'identifier','',...
+'if_bandwidth',double(-9e+40),...
+'if_bandwidth_error_index',int32(-999999999),...
+'if_bandwidth_error_lower',double(-9e+40),...
+'if_bandwidth_error_upper',double(-9e+40),...
 'name','',...
 'optical_depth',struct(...
 'data',double([]),...
@@ -95,16 +128,18 @@ struct(...
 'validity',int32(-999999999),...
 'validity_timed',int32([])),...
 'time',double([]))
-;}},...
+}},...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -114,12 +149,61 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'line_of_sight',struct(...
 'first_point',struct(...
 'phi',double(-9e+40),...
@@ -147,6 +231,68 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40))),...
+'polarizer',{{struct(...
+'centre',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'polarization_angle',double(-9e+40),...
+'polarization_angle_error_index',int32(-999999999),...
+'polarization_angle_error_lower',double(-9e+40),...
+'polarization_angle_error_upper',double(-9e+40),...
+'radius',double(-9e+40),...
+'radius_error_index',int32(-999999999),...
+'radius_error_lower',double(-9e+40),...
+'radius_error_upper',double(-9e+40),...
+'x1_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x2_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x3_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)))
+}},...
 'psi_normalization',struct(...
 'psi_boundary',double([]),...
 'psi_boundary_error_index',int32(-999999999),...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_edge_profiles.m b/matlab/TCV_IMAS/ids_empty/ids_empty_edge_profiles.m
index 1deb44bc3bb5e14ba6ea20e56522011dae498a19..c1ad9edb801e2692805b44ff8259035efb27884b 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_edge_profiles.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_edge_profiles.m
@@ -1,25 +1,41 @@
 function S = ids_empty_edge_profiles
 % function S = ids_empty_edge_profiles
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
 'repository','',...
 'version',''),...
 'ggd',{{struct(...
+'a_field_parallel',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'e_field',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -47,6 +63,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -62,8 +86,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'electrons',struct(...
 'density',{{struct(...
 'coefficients',double([]),...
@@ -76,7 +108,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'density_fast',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -88,7 +120,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'distribution_function',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -100,7 +132,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'pressure',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -112,7 +144,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'pressure_fast_parallel',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -124,7 +156,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'pressure_fast_perpendicular',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -136,7 +168,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'temperature',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -148,7 +180,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'velocity',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -176,6 +208,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -191,8 +231,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}}),...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}}),...
 'ion',{{struct(...
 'density',{{struct(...
 'coefficients',double([]),...
@@ -205,7 +253,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'density_fast',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -217,7 +265,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'element',{{struct(...
 'a',double(-9e+40),...
 'a_error_index',int32(-999999999),...
@@ -232,7 +280,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'energy_density_kinetic',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -244,7 +292,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
 'neutral_index',int32(-999999999),...
@@ -259,7 +307,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'pressure_fast_parallel',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -271,7 +319,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'pressure_fast_perpendicular',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -283,7 +331,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'state',{{struct(...
 'density',{{struct(...
 'coefficients',double([]),...
@@ -296,7 +344,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'density_fast',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -308,7 +356,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'distribution_function',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -320,7 +368,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'electron_configuration','',...
 'energy_density_kinetic',{{struct(...
 'coefficients',double([]),...
@@ -333,7 +381,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'ionisation_potential',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -345,7 +393,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'label','',...
 'pressure',{{struct(...
 'coefficients',double([]),...
@@ -358,7 +406,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'pressure_fast_parallel',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -370,7 +418,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'pressure_fast_perpendicular',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -382,7 +430,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'temperature',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -394,7 +442,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'velocity',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -422,6 +470,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -437,8 +493,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'velocity_diamagnetic',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -466,6 +530,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -481,8 +553,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'velocity_exb',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -510,6 +590,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -525,8 +613,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'vibrational_level',double(-9e+40),...
 'vibrational_level_error_index',int32(-999999999),...
 'vibrational_level_error_lower',double(-9e+40),...
@@ -543,7 +639,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'z_max',double(-9e+40),...
 'z_max_error_index',int32(-999999999),...
 'z_max_error_lower',double(-9e+40),...
@@ -563,8 +659,8 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}})
-;}},...
+}})
+}},...
 'temperature',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -576,7 +672,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'velocity',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -604,6 +700,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -619,13 +723,21 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'z_ion',double(-9e+40),...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}},...
+}},...
 'j_anomalous',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -653,6 +765,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -668,8 +788,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'j_diamagnetic',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -697,6 +825,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -712,8 +848,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'j_heat_viscosity',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -741,6 +885,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -756,8 +908,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'j_inertial',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -785,6 +945,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -800,8 +968,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'j_ion_neutral_friction',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -829,6 +1005,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -844,8 +1028,28 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
+'j_parallel',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'j_parallel_viscosity',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -873,6 +1077,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -888,8 +1100,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'j_perpendicular_viscosity',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -917,6 +1137,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -932,8 +1160,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'j_pfirsch_schlueter',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -961,6 +1197,74 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'radial',double([]),...
+'radial_coefficients',double([]),...
+'radial_coefficients_error_index',int32(-999999999),...
+'radial_coefficients_error_lower',double([]),...
+'radial_coefficients_error_upper',double([]),...
+'radial_error_index',int32(-999999999),...
+'radial_error_lower',double([]),...
+'radial_error_upper',double([]),...
+'toroidal',double([]),...
+'toroidal_coefficients',double([]),...
+'toroidal_coefficients_error_index',int32(-999999999),...
+'toroidal_coefficients_error_lower',double([]),...
+'toroidal_coefficients_error_upper',double([]),...
+'toroidal_error_index',int32(-999999999),...
+'toroidal_error_lower',double([]),...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
+'j_total',{{struct(...
+'diamagnetic',double([]),...
+'diamagnetic_coefficients',double([]),...
+'diamagnetic_coefficients_error_index',int32(-999999999),...
+'diamagnetic_coefficients_error_lower',double([]),...
+'diamagnetic_coefficients_error_upper',double([]),...
+'diamagnetic_error_index',int32(-999999999),...
+'diamagnetic_error_lower',double([]),...
+'diamagnetic_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'parallel',double([]),...
+'parallel_coefficients',double([]),...
+'parallel_coefficients_error_index',int32(-999999999),...
+'parallel_coefficients_error_lower',double([]),...
+'parallel_coefficients_error_upper',double([]),...
+'parallel_error_index',int32(-999999999),...
+'parallel_error_lower',double([]),...
+'parallel_error_upper',double([]),...
+'poloidal',double([]),...
+'poloidal_coefficients',double([]),...
+'poloidal_coefficients_error_index',int32(-999999999),...
+'poloidal_coefficients_error_lower',double([]),...
+'poloidal_coefficients_error_upper',double([]),...
+'poloidal_error_index',int32(-999999999),...
+'poloidal_error_lower',double([]),...
+'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -976,8 +1280,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'n_i_total_over_n_e',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -989,7 +1301,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'neutral',{{struct(...
 'density',{{struct(...
 'coefficients',double([]),...
@@ -1002,7 +1314,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'density_fast',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1014,7 +1326,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'element',{{struct(...
 'a',double(-9e+40),...
 'a_error_index',int32(-999999999),...
@@ -1029,7 +1341,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'energy_density_kinetic',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1041,7 +1353,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'ion_index',int32(-999999999),...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
@@ -1056,7 +1368,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'pressure_fast_parallel',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1068,7 +1380,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'pressure_fast_perpendicular',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1080,7 +1392,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'state',{{struct(...
 'density',{{struct(...
 'coefficients',double([]),...
@@ -1093,7 +1405,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'density_fast',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1105,7 +1417,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'distribution_function',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1117,7 +1429,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'electron_configuration','',...
 'energy_density_kinetic',{{struct(...
 'coefficients',double([]),...
@@ -1130,7 +1442,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'label','',...
 'neutral_type',struct(...
 'description','',...
@@ -1147,7 +1459,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'pressure_fast_parallel',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1159,7 +1471,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'pressure_fast_perpendicular',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1171,7 +1483,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'temperature',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1183,7 +1495,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'velocity',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -1211,6 +1523,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -1226,8 +1546,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'velocity_diamagnetic',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -1255,6 +1583,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -1270,8 +1606,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'velocity_exb',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -1299,6 +1643,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -1314,14 +1666,22 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'vibrational_level',double(-9e+40),...
 'vibrational_level_error_index',int32(-999999999),...
 'vibrational_level_error_lower',double(-9e+40),...
 'vibrational_level_error_upper',double(-9e+40),...
 'vibrational_mode','')
-;}},...
+}},...
 'temperature',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1333,7 +1693,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'velocity',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -1361,6 +1721,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -1376,9 +1744,17 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}})
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}})
+}},...
 'phi_potential',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1390,7 +1766,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'pressure_parallel',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1402,7 +1778,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'pressure_perpendicular',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1414,7 +1790,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'pressure_thermal',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1426,7 +1802,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 't_i_average',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1438,7 +1814,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'time',double(-9e+40),...
 'zeff',{{struct(...
 'coefficients',double([]),...
@@ -1451,8 +1827,8 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}})
-;}},...
+}})
+}},...
 'ggd_fast',{{struct(...
 'electrons',struct(...
 'density',{{struct(...
@@ -1462,7 +1838,7 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double(-9e+40),...
 'value_error_upper',double(-9e+40))
-;}},...
+}},...
 'temperature',{{struct(...
 'grid_index',int32(-999999999),...
 'grid_subset_index',int32(-999999999),...
@@ -1470,7 +1846,7 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double(-9e+40),...
 'value_error_upper',double(-9e+40))
-;}}),...
+}}),...
 'energy_thermal',{{struct(...
 'grid_index',int32(-999999999),...
 'grid_subset_index',int32(-999999999),...
@@ -1478,7 +1854,7 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double(-9e+40),...
 'value_error_upper',double(-9e+40))
-;}},...
+}},...
 'ion',{{struct(...
 'content',{{struct(...
 'grid_index',int32(-999999999),...
@@ -1487,7 +1863,7 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double(-9e+40),...
 'value_error_upper',double(-9e+40))
-;}},...
+}},...
 'density',{{struct(...
 'grid_index',int32(-999999999),...
 'grid_subset_index',int32(-999999999),...
@@ -1495,7 +1871,7 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double(-9e+40),...
 'value_error_upper',double(-9e+40))
-;}},...
+}},...
 'element',{{struct(...
 'a',double(-9e+40),...
 'a_error_index',int32(-999999999),...
@@ -1510,7 +1886,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'neutral_index',int32(-999999999),...
 'temperature',{{struct(...
@@ -1520,14 +1896,14 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double(-9e+40),...
 'value_error_upper',double(-9e+40))
-;}},...
+}},...
 'z_ion',double(-9e+40),...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}},...
+}},...
 'time',double(-9e+40))
-;}},...
+}},...
 'grid_ggd',{{struct(...
 'grid_subset',{{struct(...
 'base',{{struct(...
@@ -1543,15 +1919,15 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([]))
-;}},...
+}},...
 'dimension',int32(-999999999),...
 'element',{{struct(...
 'object',{{struct(...
 'dimension',int32(-999999999),...
 'index',int32(-999999999),...
 'space',int32(-999999999))
-;}})
-;}},...
+}})
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -1569,11 +1945,12 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([])))
-;}},...
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
+'path','',...
 'space',{{struct(...
 'coordinates_type',int32([]),...
 'geometry_type',struct(...
@@ -1585,12 +1962,20 @@ struct(...
 'index',int32(-999999999),...
 'name',''),...
 'objects_per_dimension',{{struct(...
+'geometry_content',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
 'object',{{struct(...
 'boundary',{{struct(...
 'index',int32(-999999999),...
 'neighbours',int32([]))
-;}},...
+}},...
 'geometry',double([]),...
+'geometry_2d',double([]),...
+'geometry_2d_error_index',int32(-999999999),...
+'geometry_2d_error_lower',double([]),...
+'geometry_2d_error_upper',double([]),...
 'geometry_error_index',int32(-999999999),...
 'geometry_error_lower',double([]),...
 'geometry_error_upper',double([]),...
@@ -1599,21 +1984,70 @@ struct(...
 'measure_error_lower',double(-9e+40),...
 'measure_error_upper',double(-9e+40),...
 'nodes',int32([]))
-;}})
-;}})
-;}},...
+}})
+}})
+}},...
 'time',double(-9e+40))
-;}},...
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'midplane',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
 'profiles_1d',{{struct(...
 'conductivity_parallel',double([]),...
 'conductivity_parallel_error_index',int32(-999999999),...
@@ -1897,7 +2331,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
 'neutral_index',int32(-999999999),...
@@ -2054,7 +2488,7 @@ struct(...
 'z_square_average_error_index',int32(-999999999),...
 'z_square_average_error_lower',double(-9e+40),...
 'z_square_average_error_upper',double(-9e+40))
-;}},...
+}},...
 'temperature',double([]),...
 'temperature_error_index',int32(-999999999),...
 'temperature_error_lower',double([]),...
@@ -2141,7 +2575,7 @@ struct(...
 'z_ion_square_1d_error_index',int32(-999999999),...
 'z_ion_square_1d_error_lower',double([]),...
 'z_ion_square_1d_error_upper',double([]))
-;}},...
+}},...
 'j_bootstrap',double([]),...
 'j_bootstrap_error_index',int32(-999999999),...
 'j_bootstrap_error_lower',double([]),...
@@ -2205,7 +2639,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'ion_index',int32(-999999999),...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
@@ -2290,7 +2724,7 @@ struct(...
 'vibrational_level_error_lower',double(-9e+40),...
 'vibrational_level_error_upper',double(-9e+40),...
 'vibrational_mode','')
-;}},...
+}},...
 'temperature',double([]),...
 'temperature_error_index',int32(-999999999),...
 'temperature_error_lower',double([]),...
@@ -2316,7 +2750,7 @@ struct(...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
 'toroidal_error_upper',double([])))
-;}},...
+}},...
 'phi_potential',double([]),...
 'phi_potential_error_index',int32(-999999999),...
 'phi_potential_error_lower',double([]),...
@@ -2434,7 +2868,7 @@ struct(...
 'weight_error_index',int32(-999999999),...
 'weight_error_lower',double([]),...
 'weight_error_upper',double([])))
-;}},...
+}},...
 'time',double([]),...
 'vacuum_toroidal_field',struct(...
 'b0',double([]),...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_edge_sources.m b/matlab/TCV_IMAS/ids_empty/ids_empty_edge_sources.m
index 2fcfba584f07cebf6fc29c1e1bae0d2deb590ea0..b5cf507cafe070ab5d60de3946a06267ef4fa12a 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_edge_sources.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_edge_sources.m
@@ -1,19 +1,23 @@
 function S = ids_empty_edge_sources
 % function S = ids_empty_edge_sources
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -34,15 +38,15 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([]))
-;}},...
+}},...
 'dimension',int32(-999999999),...
 'element',{{struct(...
 'object',{{struct(...
 'dimension',int32(-999999999),...
 'index',int32(-999999999),...
 'space',int32(-999999999))
-;}})
-;}},...
+}})
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -60,11 +64,12 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([])))
-;}},...
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
+'path','',...
 'space',{{struct(...
 'coordinates_type',int32([]),...
 'geometry_type',struct(...
@@ -76,12 +81,20 @@ struct(...
 'index',int32(-999999999),...
 'name',''),...
 'objects_per_dimension',{{struct(...
+'geometry_content',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
 'object',{{struct(...
 'boundary',{{struct(...
 'index',int32(-999999999),...
 'neighbours',int32([]))
-;}},...
+}},...
 'geometry',double([]),...
+'geometry_2d',double([]),...
+'geometry_2d_error_index',int32(-999999999),...
+'geometry_2d_error_lower',double([]),...
+'geometry_2d_error_upper',double([]),...
 'geometry_error_index',int32(-999999999),...
 'geometry_error_lower',double([]),...
 'geometry_error_upper',double([]),...
@@ -90,21 +103,70 @@ struct(...
 'measure_error_lower',double(-9e+40),...
 'measure_error_upper',double(-9e+40),...
 'nodes',int32([]))
-;}})
-;}})
-;}},...
+}})
+}})
+}},...
 'time',double(-9e+40))
-;}},...
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'midplane',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
 'source',{{struct(...
 'ggd',{{struct(...
 'current',{{struct(...
@@ -118,7 +180,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'electrons',struct(...
 'energy',{{struct(...
 'coefficients',double([]),...
@@ -131,7 +193,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'particles',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -143,7 +205,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}}),...
+}}),...
 'ion',{{struct(...
 'element',{{struct(...
 'a',double(-9e+40),...
@@ -159,7 +221,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'energy',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -171,7 +233,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'label','',...
 'momentum',{{struct(...
 'diamagnetic',double([]),...
@@ -200,6 +262,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -215,8 +285,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'multiple_states_flag',int32(-999999999),...
 'neutral_index',int32(-999999999),...
 'particles',{{struct(...
@@ -230,7 +308,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'state',{{struct(...
 'electron_configuration','',...
 'energy',{{struct(...
@@ -244,7 +322,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'label','',...
 'momentum',{{struct(...
 'diamagnetic',double([]),...
@@ -273,6 +351,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -288,8 +374,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'particles',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -301,7 +395,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'vibrational_level',double(-9e+40),...
 'vibrational_level_error_index',int32(-999999999),...
 'vibrational_level_error_lower',double(-9e+40),...
@@ -315,12 +409,12 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'z_ion',double(-9e+40),...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}},...
+}},...
 'momentum',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -348,6 +442,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -363,8 +465,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'neutral',{{struct(...
 'element',{{struct(...
 'a',double(-9e+40),...
@@ -380,7 +490,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'energy',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -392,7 +502,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'ion_index',int32(-999999999),...
 'label','',...
 'momentum',{{struct(...
@@ -422,6 +532,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -437,8 +555,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'multiple_states_flag',int32(-999999999),...
 'particles',{{struct(...
 'coefficients',double([]),...
@@ -451,7 +577,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'state',{{struct(...
 'electron_configuration','',...
 'energy',{{struct(...
@@ -465,7 +591,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'label','',...
 'momentum',{{struct(...
 'diamagnetic',double([]),...
@@ -494,6 +620,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -509,8 +643,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'neutral_type',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -526,14 +668,14 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'vibrational_level',double(-9e+40),...
 'vibrational_level_error_index',int32(-999999999),...
 'vibrational_level_error_lower',double(-9e+40),...
 'vibrational_level_error_upper',double(-9e+40),...
 'vibrational_mode','')
-;}})
-;}},...
+}})
+}},...
 'time',double(-9e+40),...
 'total_ion_energy',{{struct(...
 'coefficients',double([]),...
@@ -546,8 +688,8 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}})
-;}},...
+}})
+}},...
 'ggd_fast',{{struct(...
 'ion',{{struct(...
 'element',{{struct(...
@@ -564,7 +706,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'neutral_index',int32(-999999999),...
 'power',{{struct(...
@@ -574,14 +716,14 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double(-9e+40),...
 'value_error_upper',double(-9e+40))
-;}},...
+}},...
 'z_ion',double(-9e+40),...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}},...
+}},...
 'time',double(-9e+40))
-;}},...
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -602,7 +744,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'state',struct(...
 'electron_configuration','',...
@@ -639,7 +781,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'state',struct(...
 'electron_configuration','',...
@@ -657,5 +799,5 @@ struct(...
 'description','',...
 'index',int32(-999999999),...
 'name','')))
-;}},...
+}},...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_edge_transport.m b/matlab/TCV_IMAS/ids_empty/ids_empty_edge_transport.m
index 0fa1614ab92d8c86110457f23ee4d0bfcb979653..48ce5d1d602a0cd7b30e3ae84ce77b51aa23103d 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_edge_transport.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_edge_transport.m
@@ -1,19 +1,23 @@
 function S = ids_empty_edge_transport
 % function S = ids_empty_edge_transport
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -34,15 +38,15 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([]))
-;}},...
+}},...
 'dimension',int32(-999999999),...
 'element',{{struct(...
 'object',{{struct(...
 'dimension',int32(-999999999),...
 'index',int32(-999999999),...
 'space',int32(-999999999))
-;}})
-;}},...
+}})
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -60,11 +64,12 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([])))
-;}},...
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
+'path','',...
 'space',{{struct(...
 'coordinates_type',int32([]),...
 'geometry_type',struct(...
@@ -76,12 +81,20 @@ struct(...
 'index',int32(-999999999),...
 'name',''),...
 'objects_per_dimension',{{struct(...
+'geometry_content',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
 'object',{{struct(...
 'boundary',{{struct(...
 'index',int32(-999999999),...
 'neighbours',int32([]))
-;}},...
+}},...
 'geometry',double([]),...
+'geometry_2d',double([]),...
+'geometry_2d_error_index',int32(-999999999),...
+'geometry_2d_error_lower',double([]),...
+'geometry_2d_error_upper',double([]),...
 'geometry_error_index',int32(-999999999),...
 'geometry_error_lower',double([]),...
 'geometry_error_upper',double([]),...
@@ -90,24 +103,74 @@ struct(...
 'measure_error_lower',double(-9e+40),...
 'measure_error_upper',double(-9e+40),...
 'nodes',int32([]))
-;}})
-;}})
-;}},...
+}})
+}})
+}},...
 'time',double(-9e+40))
-;}},...
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'midplane',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
 'model',{{struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'name','',...
 'output_flag',struct(...
 'data',int32([]),...
@@ -147,6 +210,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -162,8 +233,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'electrons',struct(...
 'energy',struct(...
 'd',{{struct(...
@@ -177,7 +256,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
+'d_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'d_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'flux',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -189,7 +292,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'flux_limiter',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -201,7 +304,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
+'flux_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'flux_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'v',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -213,7 +340,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}}),...
+}},...
+'v_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'v_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}}),...
 'particles',struct(...
 'd',{{struct(...
 'coefficients',double([]),...
@@ -226,7 +377,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
+'d_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'d_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'flux',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -238,7 +413,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'flux_limiter',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -250,7 +425,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
+'flux_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'flux_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'v',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -262,7 +461,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}})),...
+}},...
+'v_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'v_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}})),...
 'ion',{{struct(...
 'element',{{struct(...
 'a',double(-9e+40),...
@@ -278,7 +501,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'energy',struct(...
 'd',{{struct(...
 'coefficients',double([]),...
@@ -291,7 +514,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
+'d_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'d_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'flux',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -303,7 +550,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'flux_limiter',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -315,7 +562,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
+'flux_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'flux_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'v',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -327,7 +598,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}}),...
+}},...
+'v_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'v_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}}),...
 'label','',...
 'momentum',struct(...
 'd',{{struct(...
@@ -357,6 +652,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -372,8 +675,40 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
+'d_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'d_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'flux',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -401,6 +736,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -416,8 +759,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'flux_limiter',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -445,6 +796,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -460,24 +819,56 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
-'v',{{struct(...
-'diamagnetic',double([]),...
-'diamagnetic_coefficients',double([]),...
-'diamagnetic_coefficients_error_index',int32(-999999999),...
-'diamagnetic_coefficients_error_lower',double([]),...
-'diamagnetic_coefficients_error_upper',double([]),...
-'diamagnetic_error_index',int32(-999999999),...
-'diamagnetic_error_lower',double([]),...
-'diamagnetic_error_upper',double([]),...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
+'flux_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
 'grid_index',int32(-999999999),...
 'grid_subset_index',int32(-999999999),...
-'parallel',double([]),...
-'parallel_coefficients',double([]),...
-'parallel_coefficients_error_index',int32(-999999999),...
-'parallel_coefficients_error_lower',double([]),...
-'parallel_coefficients_error_upper',double([]),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'flux_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'v',{{struct(...
+'diamagnetic',double([]),...
+'diamagnetic_coefficients',double([]),...
+'diamagnetic_coefficients_error_index',int32(-999999999),...
+'diamagnetic_coefficients_error_lower',double([]),...
+'diamagnetic_coefficients_error_upper',double([]),...
+'diamagnetic_error_index',int32(-999999999),...
+'diamagnetic_error_lower',double([]),...
+'diamagnetic_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'parallel',double([]),...
+'parallel_coefficients',double([]),...
+'parallel_coefficients_error_index',int32(-999999999),...
+'parallel_coefficients_error_lower',double([]),...
+'parallel_coefficients_error_upper',double([]),...
 'parallel_error_index',int32(-999999999),...
 'parallel_error_lower',double([]),...
 'parallel_error_upper',double([]),...
@@ -489,6 +880,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -504,8 +903,40 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}}),...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
+'v_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'v_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}}),...
 'multiple_states_flag',int32(-999999999),...
 'neutral_index',int32(-999999999),...
 'particles',struct(...
@@ -520,7 +951,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
+'d_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'d_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'flux',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -532,7 +987,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'flux_limiter',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -544,7 +999,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
+'flux_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'flux_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'v',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -556,7 +1035,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}}),...
+}},...
+'v_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'v_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}}),...
 'state',{{struct(...
 'electron_configuration','',...
 'energy',struct(...
@@ -571,7 +1074,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
+'d_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'d_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'flux',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -583,7 +1110,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'flux_limiter',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -595,7 +1122,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
+'flux_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'flux_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'v',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -607,7 +1158,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}}),...
+}},...
+'v_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'v_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}}),...
 'label','',...
 'momentum',struct(...
 'd',{{struct(...
@@ -637,6 +1212,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -652,8 +1235,40 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
+'d_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'d_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'flux',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -681,6 +1296,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -696,8 +1319,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'flux_limiter',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -725,6 +1356,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -740,8 +1379,40 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
+'flux_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'flux_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'v',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -769,6 +1440,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -784,8 +1463,40 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}}),...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
+'v_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'v_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}}),...
 'particles',struct(...
 'd',{{struct(...
 'coefficients',double([]),...
@@ -798,8 +1509,56 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
-'flux',{{struct(...
+}},...
+'d_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'d_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'flux',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'flux_limiter',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'flux_pol',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
 'coefficients_error_lower',double([]),...
@@ -810,8 +1569,8 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
-'flux_limiter',{{struct(...
+}},...
+'flux_radial',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
 'coefficients_error_lower',double([]),...
@@ -822,7 +1581,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'v',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -834,7 +1593,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}}),...
+}},...
+'v_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'v_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}}),...
 'vibrational_level',double(-9e+40),...
 'vibrational_level_error_index',int32(-999999999),...
 'vibrational_level_error_lower',double(-9e+40),...
@@ -848,12 +1631,12 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'z_ion',double(-9e+40),...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}},...
+}},...
 'momentum',struct(...
 'd',{{struct(...
 'diamagnetic',double([]),...
@@ -882,6 +1665,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -897,8 +1688,40 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
+'d_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'d_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'flux',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -926,6 +1749,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -941,8 +1772,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'flux_limiter',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -970,6 +1809,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -985,8 +1832,40 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
+'flux_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'flux_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'v',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -1014,6 +1893,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -1029,8 +1916,40 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}}),...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
+'v_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'v_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}}),...
 'neutral',{{struct(...
 'element',{{struct(...
 'a',double(-9e+40),...
@@ -1046,7 +1965,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'energy',struct(...
 'd',{{struct(...
 'coefficients',double([]),...
@@ -1059,7 +1978,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
+'d_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'d_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'flux',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1071,7 +2014,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'flux_limiter',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1083,7 +2026,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
+'flux_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'flux_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'v',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1095,7 +2062,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}}),...
+}},...
+'v_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'v_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}}),...
 'ion_index',int32(-999999999),...
 'label','',...
 'momentum',struct(...
@@ -1126,6 +2117,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -1141,8 +2140,40 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
+'d_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'d_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'flux',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -1170,6 +2201,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -1185,8 +2224,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'flux_limiter',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -1214,6 +2261,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -1229,8 +2284,40 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
+'flux_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'flux_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'v',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -1258,6 +2345,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -1273,8 +2368,40 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}}),...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
+'v_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'v_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}}),...
 'multiple_states_flag',int32(-999999999),...
 'particles',struct(...
 'd',{{struct(...
@@ -1288,8 +2415,68 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
-'flux',{{struct(...
+}},...
+'d_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'d_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'flux',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'flux_limiter',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'flux_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'flux_radial',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
 'coefficients_error_lower',double([]),...
@@ -1300,8 +2487,8 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
-'flux_limiter',{{struct(...
+}},...
+'v',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
 'coefficients_error_lower',double([]),...
@@ -1312,8 +2499,20 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
-'v',{{struct(...
+}},...
+'v_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'v_radial',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
 'coefficients_error_lower',double([]),...
@@ -1324,7 +2523,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}}),...
+}}),...
 'state',{{struct(...
 'electron_configuration','',...
 'energy',struct(...
@@ -1339,7 +2538,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
+'d_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'d_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'flux',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1351,7 +2574,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'flux_limiter',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1363,7 +2586,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
+'flux_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'flux_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'v',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1375,7 +2622,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}}),...
+}},...
+'v_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'v_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}}),...
 'label','',...
 'momentum',struct(...
 'd',{{struct(...
@@ -1405,6 +2676,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -1420,8 +2699,40 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
+'d_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'d_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'flux',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -1449,6 +2760,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -1464,8 +2783,16 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
 'flux_limiter',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -1493,6 +2820,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -1508,8 +2843,40 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}},...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
+'flux_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'flux_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'v',{{struct(...
 'diamagnetic',double([]),...
 'diamagnetic_coefficients',double([]),...
@@ -1537,6 +2904,14 @@ struct(...
 'poloidal_error_index',int32(-999999999),...
 'poloidal_error_lower',double([]),...
 'poloidal_error_upper',double([]),...
+'r',double([]),...
+'r_coefficients',double([]),...
+'r_coefficients_error_index',int32(-999999999),...
+'r_coefficients_error_lower',double([]),...
+'r_coefficients_error_upper',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'radial',double([]),...
 'radial_coefficients',double([]),...
 'radial_coefficients_error_index',int32(-999999999),...
@@ -1552,8 +2927,40 @@ struct(...
 'toroidal_coefficients_error_upper',double([]),...
 'toroidal_error_index',int32(-999999999),...
 'toroidal_error_lower',double([]),...
-'toroidal_error_upper',double([]))
-;}}),...
+'toroidal_error_upper',double([]),...
+'z',double([]),...
+'z_coefficients',double([]),...
+'z_coefficients_error_index',int32(-999999999),...
+'z_coefficients_error_lower',double([]),...
+'z_coefficients_error_upper',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))
+}},...
+'v_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'v_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}}),...
 'neutral_type',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -1570,7 +2977,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
+'d_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'d_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'flux',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1582,7 +3013,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'flux_limiter',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1594,7 +3025,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
+'flux_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'flux_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'v',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1606,14 +3061,38 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}}),...
+}},...
+'v_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'v_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}}),...
 'vibrational_level',double(-9e+40),...
 'vibrational_level_error_index',int32(-999999999),...
 'vibrational_level_error_lower',double(-9e+40),...
 'vibrational_level_error_upper',double(-9e+40),...
 'vibrational_mode','')
-;}})
-;}},...
+}})
+}},...
 'time',double(-9e+40),...
 'total_ion_energy',struct(...
 'd',{{struct(...
@@ -1627,7 +3106,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
+'d_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'d_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'flux',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1639,7 +3142,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'flux_limiter',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1651,7 +3154,31 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
+'flux_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'flux_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'v',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1663,8 +3190,32 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}}))
-;}},...
+}},...
+'v_pol',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'v_radial',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}}))
+}},...
 'ggd_fast',{{struct(...
 'electrons',struct(...
 'particle_flux_integrated',{{struct(...
@@ -1674,7 +3225,7 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double(-9e+40),...
 'value_error_upper',double(-9e+40))
-;}},...
+}},...
 'power',{{struct(...
 'grid_index',int32(-999999999),...
 'grid_subset_index',int32(-999999999),...
@@ -1682,7 +3233,7 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double(-9e+40),...
 'value_error_upper',double(-9e+40))
-;}}),...
+}}),...
 'energy_flux_max',{{struct(...
 'grid_index',int32(-999999999),...
 'grid_subset_index',int32(-999999999),...
@@ -1690,7 +3241,7 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double(-9e+40),...
 'value_error_upper',double(-9e+40))
-;}},...
+}},...
 'ion',{{struct(...
 'element',{{struct(...
 'a',double(-9e+40),...
@@ -1706,7 +3257,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'neutral_index',int32(-999999999),...
 'particle_flux_integrated',{{struct(...
@@ -1716,12 +3267,12 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double(-9e+40),...
 'value_error_upper',double(-9e+40))
-;}},...
+}},...
 'z_ion',double(-9e+40),...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}},...
+}},...
 'neutral',{{struct(...
 'element',{{struct(...
 'a',double(-9e+40),...
@@ -1737,7 +3288,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'ion_index',int32(-999999999),...
 'label','',...
 'particle_flux_integrated',{{struct(...
@@ -1747,8 +3298,8 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double(-9e+40),...
 'value_error_upper',double(-9e+40))
-;}})
-;}},...
+}})
+}},...
 'power',{{struct(...
 'grid_index',int32(-999999999),...
 'grid_subset_index',int32(-999999999),...
@@ -1756,7 +3307,7 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double(-9e+40),...
 'value_error_upper',double(-9e+40))
-;}},...
+}},...
 'power_ion_total',{{struct(...
 'grid_index',int32(-999999999),...
 'grid_subset_index',int32(-999999999),...
@@ -1764,12 +3315,12 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double(-9e+40),...
 'value_error_upper',double(-9e+40))
-;}},...
+}},...
 'time',double(-9e+40))
-;}},...
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''))
-;}},...
+}},...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_em_coupling.m b/matlab/TCV_IMAS/ids_empty/ids_empty_em_coupling.m
index 327d1f7639ec5dfdf92db990337b0b1dfb5f60fc..e40e66f31818eae71bc6a92247a119f5bb4abf55 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_em_coupling.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_em_coupling.m
@@ -1,20 +1,24 @@
 function S = ids_empty_em_coupling
 % function S = ids_empty_em_coupling
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'active_coils',{{}},...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -38,6 +42,51 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_equilibrium.m b/matlab/TCV_IMAS/ids_empty/ids_empty_equilibrium.m
index 46541df6edc30b4042e84ec4717c987deda696ed..3e6e949fcde10e08ec0e4099b17e64782404c87a 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_equilibrium.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_equilibrium.m
@@ -1,19 +1,23 @@
 function S = ids_empty_equilibrium
 % function S = ids_empty_equilibrium
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -35,15 +39,15 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([]))
-;}},...
+}},...
 'dimension',int32(-999999999),...
 'element',{{struct(...
 'object',{{struct(...
 'dimension',int32(-999999999),...
 'index',int32(-999999999),...
 'space',int32(-999999999))
-;}})
-;}},...
+}})
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -61,11 +65,12 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([])))
-;}},...
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
+'path','',...
 'space',{{struct(...
 'coordinates_type',int32([]),...
 'geometry_type',struct(...
@@ -77,12 +82,20 @@ struct(...
 'index',int32(-999999999),...
 'name',''),...
 'objects_per_dimension',{{struct(...
+'geometry_content',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
 'object',{{struct(...
 'boundary',{{struct(...
 'index',int32(-999999999),...
 'neighbours',int32([]))
-;}},...
+}},...
 'geometry',double([]),...
+'geometry_2d',double([]),...
+'geometry_2d_error_index',int32(-999999999),...
+'geometry_2d_error_lower',double([]),...
+'geometry_2d_error_upper',double([]),...
 'geometry_error_index',int32(-999999999),...
 'geometry_error_lower',double([]),...
 'geometry_error_upper',double([]),...
@@ -91,16 +104,61 @@ struct(...
 'measure_error_lower',double(-9e+40),...
 'measure_error_upper',double(-9e+40),...
 'nodes',int32([]))
-;}})
-;}})
-;}})
-;}},...
+}})
+}})
+}})
+}},...
 'time',double(-9e+40))
-;}},...
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
@@ -199,7 +257,7 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40))
-;}},...
+}},...
 'triangularity',double(-9e+40),...
 'triangularity_error_index',int32(-999999999),...
 'triangularity_error_lower',double(-9e+40),...
@@ -222,7 +280,45 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40))
-;}}),...
+}}),...
+'boundary_secondary_separatrix',struct(...
+'distance_inner_outer',double(-9e+40),...
+'distance_inner_outer_error_index',int32(-999999999),...
+'distance_inner_outer_error_lower',double(-9e+40),...
+'distance_inner_outer_error_upper',double(-9e+40),...
+'outline',struct(...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([])),...
+'psi',double(-9e+40),...
+'psi_error_index',int32(-999999999),...
+'psi_error_lower',double(-9e+40),...
+'psi_error_upper',double(-9e+40),...
+'strike_point',{{struct(...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40))
+}},...
+'x_point',{{struct(...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40))
+}}),...
 'boundary_separatrix',struct(...
 'active_limiter_point',struct(...
 'r',double(-9e+40),...
@@ -233,6 +329,28 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40)),...
+'closest_wall_point',struct(...
+'distance',double(-9e+40),...
+'distance_error_index',int32(-999999999),...
+'distance_error_lower',double(-9e+40),...
+'distance_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'dr_dz_zero_point',struct(...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
 'elongation',double(-9e+40),...
 'elongation_error_index',int32(-999999999),...
 'elongation_error_lower',double(-9e+40),...
@@ -264,7 +382,7 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40))
-;}},...
+}},...
 'geometric_axis',struct(...
 'r',double(-9e+40),...
 'r_error_index',int32(-999999999),...
@@ -316,15 +434,27 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40))
-;}},...
+}},...
 'triangularity',double(-9e+40),...
 'triangularity_error_index',int32(-999999999),...
 'triangularity_error_lower',double(-9e+40),...
 'triangularity_error_upper',double(-9e+40),...
+'triangularity_inner',double(-9e+40),...
+'triangularity_inner_error_index',int32(-999999999),...
+'triangularity_inner_error_lower',double(-9e+40),...
+'triangularity_inner_error_upper',double(-9e+40),...
 'triangularity_lower',double(-9e+40),...
 'triangularity_lower_error_index',int32(-999999999),...
 'triangularity_lower_error_lower',double(-9e+40),...
 'triangularity_lower_error_upper',double(-9e+40),...
+'triangularity_minor',double(-9e+40),...
+'triangularity_minor_error_index',int32(-999999999),...
+'triangularity_minor_error_lower',double(-9e+40),...
+'triangularity_minor_error_upper',double(-9e+40),...
+'triangularity_outer',double(-9e+40),...
+'triangularity_outer_error_index',int32(-999999999),...
+'triangularity_outer_error_lower',double(-9e+40),...
+'triangularity_outer_error_upper',double(-9e+40),...
 'triangularity_upper',double(-9e+40),...
 'triangularity_upper_error_index',int32(-999999999),...
 'triangularity_upper_error_lower',double(-9e+40),...
@@ -339,7 +469,7 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40))
-;}}),...
+}}),...
 'constraints',struct(...
 'b_field_tor_vacuum_r',struct(...
 'chi_squared',double(-9e+40),...
@@ -387,7 +517,7 @@ struct(...
 'weight_error_index',int32(-999999999),...
 'weight_error_lower',double(-9e+40),...
 'weight_error_upper',double(-9e+40))
-;}},...
+}},...
 'diamagnetic_flux',struct(...
 'chi_squared',double(-9e+40),...
 'chi_squared_error_index',int32(-999999999),...
@@ -434,7 +564,7 @@ struct(...
 'weight_error_index',int32(-999999999),...
 'weight_error_lower',double(-9e+40),...
 'weight_error_upper',double(-9e+40))
-;}},...
+}},...
 'flux_loop',{{struct(...
 'chi_squared',double(-9e+40),...
 'chi_squared_error_index',int32(-999999999),...
@@ -458,7 +588,7 @@ struct(...
 'weight_error_index',int32(-999999999),...
 'weight_error_lower',double(-9e+40),...
 'weight_error_upper',double(-9e+40))
-;}},...
+}},...
 'ip',struct(...
 'chi_squared',double(-9e+40),...
 'chi_squared_error_index',int32(-999999999),...
@@ -529,7 +659,52 @@ struct(...
 'weight_error_index',int32(-999999999),...
 'weight_error_lower',double(-9e+40),...
 'weight_error_upper',double(-9e+40)))
-;}},...
+}},...
+'j_tor',{{struct(...
+'chi_squared',double(-9e+40),...
+'chi_squared_error_index',int32(-999999999),...
+'chi_squared_error_lower',double(-9e+40),...
+'chi_squared_error_upper',double(-9e+40),...
+'exact',int32(-999999999),...
+'measured',double(-9e+40),...
+'measured_error_index',int32(-999999999),...
+'measured_error_lower',double(-9e+40),...
+'measured_error_upper',double(-9e+40),...
+'position',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'psi',double(-9e+40),...
+'psi_error_index',int32(-999999999),...
+'psi_error_lower',double(-9e+40),...
+'psi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'rho_tor_norm',double(-9e+40),...
+'rho_tor_norm_error_index',int32(-999999999),...
+'rho_tor_norm_error_lower',double(-9e+40),...
+'rho_tor_norm_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'reconstructed',double(-9e+40),...
+'reconstructed_error_index',int32(-999999999),...
+'reconstructed_error_lower',double(-9e+40),...
+'reconstructed_error_upper',double(-9e+40),...
+'source','',...
+'time_measurement',double(-9e+40),...
+'time_measurement_error_index',int32(-999999999),...
+'time_measurement_error_lower',double(-9e+40),...
+'time_measurement_error_upper',double(-9e+40),...
+'weight',double(-9e+40),...
+'weight_error_index',int32(-999999999),...
+'weight_error_lower',double(-9e+40),...
+'weight_error_upper',double(-9e+40))
+}},...
 'mse_polarisation_angle',{{struct(...
 'chi_squared',double(-9e+40),...
 'chi_squared_error_index',int32(-999999999),...
@@ -553,7 +728,7 @@ struct(...
 'weight_error_index',int32(-999999999),...
 'weight_error_lower',double(-9e+40),...
 'weight_error_upper',double(-9e+40))
-;}},...
+}},...
 'n_e',{{struct(...
 'chi_squared',double(-9e+40),...
 'chi_squared_error_index',int32(-999999999),...
@@ -564,6 +739,27 @@ struct(...
 'measured_error_index',int32(-999999999),...
 'measured_error_lower',double(-9e+40),...
 'measured_error_upper',double(-9e+40),...
+'position',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'psi',double(-9e+40),...
+'psi_error_index',int32(-999999999),...
+'psi_error_lower',double(-9e+40),...
+'psi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'rho_tor_norm',double(-9e+40),...
+'rho_tor_norm_error_index',int32(-999999999),...
+'rho_tor_norm_error_lower',double(-9e+40),...
+'rho_tor_norm_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
 'reconstructed',double(-9e+40),...
 'reconstructed_error_index',int32(-999999999),...
 'reconstructed_error_lower',double(-9e+40),...
@@ -577,7 +773,7 @@ struct(...
 'weight_error_index',int32(-999999999),...
 'weight_error_lower',double(-9e+40),...
 'weight_error_upper',double(-9e+40))
-;}},...
+}},...
 'n_e_line',{{struct(...
 'chi_squared',double(-9e+40),...
 'chi_squared_error_index',int32(-999999999),...
@@ -601,7 +797,7 @@ struct(...
 'weight_error_index',int32(-999999999),...
 'weight_error_lower',double(-9e+40),...
 'weight_error_upper',double(-9e+40))
-;}},...
+}},...
 'pf_current',{{struct(...
 'chi_squared',double(-9e+40),...
 'chi_squared_error_index',int32(-999999999),...
@@ -625,7 +821,7 @@ struct(...
 'weight_error_index',int32(-999999999),...
 'weight_error_lower',double(-9e+40),...
 'weight_error_upper',double(-9e+40))
-;}},...
+}},...
 'pf_passive_current',{{struct(...
 'chi_squared',double(-9e+40),...
 'chi_squared_error_index',int32(-999999999),...
@@ -649,7 +845,7 @@ struct(...
 'weight_error_index',int32(-999999999),...
 'weight_error_lower',double(-9e+40),...
 'weight_error_upper',double(-9e+40))
-;}},...
+}},...
 'pressure',{{struct(...
 'chi_squared',double(-9e+40),...
 'chi_squared_error_index',int32(-999999999),...
@@ -660,6 +856,27 @@ struct(...
 'measured_error_index',int32(-999999999),...
 'measured_error_lower',double(-9e+40),...
 'measured_error_upper',double(-9e+40),...
+'position',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'psi',double(-9e+40),...
+'psi_error_index',int32(-999999999),...
+'psi_error_lower',double(-9e+40),...
+'psi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'rho_tor_norm',double(-9e+40),...
+'rho_tor_norm_error_index',int32(-999999999),...
+'rho_tor_norm_error_lower',double(-9e+40),...
+'rho_tor_norm_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
 'reconstructed',double(-9e+40),...
 'reconstructed_error_index',int32(-999999999),...
 'reconstructed_error_lower',double(-9e+40),...
@@ -673,7 +890,52 @@ struct(...
 'weight_error_index',int32(-999999999),...
 'weight_error_lower',double(-9e+40),...
 'weight_error_upper',double(-9e+40))
-;}},...
+}},...
+'pressure_rotational',{{struct(...
+'chi_squared',double(-9e+40),...
+'chi_squared_error_index',int32(-999999999),...
+'chi_squared_error_lower',double(-9e+40),...
+'chi_squared_error_upper',double(-9e+40),...
+'exact',int32(-999999999),...
+'measured',double(-9e+40),...
+'measured_error_index',int32(-999999999),...
+'measured_error_lower',double(-9e+40),...
+'measured_error_upper',double(-9e+40),...
+'position',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'psi',double(-9e+40),...
+'psi_error_index',int32(-999999999),...
+'psi_error_lower',double(-9e+40),...
+'psi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'rho_tor_norm',double(-9e+40),...
+'rho_tor_norm_error_index',int32(-999999999),...
+'rho_tor_norm_error_lower',double(-9e+40),...
+'rho_tor_norm_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'reconstructed',double(-9e+40),...
+'reconstructed_error_index',int32(-999999999),...
+'reconstructed_error_lower',double(-9e+40),...
+'reconstructed_error_upper',double(-9e+40),...
+'source','',...
+'time_measurement',double(-9e+40),...
+'time_measurement_error_index',int32(-999999999),...
+'time_measurement_error_lower',double(-9e+40),...
+'time_measurement_error_upper',double(-9e+40),...
+'weight',double(-9e+40),...
+'weight_error_index',int32(-999999999),...
+'weight_error_lower',double(-9e+40),...
+'weight_error_upper',double(-9e+40))
+}},...
 'q',{{struct(...
 'chi_squared',double(-9e+40),...
 'chi_squared_error_index',int32(-999999999),...
@@ -689,10 +951,18 @@ struct(...
 'phi_error_index',int32(-999999999),...
 'phi_error_lower',double(-9e+40),...
 'phi_error_upper',double(-9e+40),...
+'psi',double(-9e+40),...
+'psi_error_index',int32(-999999999),...
+'psi_error_lower',double(-9e+40),...
+'psi_error_upper',double(-9e+40),...
 'r',double(-9e+40),...
 'r_error_index',int32(-999999999),...
 'r_error_lower',double(-9e+40),...
 'r_error_upper',double(-9e+40),...
+'rho_tor_norm',double(-9e+40),...
+'rho_tor_norm_error_index',int32(-999999999),...
+'rho_tor_norm_error_lower',double(-9e+40),...
+'rho_tor_norm_error_upper',double(-9e+40),...
 'z',double(-9e+40),...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
@@ -710,7 +980,7 @@ struct(...
 'weight_error_index',int32(-999999999),...
 'weight_error_lower',double(-9e+40),...
 'weight_error_upper',double(-9e+40))
-;}},...
+}},...
 'strike_point',{{struct(...
 'chi_squared_r',double(-9e+40),...
 'chi_squared_r_error_index',int32(-999999999),...
@@ -748,7 +1018,7 @@ struct(...
 'weight_error_index',int32(-999999999),...
 'weight_error_lower',double(-9e+40),...
 'weight_error_upper',double(-9e+40))
-;}},...
+}},...
 'x_point',{{struct(...
 'chi_squared_r',double(-9e+40),...
 'chi_squared_r_error_index',int32(-999999999),...
@@ -786,8 +1056,16 @@ struct(...
 'weight_error_index',int32(-999999999),...
 'weight_error_lower',double(-9e+40),...
 'weight_error_upper',double(-9e+40))
-;}}),...
+}}),...
 'convergence',struct(...
+'grad_shafranov_deviation_expression',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'grad_shafranov_deviation_value',double(-9e+40),...
+'grad_shafranov_deviation_value_error_index',int32(-999999999),...
+'grad_shafranov_deviation_value_error_lower',double(-9e+40),...
+'grad_shafranov_deviation_value_error_upper',double(-9e+40),...
 'iterations_n',int32(-999999999)),...
 'coordinate_system',struct(...
 'g11_contravariant',double([]),...
@@ -887,7 +1165,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'b_field_tor',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -899,7 +1177,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'b_field_z',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -911,7 +1189,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'grid',struct(...
 'grid_subset',{{struct(...
 'base',{{struct(...
@@ -927,15 +1205,15 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([]))
-;}},...
+}},...
 'dimension',int32(-999999999),...
 'element',{{struct(...
 'object',{{struct(...
 'dimension',int32(-999999999),...
 'index',int32(-999999999),...
 'space',int32(-999999999))
-;}})
-;}},...
+}})
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -953,11 +1231,12 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([])))
-;}},...
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
+'path','',...
 'space',{{struct(...
 'coordinates_type',int32([]),...
 'geometry_type',struct(...
@@ -969,12 +1248,20 @@ struct(...
 'index',int32(-999999999),...
 'name',''),...
 'objects_per_dimension',{{struct(...
+'geometry_content',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
 'object',{{struct(...
 'boundary',{{struct(...
 'index',int32(-999999999),...
 'neighbours',int32([]))
-;}},...
+}},...
 'geometry',double([]),...
+'geometry_2d',double([]),...
+'geometry_2d_error_index',int32(-999999999),...
+'geometry_2d_error_lower',double([]),...
+'geometry_2d_error_upper',double([]),...
 'geometry_error_index',int32(-999999999),...
 'geometry_error_lower',double([]),...
 'geometry_error_upper',double([]),...
@@ -983,9 +1270,9 @@ struct(...
 'measure_error_lower',double(-9e+40),...
 'measure_error_upper',double(-9e+40),...
 'nodes',int32([]))
-;}})
-;}})
-;}}),...
+}})
+}})
+}}),...
 'j_parallel',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -997,7 +1284,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'j_tor',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1009,7 +1296,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'phi',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1021,7 +1308,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'psi',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1033,7 +1320,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'r',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1045,7 +1332,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'theta',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1057,7 +1344,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'z',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -1069,8 +1356,8 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}})
-;}},...
+}})
+}},...
 'global_quantities',struct(...
 'area',double(-9e+40),...
 'area_error_index',int32(-999999999),...
@@ -1088,6 +1375,19 @@ struct(...
 'beta_tor_error_index',int32(-999999999),...
 'beta_tor_error_lower',double(-9e+40),...
 'beta_tor_error_upper',double(-9e+40),...
+'current_centre',struct(...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'velocity_z',double(-9e+40),...
+'velocity_z_error_index',int32(-999999999),...
+'velocity_z_error_lower',double(-9e+40),...
+'velocity_z_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
 'energy_mhd',double(-9e+40),...
 'energy_mhd_error_index',int32(-999999999),...
 'energy_mhd_error_lower',double(-9e+40),...
@@ -1121,6 +1421,14 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40)),...
+'plasma_inductance',double(-9e+40),...
+'plasma_inductance_error_index',int32(-999999999),...
+'plasma_inductance_error_lower',double(-9e+40),...
+'plasma_inductance_error_upper',double(-9e+40),...
+'plasma_resistance',double(-9e+40),...
+'plasma_resistance_error_index',int32(-999999999),...
+'plasma_resistance_error_lower',double(-9e+40),...
+'plasma_resistance_error_upper',double(-9e+40),...
 'psi_axis',double(-9e+40),...
 'psi_axis_error_index',int32(-999999999),...
 'psi_axis_error_lower',double(-9e+40),...
@@ -1129,6 +1437,10 @@ struct(...
 'psi_boundary_error_index',int32(-999999999),...
 'psi_boundary_error_lower',double(-9e+40),...
 'psi_boundary_error_upper',double(-9e+40),...
+'psi_external_average',double(-9e+40),...
+'psi_external_average_error_index',int32(-999999999),...
+'psi_external_average_error_lower',double(-9e+40),...
+'psi_external_average_error_upper',double(-9e+40),...
 'q_95',double(-9e+40),...
 'q_95_error_index',int32(-999999999),...
 'q_95_error_lower',double(-9e+40),...
@@ -1150,6 +1462,10 @@ struct(...
 'surface_error_index',int32(-999999999),...
 'surface_error_lower',double(-9e+40),...
 'surface_error_upper',double(-9e+40),...
+'v_external',double(-9e+40),...
+'v_external_error_index',int32(-999999999),...
+'v_external_error_lower',double(-9e+40),...
+'v_external_error_upper',double(-9e+40),...
 'volume',double(-9e+40),...
 'volume_error_index',int32(-999999999),...
 'volume_error_lower',double(-9e+40),...
@@ -1426,13 +1742,17 @@ struct(...
 'theta_error_index',int32(-999999999),...
 'theta_error_lower',double([]),...
 'theta_error_upper',double([]),...
+'type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
 'z',double([]),...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double([]),...
 'z_error_upper',double([]))
-;}},...
+}},...
 'time',double(-9e+40))
-;}},...
+}},...
 'vacuum_toroidal_field',struct(...
 'b0',double([]),...
 'b0_error_index',int32(-999999999),...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_focs.m b/matlab/TCV_IMAS/ids_empty/ids_empty_focs.m
new file mode 100644
index 0000000000000000000000000000000000000000..09abb49ff17e3a7bc42e38bca9ce01a7006c9681
--- /dev/null
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_focs.m
@@ -0,0 +1,164 @@
+function S = ids_empty_focs
+% function S = ids_empty_focs
+%
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
+
+S = ...
+struct(...
+'b_field_z',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([]),...
+'validity',int32(-999999999),...
+'validity_timed',int32([])),...
+'beat_length',double(-9e+40),...
+'beat_length_error_index',int32(-999999999),...
+'beat_length_error_lower',double(-9e+40),...
+'beat_length_error_upper',double(-9e+40),...
+'code',struct(...
+'commit','',...
+'description','',...
+'library',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'name','',...
+'output_flag',int32([]),...
+'parameters','',...
+'repository','',...
+'version',''),...
+'current',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([]),...
+'validity',int32(-999999999),...
+'validity_timed',int32([])),...
+'id','',...
+'ids_properties',struct(...
+'comment','',...
+'creation_date','',...
+'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
+'provider','',...
+'source','',...
+'version_put',struct(...
+'access_layer','',...
+'access_layer_language','',...
+'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
+'name','',...
+'outline',struct(...
+'phi',double([]),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double([]),...
+'phi_error_upper',double([]),...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([])),...
+'spun',double(-9e+40),...
+'spun_error_index',int32(-999999999),...
+'spun_error_lower',double(-9e+40),...
+'spun_error_upper',double(-9e+40),...
+'stokes_initial',struct(...
+'s0',double(-9e+40),...
+'s0_error_index',int32(-999999999),...
+'s0_error_lower',double(-9e+40),...
+'s0_error_upper',double(-9e+40),...
+'s1',double(-9e+40),...
+'s1_error_index',int32(-999999999),...
+'s1_error_lower',double(-9e+40),...
+'s1_error_upper',double(-9e+40),...
+'s2',double(-9e+40),...
+'s2_error_index',int32(-999999999),...
+'s2_error_lower',double(-9e+40),...
+'s2_error_upper',double(-9e+40),...
+'s3',double(-9e+40),...
+'s3_error_index',int32(-999999999),...
+'s3_error_lower',double(-9e+40),...
+'s3_error_upper',double(-9e+40)),...
+'stokes_output',{{struct(...
+'s0',double(-9e+40),...
+'s0_error_index',int32(-999999999),...
+'s0_error_lower',double(-9e+40),...
+'s0_error_upper',double(-9e+40),...
+'s1',double(-9e+40),...
+'s1_error_index',int32(-999999999),...
+'s1_error_lower',double(-9e+40),...
+'s1_error_upper',double(-9e+40),...
+'s2',double(-9e+40),...
+'s2_error_index',int32(-999999999),...
+'s2_error_lower',double(-9e+40),...
+'s2_error_upper',double(-9e+40),...
+'s3',double(-9e+40),...
+'s3_error_index',int32(-999999999),...
+'s3_error_lower',double(-9e+40),...
+'s3_error_upper',double(-9e+40),...
+'time',double(-9e+40))
+}},...
+'time',double([]),...
+'twist',double(-9e+40),...
+'twist_error_index',int32(-999999999),...
+'twist_error_lower',double(-9e+40),...
+'twist_error_upper',double(-9e+40));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_gas_injection.m b/matlab/TCV_IMAS/ids_empty/ids_empty_gas_injection.m
index 4e97e972abc313bb35748ea27cc906220715456e..670cb84c57fe45de5cfcb2b183bf631b879197d4 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_gas_injection.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_gas_injection.m
@@ -1,19 +1,23 @@
 function S = ids_empty_gas_injection
 % function S = ids_empty_gas_injection
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -23,12 +27,61 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'pipe',{{struct(...
 'exit_position',struct(...
 'phi',double(-9e+40),...
@@ -83,13 +136,16 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'fraction',double(-9e+40),...
 'fraction_error_index',int32(-999999999),...
 'fraction_error_lower',double(-9e+40),...
 'fraction_error_upper',double(-9e+40),...
 'label','')
-;}},...
+}},...
+'valve_indices',int32([]))
+}},...
+'time',double([]),...
 'valve',{{struct(...
 'electron_rate',struct(...
 'data',double([]),...
@@ -113,6 +169,16 @@ struct(...
 'flow_rate_min_error_upper',double(-9e+40),...
 'identifier','',...
 'name','',...
+'pipe_indices',int32([]),...
+'response_curve',struct(...
+'flow_rate',double([]),...
+'flow_rate_error_index',int32(-999999999),...
+'flow_rate_error_lower',double([]),...
+'flow_rate_error_upper',double([]),...
+'voltage',double([]),...
+'voltage_error_index',int32(-999999999),...
+'voltage_error_lower',double([]),...
+'voltage_error_upper',double([])),...
 'species',{{struct(...
 'element',{{struct(...
 'a',double(-9e+40),...
@@ -128,13 +194,17 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'fraction',double(-9e+40),...
 'fraction_error_index',int32(-999999999),...
 'fraction_error_lower',double(-9e+40),...
 'fraction_error_upper',double(-9e+40),...
 'label','')
-;}})
-;}})
-;}},...
-'time',double([]));
+}},...
+'voltage',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])))
+}});
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_gas_pumping.m b/matlab/TCV_IMAS/ids_empty/ids_empty_gas_pumping.m
index 340dac1ddc8676c07301e857ad4d36e05e06b072..bb9d237089ca9f6642bcacac9b2e946c19e287f2 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_gas_pumping.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_gas_pumping.m
@@ -1,19 +1,23 @@
 function S = ids_empty_gas_pumping
 % function S = ids_empty_gas_pumping
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -43,7 +47,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'flow_rate',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
@@ -51,12 +55,57 @@ struct(...
 'data_error_upper',double([]),...
 'time',double([])),...
 'label','')
-;}})
-;}},...
+}})
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_gyrokinetics.m b/matlab/TCV_IMAS/ids_empty/ids_empty_gyrokinetics.m
index 19d696668f4197b65c3f1e14b401067446102087..a20b0b627359f2a48dff4ee7e8271f20175b18c1 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_gyrokinetics.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_gyrokinetics.m
@@ -1,19 +1,23 @@
 function S = ids_empty_gyrokinetics
 % function S = ids_empty_gyrokinetics
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -33,6 +37,18 @@ struct(...
 'dc_dr_minor_norm_error_index',int32(-999999999),...
 'dc_dr_minor_norm_error_lower',double([]),...
 'dc_dr_minor_norm_error_upper',double([]),...
+'delongation_dr_minor_norm',double(-9e+40),...
+'delongation_dr_minor_norm_error_index',int32(-999999999),...
+'delongation_dr_minor_norm_error_lower',double(-9e+40),...
+'delongation_dr_minor_norm_error_upper',double(-9e+40),...
+'dgeometric_axis_r_dr_minor',double(-9e+40),...
+'dgeometric_axis_r_dr_minor_error_index',int32(-999999999),...
+'dgeometric_axis_r_dr_minor_error_lower',double(-9e+40),...
+'dgeometric_axis_r_dr_minor_error_upper',double(-9e+40),...
+'dgeometric_axis_z_dr_minor',double(-9e+40),...
+'dgeometric_axis_z_dr_minor_error_index',int32(-999999999),...
+'dgeometric_axis_z_dr_minor_error_lower',double(-9e+40),...
+'dgeometric_axis_z_dr_minor_error_upper',double(-9e+40),...
 'ds_dr_minor_norm',double([]),...
 'ds_dr_minor_norm_error_index',int32(-999999999),...
 'ds_dr_minor_norm_error_lower',double([]),...
@@ -68,15 +84,7 @@ struct(...
 'shape_coefficients_s',double([]),...
 'shape_coefficients_s_error_index',int32(-999999999),...
 'shape_coefficients_s_error_lower',double([]),...
-'shape_coefficients_s_error_upper',double([]),...
-'triangularity_lower',double(-9e+40),...
-'triangularity_lower_error_index',int32(-999999999),...
-'triangularity_lower_error_lower',double(-9e+40),...
-'triangularity_lower_error_upper',double(-9e+40),...
-'triangularity_upper',double(-9e+40),...
-'triangularity_upper_error_index',int32(-999999999),...
-'triangularity_upper_error_lower',double(-9e+40),...
-'triangularity_upper_error_upper',double(-9e+40)),...
+'shape_coefficients_s_error_upper',double([])),...
 'fluxes_integrated_norm',{{struct(...
 'energy_a_field_parallel',double(-9e+40),...
 'energy_a_field_parallel_error_index',int32(-999999999),...
@@ -126,11 +134,56 @@ struct(...
 'particles_phi_potential_error_index',int32(-999999999),...
 'particles_phi_potential_error_lower',double(-9e+40),...
 'particles_phi_potential_error_upper',double(-9e+40))
-;}},...
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
@@ -146,12 +199,28 @@ struct(...
 'include_b_field_parallel',int32(-999999999),...
 'include_centrifugal_effects',int32(-999999999),...
 'include_full_curvature_drift',int32(-999999999),...
-'initial_value_run',int32(-999999999),...
 'non_linear_run',int32(-999999999),...
 'time_interval_norm',double([]),...
 'time_interval_norm_error_index',int32(-999999999),...
 'time_interval_norm_error_lower',double([]),...
 'time_interval_norm_error_upper',double([])),...
+'normalizing_quantities',struct(...
+'b_field_tor',double(-9e+40),...
+'b_field_tor_error_index',int32(-999999999),...
+'b_field_tor_error_lower',double(-9e+40),...
+'b_field_tor_error_upper',double(-9e+40),...
+'n_e',double(-9e+40),...
+'n_e_error_index',int32(-999999999),...
+'n_e_error_lower',double(-9e+40),...
+'n_e_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'t_e',double(-9e+40),...
+'t_e_error_index',int32(-999999999),...
+'t_e_error_lower',double(-9e+40),...
+'t_e_error_upper',double(-9e+40)),...
 'species',{{struct(...
 'charge_norm',double(-9e+40),...
 'charge_norm_error_index',int32(-999999999),...
@@ -181,7 +250,7 @@ struct(...
 'velocity_tor_gradient_norm_error_index',int32(-999999999),...
 'velocity_tor_gradient_norm_error_lower',double(-9e+40),...
 'velocity_tor_gradient_norm_error_upper',double(-9e+40))
-;}},...
+}},...
 'species_all',struct(...
 'beta_reference',double(-9e+40),...
 'beta_reference_error_index',int32(-999999999),...
@@ -206,7 +275,7 @@ struct(...
 'tag',{{struct(...
 'comment','',...
 'name','')
-;}},...
+}},...
 'time',double([]),...
 'wavevector',{{struct(...
 'binormal_component_norm',double(-9e+40),...
@@ -214,14 +283,10 @@ struct(...
 'binormal_component_norm_error_lower',double(-9e+40),...
 'binormal_component_norm_error_upper',double(-9e+40),...
 'eigenmode',{{struct(...
-'a_field_parallel_perturbed_norm_imaginary',double([]),...
-'a_field_parallel_perturbed_norm_imaginary_error_index',int32(-999999999),...
-'a_field_parallel_perturbed_norm_imaginary_error_lower',double([]),...
-'a_field_parallel_perturbed_norm_imaginary_error_upper',double([]),...
-'a_field_parallel_perturbed_norm_real',double([]),...
-'a_field_parallel_perturbed_norm_real_error_index',int32(-999999999),...
-'a_field_parallel_perturbed_norm_real_error_lower',double([]),...
-'a_field_parallel_perturbed_norm_real_error_upper',double([]),...
+'a_field_parallel_perturbed_norm',double([]),...
+'a_field_parallel_perturbed_norm_error_index',int32(-999999999),...
+'a_field_parallel_perturbed_norm_error_lower',double([]),...
+'a_field_parallel_perturbed_norm_error_upper',double([]),...
 'a_field_parallel_perturbed_parity',double([]),...
 'a_field_parallel_perturbed_parity_error_index',int32(-999999999),...
 'a_field_parallel_perturbed_parity_error_lower',double([]),...
@@ -230,14 +295,10 @@ struct(...
 'a_field_parallel_perturbed_weight_error_index',int32(-999999999),...
 'a_field_parallel_perturbed_weight_error_lower',double([]),...
 'a_field_parallel_perturbed_weight_error_upper',double([]),...
-'b_field_parallel_perturbed_norm_imaginary',double([]),...
-'b_field_parallel_perturbed_norm_imaginary_error_index',int32(-999999999),...
-'b_field_parallel_perturbed_norm_imaginary_error_lower',double([]),...
-'b_field_parallel_perturbed_norm_imaginary_error_upper',double([]),...
-'b_field_parallel_perturbed_norm_real',double([]),...
-'b_field_parallel_perturbed_norm_real_error_index',int32(-999999999),...
-'b_field_parallel_perturbed_norm_real_error_lower',double([]),...
-'b_field_parallel_perturbed_norm_real_error_upper',double([]),...
+'b_field_parallel_perturbed_norm',double([]),...
+'b_field_parallel_perturbed_norm_error_index',int32(-999999999),...
+'b_field_parallel_perturbed_norm_error_lower',double([]),...
+'b_field_parallel_perturbed_norm_error_upper',double([]),...
 'b_field_parallel_perturbed_parity',double([]),...
 'b_field_parallel_perturbed_parity_error_index',int32(-999999999),...
 'b_field_parallel_perturbed_parity_error_lower',double([]),...
@@ -246,8 +307,11 @@ struct(...
 'b_field_parallel_perturbed_weight_error_index',int32(-999999999),...
 'b_field_parallel_perturbed_weight_error_lower',double([]),...
 'b_field_parallel_perturbed_weight_error_upper',double([]),...
+'code',struct(...
+'output_flag',int32(-999999999),...
+'parameters',''),...
 'fluxes_moments',{{struct(...
-'fluxes_norm',struct(...
+'fluxes_norm_gyrocenter',struct(...
 'energy_a_field_parallel',double(-9e+40),...
 'energy_a_field_parallel_error_index',int32(-999999999),...
 'energy_a_field_parallel_error_lower',double(-9e+40),...
@@ -296,72 +360,240 @@ struct(...
 'particles_phi_potential_error_index',int32(-999999999),...
 'particles_phi_potential_error_lower',double(-9e+40),...
 'particles_phi_potential_error_upper',double(-9e+40)),...
-'moments_norm_rotating_frame',struct(...
-'density_gyroaveraged_imaginary',double([]),...
-'density_gyroaveraged_imaginary_error_index',int32(-999999999),...
-'density_gyroaveraged_imaginary_error_lower',double([]),...
-'density_gyroaveraged_imaginary_error_upper',double([]),...
-'density_gyroaveraged_real',double([]),...
-'density_gyroaveraged_real_error_index',int32(-999999999),...
-'density_gyroaveraged_real_error_lower',double([]),...
-'density_gyroaveraged_real_error_upper',double([]),...
-'density_imaginary',double([]),...
-'density_imaginary_error_index',int32(-999999999),...
-'density_imaginary_error_lower',double([]),...
-'density_imaginary_error_upper',double([]),...
-'density_real',double([]),...
-'density_real_error_index',int32(-999999999),...
-'density_real_error_lower',double([]),...
-'density_real_error_upper',double([]),...
-'temperature_parallel_gyroaveraged_imaginary',double([]),...
-'temperature_parallel_gyroaveraged_imaginary_error_index',int32(-999999999),...
-'temperature_parallel_gyroaveraged_imaginary_error_lower',double([]),...
-'temperature_parallel_gyroaveraged_imaginary_error_upper',double([]),...
-'temperature_parallel_gyroaveraged_real',double([]),...
-'temperature_parallel_gyroaveraged_real_error_index',int32(-999999999),...
-'temperature_parallel_gyroaveraged_real_error_lower',double([]),...
-'temperature_parallel_gyroaveraged_real_error_upper',double([]),...
-'temperature_parallel_imaginary',double([]),...
-'temperature_parallel_imaginary_error_index',int32(-999999999),...
-'temperature_parallel_imaginary_error_lower',double([]),...
-'temperature_parallel_imaginary_error_upper',double([]),...
-'temperature_parallel_real',double([]),...
-'temperature_parallel_real_error_index',int32(-999999999),...
-'temperature_parallel_real_error_lower',double([]),...
-'temperature_parallel_real_error_upper',double([]),...
-'temperature_perpendicular_gyroaveraged_imaginary',double([]),...
-'temperature_perpendicular_gyroaveraged_imaginary_error_index',int32(-999999999),...
-'temperature_perpendicular_gyroaveraged_imaginary_error_lower',double([]),...
-'temperature_perpendicular_gyroaveraged_imaginary_error_upper',double([]),...
-'temperature_perpendicular_gyroaveraged_real',double([]),...
-'temperature_perpendicular_gyroaveraged_real_error_index',int32(-999999999),...
-'temperature_perpendicular_gyroaveraged_real_error_lower',double([]),...
-'temperature_perpendicular_gyroaveraged_real_error_upper',double([]),...
-'temperature_perpendicular_imaginary',double([]),...
-'temperature_perpendicular_imaginary_error_index',int32(-999999999),...
-'temperature_perpendicular_imaginary_error_lower',double([]),...
-'temperature_perpendicular_imaginary_error_upper',double([]),...
-'temperature_perpendicular_real',double([]),...
-'temperature_perpendicular_real_error_index',int32(-999999999),...
-'temperature_perpendicular_real_error_lower',double([]),...
-'temperature_perpendicular_real_error_upper',double([]),...
-'velocity_parallel_gyroaveraged_imaginary',double([]),...
-'velocity_parallel_gyroaveraged_imaginary_error_index',int32(-999999999),...
-'velocity_parallel_gyroaveraged_imaginary_error_lower',double([]),...
-'velocity_parallel_gyroaveraged_imaginary_error_upper',double([]),...
-'velocity_parallel_gyroaveraged_real',double([]),...
-'velocity_parallel_gyroaveraged_real_error_index',int32(-999999999),...
-'velocity_parallel_gyroaveraged_real_error_lower',double([]),...
-'velocity_parallel_gyroaveraged_real_error_upper',double([]),...
-'velocity_parallel_imaginary',double([]),...
-'velocity_parallel_imaginary_error_index',int32(-999999999),...
-'velocity_parallel_imaginary_error_lower',double([]),...
-'velocity_parallel_imaginary_error_upper',double([]),...
-'velocity_parallel_real',double([]),...
-'velocity_parallel_real_error_index',int32(-999999999),...
-'velocity_parallel_real_error_lower',double([]),...
-'velocity_parallel_real_error_upper',double([])))
-;}},...
+'fluxes_norm_gyrocenter_rotating_frame',struct(...
+'energy_a_field_parallel',double(-9e+40),...
+'energy_a_field_parallel_error_index',int32(-999999999),...
+'energy_a_field_parallel_error_lower',double(-9e+40),...
+'energy_a_field_parallel_error_upper',double(-9e+40),...
+'energy_b_field_parallel',double(-9e+40),...
+'energy_b_field_parallel_error_index',int32(-999999999),...
+'energy_b_field_parallel_error_lower',double(-9e+40),...
+'energy_b_field_parallel_error_upper',double(-9e+40),...
+'energy_phi_potential',double(-9e+40),...
+'energy_phi_potential_error_index',int32(-999999999),...
+'energy_phi_potential_error_lower',double(-9e+40),...
+'energy_phi_potential_error_upper',double(-9e+40),...
+'momentum_tor_parallel_a_field_parallel',double(-9e+40),...
+'momentum_tor_parallel_a_field_parallel_error_index',int32(-999999999),...
+'momentum_tor_parallel_a_field_parallel_error_lower',double(-9e+40),...
+'momentum_tor_parallel_a_field_parallel_error_upper',double(-9e+40),...
+'momentum_tor_parallel_b_field_parallel',double(-9e+40),...
+'momentum_tor_parallel_b_field_parallel_error_index',int32(-999999999),...
+'momentum_tor_parallel_b_field_parallel_error_lower',double(-9e+40),...
+'momentum_tor_parallel_b_field_parallel_error_upper',double(-9e+40),...
+'momentum_tor_parallel_phi_potential',double(-9e+40),...
+'momentum_tor_parallel_phi_potential_error_index',int32(-999999999),...
+'momentum_tor_parallel_phi_potential_error_lower',double(-9e+40),...
+'momentum_tor_parallel_phi_potential_error_upper',double(-9e+40),...
+'momentum_tor_perpendicular_a_field_parallel',double(-9e+40),...
+'momentum_tor_perpendicular_a_field_parallel_error_index',int32(-999999999),...
+'momentum_tor_perpendicular_a_field_parallel_error_lower',double(-9e+40),...
+'momentum_tor_perpendicular_a_field_parallel_error_upper',double(-9e+40),...
+'momentum_tor_perpendicular_b_field_parallel',double(-9e+40),...
+'momentum_tor_perpendicular_b_field_parallel_error_index',int32(-999999999),...
+'momentum_tor_perpendicular_b_field_parallel_error_lower',double(-9e+40),...
+'momentum_tor_perpendicular_b_field_parallel_error_upper',double(-9e+40),...
+'momentum_tor_perpendicular_phi_potential',double(-9e+40),...
+'momentum_tor_perpendicular_phi_potential_error_index',int32(-999999999),...
+'momentum_tor_perpendicular_phi_potential_error_lower',double(-9e+40),...
+'momentum_tor_perpendicular_phi_potential_error_upper',double(-9e+40),...
+'particles_a_field_parallel',double(-9e+40),...
+'particles_a_field_parallel_error_index',int32(-999999999),...
+'particles_a_field_parallel_error_lower',double(-9e+40),...
+'particles_a_field_parallel_error_upper',double(-9e+40),...
+'particles_b_field_parallel',double(-9e+40),...
+'particles_b_field_parallel_error_index',int32(-999999999),...
+'particles_b_field_parallel_error_lower',double(-9e+40),...
+'particles_b_field_parallel_error_upper',double(-9e+40),...
+'particles_phi_potential',double(-9e+40),...
+'particles_phi_potential_error_index',int32(-999999999),...
+'particles_phi_potential_error_lower',double(-9e+40),...
+'particles_phi_potential_error_upper',double(-9e+40)),...
+'fluxes_norm_particle',struct(...
+'energy_a_field_parallel',double(-9e+40),...
+'energy_a_field_parallel_error_index',int32(-999999999),...
+'energy_a_field_parallel_error_lower',double(-9e+40),...
+'energy_a_field_parallel_error_upper',double(-9e+40),...
+'energy_b_field_parallel',double(-9e+40),...
+'energy_b_field_parallel_error_index',int32(-999999999),...
+'energy_b_field_parallel_error_lower',double(-9e+40),...
+'energy_b_field_parallel_error_upper',double(-9e+40),...
+'energy_phi_potential',double(-9e+40),...
+'energy_phi_potential_error_index',int32(-999999999),...
+'energy_phi_potential_error_lower',double(-9e+40),...
+'energy_phi_potential_error_upper',double(-9e+40),...
+'momentum_tor_parallel_a_field_parallel',double(-9e+40),...
+'momentum_tor_parallel_a_field_parallel_error_index',int32(-999999999),...
+'momentum_tor_parallel_a_field_parallel_error_lower',double(-9e+40),...
+'momentum_tor_parallel_a_field_parallel_error_upper',double(-9e+40),...
+'momentum_tor_parallel_b_field_parallel',double(-9e+40),...
+'momentum_tor_parallel_b_field_parallel_error_index',int32(-999999999),...
+'momentum_tor_parallel_b_field_parallel_error_lower',double(-9e+40),...
+'momentum_tor_parallel_b_field_parallel_error_upper',double(-9e+40),...
+'momentum_tor_parallel_phi_potential',double(-9e+40),...
+'momentum_tor_parallel_phi_potential_error_index',int32(-999999999),...
+'momentum_tor_parallel_phi_potential_error_lower',double(-9e+40),...
+'momentum_tor_parallel_phi_potential_error_upper',double(-9e+40),...
+'momentum_tor_perpendicular_a_field_parallel',double(-9e+40),...
+'momentum_tor_perpendicular_a_field_parallel_error_index',int32(-999999999),...
+'momentum_tor_perpendicular_a_field_parallel_error_lower',double(-9e+40),...
+'momentum_tor_perpendicular_a_field_parallel_error_upper',double(-9e+40),...
+'momentum_tor_perpendicular_b_field_parallel',double(-9e+40),...
+'momentum_tor_perpendicular_b_field_parallel_error_index',int32(-999999999),...
+'momentum_tor_perpendicular_b_field_parallel_error_lower',double(-9e+40),...
+'momentum_tor_perpendicular_b_field_parallel_error_upper',double(-9e+40),...
+'momentum_tor_perpendicular_phi_potential',double(-9e+40),...
+'momentum_tor_perpendicular_phi_potential_error_index',int32(-999999999),...
+'momentum_tor_perpendicular_phi_potential_error_lower',double(-9e+40),...
+'momentum_tor_perpendicular_phi_potential_error_upper',double(-9e+40),...
+'particles_a_field_parallel',double(-9e+40),...
+'particles_a_field_parallel_error_index',int32(-999999999),...
+'particles_a_field_parallel_error_lower',double(-9e+40),...
+'particles_a_field_parallel_error_upper',double(-9e+40),...
+'particles_b_field_parallel',double(-9e+40),...
+'particles_b_field_parallel_error_index',int32(-999999999),...
+'particles_b_field_parallel_error_lower',double(-9e+40),...
+'particles_b_field_parallel_error_upper',double(-9e+40),...
+'particles_phi_potential',double(-9e+40),...
+'particles_phi_potential_error_index',int32(-999999999),...
+'particles_phi_potential_error_lower',double(-9e+40),...
+'particles_phi_potential_error_upper',double(-9e+40)),...
+'fluxes_norm_particle_rotating_frame',struct(...
+'energy_a_field_parallel',double(-9e+40),...
+'energy_a_field_parallel_error_index',int32(-999999999),...
+'energy_a_field_parallel_error_lower',double(-9e+40),...
+'energy_a_field_parallel_error_upper',double(-9e+40),...
+'energy_b_field_parallel',double(-9e+40),...
+'energy_b_field_parallel_error_index',int32(-999999999),...
+'energy_b_field_parallel_error_lower',double(-9e+40),...
+'energy_b_field_parallel_error_upper',double(-9e+40),...
+'energy_phi_potential',double(-9e+40),...
+'energy_phi_potential_error_index',int32(-999999999),...
+'energy_phi_potential_error_lower',double(-9e+40),...
+'energy_phi_potential_error_upper',double(-9e+40),...
+'momentum_tor_parallel_a_field_parallel',double(-9e+40),...
+'momentum_tor_parallel_a_field_parallel_error_index',int32(-999999999),...
+'momentum_tor_parallel_a_field_parallel_error_lower',double(-9e+40),...
+'momentum_tor_parallel_a_field_parallel_error_upper',double(-9e+40),...
+'momentum_tor_parallel_b_field_parallel',double(-9e+40),...
+'momentum_tor_parallel_b_field_parallel_error_index',int32(-999999999),...
+'momentum_tor_parallel_b_field_parallel_error_lower',double(-9e+40),...
+'momentum_tor_parallel_b_field_parallel_error_upper',double(-9e+40),...
+'momentum_tor_parallel_phi_potential',double(-9e+40),...
+'momentum_tor_parallel_phi_potential_error_index',int32(-999999999),...
+'momentum_tor_parallel_phi_potential_error_lower',double(-9e+40),...
+'momentum_tor_parallel_phi_potential_error_upper',double(-9e+40),...
+'momentum_tor_perpendicular_a_field_parallel',double(-9e+40),...
+'momentum_tor_perpendicular_a_field_parallel_error_index',int32(-999999999),...
+'momentum_tor_perpendicular_a_field_parallel_error_lower',double(-9e+40),...
+'momentum_tor_perpendicular_a_field_parallel_error_upper',double(-9e+40),...
+'momentum_tor_perpendicular_b_field_parallel',double(-9e+40),...
+'momentum_tor_perpendicular_b_field_parallel_error_index',int32(-999999999),...
+'momentum_tor_perpendicular_b_field_parallel_error_lower',double(-9e+40),...
+'momentum_tor_perpendicular_b_field_parallel_error_upper',double(-9e+40),...
+'momentum_tor_perpendicular_phi_potential',double(-9e+40),...
+'momentum_tor_perpendicular_phi_potential_error_index',int32(-999999999),...
+'momentum_tor_perpendicular_phi_potential_error_lower',double(-9e+40),...
+'momentum_tor_perpendicular_phi_potential_error_upper',double(-9e+40),...
+'particles_a_field_parallel',double(-9e+40),...
+'particles_a_field_parallel_error_index',int32(-999999999),...
+'particles_a_field_parallel_error_lower',double(-9e+40),...
+'particles_a_field_parallel_error_upper',double(-9e+40),...
+'particles_b_field_parallel',double(-9e+40),...
+'particles_b_field_parallel_error_index',int32(-999999999),...
+'particles_b_field_parallel_error_lower',double(-9e+40),...
+'particles_b_field_parallel_error_upper',double(-9e+40),...
+'particles_phi_potential',double(-9e+40),...
+'particles_phi_potential_error_index',int32(-999999999),...
+'particles_phi_potential_error_lower',double(-9e+40),...
+'particles_phi_potential_error_upper',double(-9e+40)),...
+'moments_norm_gyrocenter',struct(...
+'density',double([]),...
+'density_error_index',int32(-999999999),...
+'density_error_lower',double([]),...
+'density_error_upper',double([]),...
+'density_gyroav',double([]),...
+'density_gyroav_error_index',int32(-999999999),...
+'density_gyroav_error_lower',double([]),...
+'density_gyroav_error_upper',double([]),...
+'heat_flux_parallel',double([]),...
+'heat_flux_parallel_error_index',int32(-999999999),...
+'heat_flux_parallel_error_lower',double([]),...
+'heat_flux_parallel_error_upper',double([]),...
+'heat_flux_parallel_gyroav',double([]),...
+'heat_flux_parallel_gyroav_error_index',int32(-999999999),...
+'heat_flux_parallel_gyroav_error_lower',double([]),...
+'heat_flux_parallel_gyroav_error_upper',double([]),...
+'j_parallel',double([]),...
+'j_parallel_error_index',int32(-999999999),...
+'j_parallel_error_lower',double([]),...
+'j_parallel_error_upper',double([]),...
+'j_parallel_gyroav',double([]),...
+'j_parallel_gyroav_error_index',int32(-999999999),...
+'j_parallel_gyroav_error_lower',double([]),...
+'j_parallel_gyroav_error_upper',double([]),...
+'pressure_parallel',double([]),...
+'pressure_parallel_error_index',int32(-999999999),...
+'pressure_parallel_error_lower',double([]),...
+'pressure_parallel_error_upper',double([]),...
+'pressure_parallel_gyroav',double([]),...
+'pressure_parallel_gyroav_error_index',int32(-999999999),...
+'pressure_parallel_gyroav_error_lower',double([]),...
+'pressure_parallel_gyroav_error_upper',double([]),...
+'pressure_perpendicular',double([]),...
+'pressure_perpendicular_error_index',int32(-999999999),...
+'pressure_perpendicular_error_lower',double([]),...
+'pressure_perpendicular_error_upper',double([]),...
+'pressure_perpendicular_gyroav',double([]),...
+'pressure_perpendicular_gyroav_error_index',int32(-999999999),...
+'pressure_perpendicular_gyroav_error_lower',double([]),...
+'pressure_perpendicular_gyroav_error_upper',double([]),...
+'v_parallel_energy_perpendicular',double([]),...
+'v_parallel_energy_perpendicular_error_index',int32(-999999999),...
+'v_parallel_energy_perpendicular_error_lower',double([]),...
+'v_parallel_energy_perpendicular_error_upper',double([]),...
+'v_parallel_energy_perpendicular_gyroav',double([]),...
+'v_parallel_energy_perpendicular_gyroav_error_index',int32(-999999999),...
+'v_parallel_energy_perpendicular_gyroav_error_lower',double([]),...
+'v_parallel_energy_perpendicular_gyroav_error_upper',double([]),...
+'v_perpendicular_square_energy',double([]),...
+'v_perpendicular_square_energy_error_index',int32(-999999999),...
+'v_perpendicular_square_energy_error_lower',double([]),...
+'v_perpendicular_square_energy_error_upper',double([]),...
+'v_perpendicular_square_energy_gyroav',double([]),...
+'v_perpendicular_square_energy_gyroav_error_index',int32(-999999999),...
+'v_perpendicular_square_energy_gyroav_error_lower',double([]),...
+'v_perpendicular_square_energy_gyroav_error_upper',double([])),...
+'moments_norm_particle',struct(...
+'density',double([]),...
+'density_error_index',int32(-999999999),...
+'density_error_lower',double([]),...
+'density_error_upper',double([]),...
+'heat_flux_parallel',double([]),...
+'heat_flux_parallel_error_index',int32(-999999999),...
+'heat_flux_parallel_error_lower',double([]),...
+'heat_flux_parallel_error_upper',double([]),...
+'j_parallel',double([]),...
+'j_parallel_error_index',int32(-999999999),...
+'j_parallel_error_lower',double([]),...
+'j_parallel_error_upper',double([]),...
+'pressure_parallel',double([]),...
+'pressure_parallel_error_index',int32(-999999999),...
+'pressure_parallel_error_lower',double([]),...
+'pressure_parallel_error_upper',double([]),...
+'pressure_perpendicular',double([]),...
+'pressure_perpendicular_error_index',int32(-999999999),...
+'pressure_perpendicular_error_lower',double([]),...
+'pressure_perpendicular_error_upper',double([]),...
+'v_parallel_energy_perpendicular',double([]),...
+'v_parallel_energy_perpendicular_error_index',int32(-999999999),...
+'v_parallel_energy_perpendicular_error_lower',double([]),...
+'v_parallel_energy_perpendicular_error_upper',double([]),...
+'v_perpendicular_square_energy',double([]),...
+'v_perpendicular_square_energy_error_index',int32(-999999999),...
+'v_perpendicular_square_energy_error_lower',double([]),...
+'v_perpendicular_square_energy_error_upper',double([])))
+}},...
 'frequency_norm',double(-9e+40),...
 'frequency_norm_error_index',int32(-999999999),...
 'frequency_norm_error_lower',double(-9e+40),...
@@ -374,14 +606,11 @@ struct(...
 'growth_rate_tolerance_error_index',int32(-999999999),...
 'growth_rate_tolerance_error_lower',double(-9e+40),...
 'growth_rate_tolerance_error_upper',double(-9e+40),...
-'phi_potential_perturbed_norm_imaginary',double([]),...
-'phi_potential_perturbed_norm_imaginary_error_index',int32(-999999999),...
-'phi_potential_perturbed_norm_imaginary_error_lower',double([]),...
-'phi_potential_perturbed_norm_imaginary_error_upper',double([]),...
-'phi_potential_perturbed_norm_real',double([]),...
-'phi_potential_perturbed_norm_real_error_index',int32(-999999999),...
-'phi_potential_perturbed_norm_real_error_lower',double([]),...
-'phi_potential_perturbed_norm_real_error_upper',double([]),...
+'initial_value_run',int32(-999999999),...
+'phi_potential_perturbed_norm',double([]),...
+'phi_potential_perturbed_norm_error_index',int32(-999999999),...
+'phi_potential_perturbed_norm_error_lower',double([]),...
+'phi_potential_perturbed_norm_error_upper',double([]),...
 'phi_potential_perturbed_parity',double([]),...
 'phi_potential_perturbed_parity_error_index',int32(-999999999),...
 'phi_potential_perturbed_parity_error_lower',double([]),...
@@ -394,14 +623,14 @@ struct(...
 'poloidal_angle_error_index',int32(-999999999),...
 'poloidal_angle_error_lower',double([]),...
 'poloidal_angle_error_upper',double([]),...
+'poloidal_turns',int32(-999999999),...
 'time_norm',double([]),...
 'time_norm_error_index',int32(-999999999),...
 'time_norm_error_lower',double([]),...
 'time_norm_error_upper',double([]))
-;}},...
-'poloidal_turns',int32(-999999999),...
+}},...
 'radial_component_norm',double(-9e+40),...
 'radial_component_norm_error_index',int32(-999999999),...
 'radial_component_norm_error_lower',double(-9e+40),...
 'radial_component_norm_error_upper',double(-9e+40))
-;}});
+}});
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_hard_x_rays.m b/matlab/TCV_IMAS/ids_empty/ids_empty_hard_x_rays.m
index 92ba079c548ee909a80e9fcc65dfa42ffe695cee..61e56e66bb208ee1802c2300344141dbdc4be3d6 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_hard_x_rays.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_hard_x_rays.m
@@ -1,9 +1,11 @@
 function S = ids_empty_hard_x_rays
 % function S = ids_empty_hard_x_rays
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'channel',{{struct(...
 'aperture',{{struct(...
@@ -85,7 +87,7 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40)))
-;}},...
+}},...
 'detector',struct(...
 'centre',struct(...
 'phi',double(-9e+40),...
@@ -182,7 +184,7 @@ struct(...
 'upper_bound_error_index',int32(-999999999),...
 'upper_bound_error_lower',double(-9e+40),...
 'upper_bound_error_upper',double(-9e+40))
-;}},...
+}},...
 'etendue',double(-9e+40),...
 'etendue_error_index',int32(-999999999),...
 'etendue_error_lower',double(-9e+40),...
@@ -191,6 +193,126 @@ struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
+'filter_window',{{struct(...
+'centre',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'curvature_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'geometry_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'identifier','',...
+'material',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'outline',struct(...
+'x1',double([]),...
+'x1_error_index',int32(-999999999),...
+'x1_error_lower',double([]),...
+'x1_error_upper',double([]),...
+'x2',double([]),...
+'x2_error_index',int32(-999999999),...
+'x2_error_lower',double([]),...
+'x2_error_upper',double([])),...
+'photon_absorption',double([]),...
+'photon_absorption_error_index',int32(-999999999),...
+'photon_absorption_error_lower',double([]),...
+'photon_absorption_error_upper',double([]),...
+'radius',double(-9e+40),...
+'radius_error_index',int32(-999999999),...
+'radius_error_lower',double(-9e+40),...
+'radius_error_upper',double(-9e+40),...
+'surface',double(-9e+40),...
+'surface_error_index',int32(-999999999),...
+'surface_error_lower',double(-9e+40),...
+'surface_error_upper',double(-9e+40),...
+'thickness',double(-9e+40),...
+'thickness_error_index',int32(-999999999),...
+'thickness_error_lower',double(-9e+40),...
+'thickness_error_upper',double(-9e+40),...
+'wavelength_lower',double(-9e+40),...
+'wavelength_lower_error_index',int32(-999999999),...
+'wavelength_lower_error_lower',double(-9e+40),...
+'wavelength_lower_error_upper',double(-9e+40),...
+'wavelength_upper',double(-9e+40),...
+'wavelength_upper_error_index',int32(-999999999),...
+'wavelength_upper_error_lower',double(-9e+40),...
+'wavelength_upper_error_upper',double(-9e+40),...
+'wavelengths',double([]),...
+'wavelengths_error_index',int32(-999999999),...
+'wavelengths_error_lower',double([]),...
+'wavelengths_error_upper',double([]),...
+'x1_curvature',double(-9e+40),...
+'x1_curvature_error_index',int32(-999999999),...
+'x1_curvature_error_lower',double(-9e+40),...
+'x1_curvature_error_upper',double(-9e+40),...
+'x1_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x1_width',double(-9e+40),...
+'x1_width_error_index',int32(-999999999),...
+'x1_width_error_lower',double(-9e+40),...
+'x1_width_error_upper',double(-9e+40),...
+'x2_curvature',double(-9e+40),...
+'x2_curvature_error_index',int32(-999999999),...
+'x2_curvature_error_lower',double(-9e+40),...
+'x2_curvature_error_upper',double(-9e+40),...
+'x2_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x2_width',double(-9e+40),...
+'x2_width_error_index',int32(-999999999),...
+'x2_width_error_lower',double(-9e+40),...
+'x2_width_error_upper',double(-9e+40),...
+'x3_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)))
+}},...
 'identifier','',...
 'line_of_sight',struct(...
 'first_point',struct(...
@@ -228,16 +350,18 @@ struct(...
 'time',double([]),...
 'validity',int32(-999999999),...
 'validity_timed',int32([])))
-;}},...
+}},...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -274,15 +398,64 @@ struct(...
 'upper_bound_error_lower',double(-9e+40),...
 'upper_bound_error_upper',double(-9e+40),...
 'validity_timed',int32([]))
-;}},...
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_ic_antennas.m b/matlab/TCV_IMAS/ids_empty/ids_empty_ic_antennas.m
index 6cb2c72c6ae5be1dda1b57041c724de1f9222cba..daa95f4b11e0d980ead3abc35e671310e133684f 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_ic_antennas.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_ic_antennas.m
@@ -1,9 +1,11 @@
 function S = ids_empty_ic_antennas
 % function S = ids_empty_ic_antennas
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'antenna',{{struct(...
 'frequency',struct(...
@@ -42,7 +44,7 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40)))
-;}},...
+}},...
 'frequency',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
@@ -68,7 +70,7 @@ struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''))
-;}},...
+}},...
 'name','',...
 'phase_forward',struct(...
 'data',double([]),...
@@ -128,7 +130,7 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40)))
-;}},...
+}},...
 'reflection_coefficient',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
@@ -147,6 +149,23 @@ struct(...
 'distance_to_conductor_error_lower',double(-9e+40),...
 'distance_to_conductor_error_upper',double(-9e+40),...
 'geometry',struct(...
+'annulus',struct(...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'radius_inner',double(-9e+40),...
+'radius_inner_error_index',int32(-999999999),...
+'radius_inner_error_lower',double(-9e+40),...
+'radius_inner_error_upper',double(-9e+40),...
+'radius_outer',double(-9e+40),...
+'radius_outer_error_index',int32(-999999999),...
+'radius_outer_error_lower',double(-9e+40),...
+'radius_outer_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
 'arcs_of_circle',struct(...
 'curvature_radii',double([]),...
 'curvature_radii_error_index',int32(-999999999),...
@@ -170,18 +189,18 @@ struct(...
 'beta_error_index',int32(-999999999),...
 'beta_error_lower',double(-9e+40),...
 'beta_error_upper',double(-9e+40),...
-'length',double(-9e+40),...
-'length_error_index',int32(-999999999),...
-'length_error_lower',double(-9e+40),...
-'length_error_upper',double(-9e+40),...
+'length_alpha',double(-9e+40),...
+'length_alpha_error_index',int32(-999999999),...
+'length_alpha_error_lower',double(-9e+40),...
+'length_alpha_error_upper',double(-9e+40),...
+'length_beta',double(-9e+40),...
+'length_beta_error_index',int32(-999999999),...
+'length_beta_error_lower',double(-9e+40),...
+'length_beta_error_upper',double(-9e+40),...
 'r',double(-9e+40),...
 'r_error_index',int32(-999999999),...
 'r_error_lower',double(-9e+40),...
 'r_error_upper',double(-9e+40),...
-'thickness',double(-9e+40),...
-'thickness_error_index',int32(-999999999),...
-'thickness_error_lower',double(-9e+40),...
-'thickness_error_upper',double(-9e+40),...
 'z',double(-9e+40),...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
@@ -211,7 +230,30 @@ struct(...
 'z',double(-9e+40),...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
-'z_error_upper',double(-9e+40))),...
+'z_error_upper',double(-9e+40)),...
+'thick_line',struct(...
+'first_point',struct(...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'second_point',struct(...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'thickness',double(-9e+40),...
+'thickness_error_index',int32(-999999999),...
+'thickness_error_lower',double(-9e+40),...
+'thickness_error_upper',double(-9e+40))),...
 'outline',struct(...
 'phi',double([]),...
 'phi_error_index',int32(-999999999),...
@@ -235,7 +277,7 @@ struct(...
 'width_tor_error_index',int32(-999999999),...
 'width_tor_error_lower',double(-9e+40),...
 'width_tor_error_upper',double(-9e+40))
-;}},...
+}},...
 'voltage',{{struct(...
 'amplitude',struct(...
 'data',double([]),...
@@ -264,8 +306,8 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40)))
-;}})
-;}},...
+}})
+}},...
 'name','',...
 'power_forward',struct(...
 'data',double([]),...
@@ -293,17 +335,19 @@ struct(...
 'spectrum_error_lower',double([]),...
 'spectrum_error_upper',double([]),...
 'time',double(-9e+40))
-;}})
-;}},...
+}})
+}},...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -313,12 +357,67 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
+'power_launched',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
 'reference_point',struct(...
 'r',double(-9e+40),...
 'r_error_index',int32(-999999999),...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_interferometer.m b/matlab/TCV_IMAS/ids_empty/ids_empty_interferometer.m
index e344feac9515ae8ace841fcf53d38e4e00f5f20d..5f98a86278f8aee5bd212b2dd5c601bb0a12b725 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_interferometer.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_interferometer.m
@@ -1,9 +1,11 @@
 function S = ids_empty_interferometer
 % function S = ids_empty_interferometer
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'channel',{{struct(...
 'identifier','',...
@@ -90,17 +92,19 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double(-9e+40),...
 'value_error_upper',double(-9e+40))
-;}})
-;}},...
+}})
+}},...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -118,12 +122,61 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'n_e_volume_average',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_iron_core.m b/matlab/TCV_IMAS/ids_empty/ids_empty_iron_core.m
index fc6c8873361a5d3b31cfbe04ba57ffe94837db12..f6e2159c4c13c113f4ef9a81566d189e7106c53e 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_iron_core.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_iron_core.m
@@ -1,19 +1,23 @@
 function S = ids_empty_iron_core
 % function S = ids_empty_iron_core
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -23,6 +27,51 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
@@ -35,6 +84,23 @@ struct(...
 'b_field_error_lower',double([]),...
 'b_field_error_upper',double([]),...
 'geometry',struct(...
+'annulus',struct(...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'radius_inner',double(-9e+40),...
+'radius_inner_error_index',int32(-999999999),...
+'radius_inner_error_lower',double(-9e+40),...
+'radius_inner_error_upper',double(-9e+40),...
+'radius_outer',double(-9e+40),...
+'radius_outer_error_index',int32(-999999999),...
+'radius_outer_error_lower',double(-9e+40),...
+'radius_outer_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
 'arcs_of_circle',struct(...
 'curvature_radii',double([]),...
 'curvature_radii_error_index',int32(-999999999),...
@@ -58,18 +124,18 @@ struct(...
 'beta_error_index',int32(-999999999),...
 'beta_error_lower',double(-9e+40),...
 'beta_error_upper',double(-9e+40),...
-'length',double(-9e+40),...
-'length_error_index',int32(-999999999),...
-'length_error_lower',double(-9e+40),...
-'length_error_upper',double(-9e+40),...
+'length_alpha',double(-9e+40),...
+'length_alpha_error_index',int32(-999999999),...
+'length_alpha_error_lower',double(-9e+40),...
+'length_alpha_error_upper',double(-9e+40),...
+'length_beta',double(-9e+40),...
+'length_beta_error_index',int32(-999999999),...
+'length_beta_error_lower',double(-9e+40),...
+'length_beta_error_upper',double(-9e+40),...
 'r',double(-9e+40),...
 'r_error_index',int32(-999999999),...
 'r_error_lower',double(-9e+40),...
 'r_error_upper',double(-9e+40),...
-'thickness',double(-9e+40),...
-'thickness_error_index',int32(-999999999),...
-'thickness_error_lower',double(-9e+40),...
-'thickness_error_upper',double(-9e+40),...
 'z',double(-9e+40),...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
@@ -99,7 +165,30 @@ struct(...
 'z',double(-9e+40),...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
-'z_error_upper',double(-9e+40))),...
+'z_error_upper',double(-9e+40)),...
+'thick_line',struct(...
+'first_point',struct(...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'second_point',struct(...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'thickness',double(-9e+40),...
+'thickness_error_index',int32(-999999999),...
+'thickness_error_lower',double(-9e+40),...
+'thickness_error_upper',double(-9e+40))),...
 'identifier','',...
 'magnetisation_r',struct(...
 'data',double([]),...
@@ -118,5 +207,5 @@ struct(...
 'permeability_relative_error_index',int32(-999999999),...
 'permeability_relative_error_lower',double([]),...
 'permeability_relative_error_upper',double([]))
-;}},...
+}},...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_langmuir_probes.m b/matlab/TCV_IMAS/ids_empty/ids_empty_langmuir_probes.m
index 3397b1848a2df1673e5cfb296ff9134cb2bc5d01..b6222b346d518cc6c459046996d426df05abe8f6 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_langmuir_probes.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_langmuir_probes.m
@@ -1,19 +1,23 @@
 function S = ids_empty_langmuir_probes
 % function S = ids_empty_langmuir_probes
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -27,7 +31,14 @@ struct(...
 'data_error_upper',double([]),...
 'validity',int32(-999999999),...
 'validity_timed',int32([])),...
-'distance_separatrix',struct(...
+'distance_separatrix_midplane',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'validity',int32(-999999999),...
+'validity_timed',int32([])),...
+'fluence',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
 'data_error_lower',double([]),...
@@ -56,6 +67,41 @@ struct(...
 'data_error_upper',double([]),...
 'validity',int32(-999999999),...
 'validity_timed',int32([])),...
+'j_i_parallel_sigma',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'validity',int32(-999999999),...
+'validity_timed',int32([])),...
+'j_i_saturation',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'validity',int32(-999999999),...
+'validity_timed',int32([])),...
+'j_i_saturation_kurtosis',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'validity',int32(-999999999),...
+'validity_timed',int32([])),...
+'j_i_saturation_sigma',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'validity',int32(-999999999),...
+'validity_timed',int32([])),...
+'j_i_saturation_skew',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'validity',int32(-999999999),...
+'validity_timed',int32([])),...
 'multi_temperature_fits',{{struct(...
 't_e',struct(...
 'data',double([]),...
@@ -72,7 +118,7 @@ struct(...
 'validity',int32(-999999999),...
 'validity_timed',int32([])),...
 'time',double([]))
-;}},...
+}},...
 'n_e',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
@@ -127,6 +173,13 @@ struct(...
 'data_error_upper',double([]),...
 'validity',int32(-999999999),...
 'validity_timed',int32([])),...
+'v_floating_sigma',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'validity',int32(-999999999),...
+'validity_timed',int32([])),...
 'v_plasma',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
@@ -134,17 +187,79 @@ struct(...
 'data_error_upper',double([]),...
 'validity',int32(-999999999),...
 'validity_timed',int32([])))
-;}},...
+}},...
+'equilibrium_id',struct(...
+'data_entry',struct(...
+'machine','',...
+'pulse',int32(-999999999),...
+'pulse_type','',...
+'run',int32(-999999999),...
+'user',''),...
+'name','',...
+'occurrence',int32(-999999999)),...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
+'midplane',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
 'reciprocating',{{struct(...
 'identifier','',...
 'name','',...
@@ -171,6 +286,13 @@ struct(...
 'data_error_upper',double([]),...
 'validity',int32(-999999999),...
 'validity_timed',int32([])),...
+'j_i_kurtosis',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'validity',int32(-999999999),...
+'validity_timed',int32([])),...
 'j_i_parallel',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
@@ -178,6 +300,27 @@ struct(...
 'data_error_upper',double([]),...
 'validity',int32(-999999999),...
 'validity_timed',int32([])),...
+'j_i_saturation',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'validity',int32(-999999999),...
+'validity_timed',int32([])),...
+'j_i_sigma',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'validity',int32(-999999999),...
+'validity_timed',int32([])),...
+'j_i_skew',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'validity',int32(-999999999),...
+'validity_timed',int32([])),...
 'position',struct(...
 'phi',double([]),...
 'phi_error_index',int32(-999999999),...
@@ -213,9 +356,23 @@ struct(...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'validity',int32(-999999999),...
+'validity_timed',int32([])),...
+'v_floating_sigma',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'validity',int32(-999999999),...
 'validity_timed',int32([])))
-;}},...
-'distance_separatrix',struct(...
+}},...
+'distance_separatrix_midplane',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'validity',int32(-999999999),...
+'validity_timed',int32([])),...
+'distance_x_point_z',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
 'data_error_lower',double([]),...
@@ -277,10 +434,10 @@ struct(...
 'data_error_upper',double([]),...
 'validity',int32(-999999999),...
 'validity_timed',int32([])))
-;}},...
+}},...
 'surface_area',double([]),...
 'surface_area_error_index',int32(-999999999),...
 'surface_area_error_lower',double([]),...
 'surface_area_error_upper',double([]))
-;}},...
+}},...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_lh_antennas.m b/matlab/TCV_IMAS/ids_empty/ids_empty_lh_antennas.m
index 314c635bdcf73468d42a8565d4674e85a2935919..82a5c1a219931c5ddefd88b052740fab96e8a857 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_lh_antennas.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_lh_antennas.m
@@ -1,9 +1,11 @@
 function S = ids_empty_lh_antennas
 % function S = ids_empty_lh_antennas
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'antenna',{{struct(...
 'distance_to_antenna',double([]),...
@@ -49,7 +51,7 @@ struct(...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])))
-;}},...
+}},...
 'n_e',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
@@ -152,17 +154,19 @@ struct(...
 'power_density_spectrum_2d_error_lower',double([]),...
 'power_density_spectrum_2d_error_upper',double([]),...
 'time',double([]))
-;}})
-;}},...
+}})
+}},...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -172,18 +176,73 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'power',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])),...
+'power_launched',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
 'reference_point',struct(...
 'r',double(-9e+40),...
 'r_error_index',int32(-999999999),...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_magnetics.m b/matlab/TCV_IMAS/ids_empty/ids_empty_magnetics.m
index b21a9853c3821a5e461e95cc3637410f7eb5189f..f0f8c9e907e60afa245a78b0d28c1e6be4e77ca6 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_magnetics.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_magnetics.m
@@ -1,9 +1,11 @@
 function S = ids_empty_magnetics
 % function S = ids_empty_magnetics
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'b_field_pol_probe',{{struct(...
 'area',double(-9e+40),...
@@ -72,7 +74,7 @@ struct(...
 'time',double([]),...
 'validity',int32(-999999999),...
 'validity_timed',int32([])))
-;}},...
+}},...
 'b_field_tor_probe',{{struct(...
 'area',double(-9e+40),...
 'area_error_index',int32(-999999999),...
@@ -140,7 +142,7 @@ struct(...
 'time',double([]),...
 'validity',int32(-999999999),...
 'validity_timed',int32([])))
-;}},...
+}},...
 'bpol_probe',{{struct(...
 'area',double(-9e+40),...
 'area_error_index',int32(-999999999),...
@@ -208,16 +210,18 @@ struct(...
 'time',double([]),...
 'validity',int32(-999999999),...
 'validity_timed',int32([])))
-;}},...
+}},...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -230,7 +234,7 @@ struct(...
 'data_error_upper',double([]),...
 'method_name','',...
 'time',double([]))
-;}},...
+}},...
 'flux_loop',{{struct(...
 'area',double(-9e+40),...
 'area_error_index',int32(-999999999),...
@@ -264,7 +268,7 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40))
-;}},...
+}},...
 'type',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -277,11 +281,56 @@ struct(...
 'time',double([]),...
 'validity',int32(-999999999),...
 'validity_timed',int32([])))
-;}},...
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
@@ -295,7 +344,11 @@ struct(...
 'data_error_upper',double([]),...
 'method_name','',...
 'time',double([]))
-;}},...
+}},...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'method',{{struct(...
 'ip',struct(...
 'data',double([]),...
@@ -304,7 +357,7 @@ struct(...
 'data_error_upper',double([]),...
 'time',double([])),...
 'name','')
-;}},...
+}},...
 'rogowski_coil',{{struct(...
 'area',double(-9e+40),...
 'area_error_index',int32(-999999999),...
@@ -338,10 +391,48 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40))
-;}},...
+}},...
 'turns_per_metre',double(-9e+40),...
 'turns_per_metre_error_index',int32(-999999999),...
 'turns_per_metre_error_lower',double(-9e+40),...
 'turns_per_metre_error_upper',double(-9e+40))
-;}},...
+}},...
+'shunt',{{struct(...
+'divertor_index',int32(-999999999),...
+'identifier','',...
+'name','',...
+'position',struct(...
+'first_point',struct(...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'second_point',struct(...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40))),...
+'resistance',double(-9e+40),...
+'resistance_error_index',int32(-999999999),...
+'resistance_error_lower',double(-9e+40),...
+'resistance_error_upper',double(-9e+40),...
+'target_index',int32(-999999999),...
+'tile_index',int32(-999999999),...
+'voltage',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([]),...
+'validity',int32(-999999999),...
+'validity_timed',int32([])))
+}},...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_mhd.m b/matlab/TCV_IMAS/ids_empty/ids_empty_mhd.m
index ccb314981efdf7fb554ad9c0466e9be76107e26a..4f9bcc8a1f0dd3591bb0edf3be290e00116cebb8 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_mhd.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_mhd.m
@@ -1,19 +1,23 @@
 function S = ids_empty_mhd
 % function S = ids_empty_mhd
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -31,7 +35,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'a_field_tor',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -43,7 +47,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'a_field_z',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -55,7 +59,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'b_field_r',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -67,7 +71,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'b_field_tor',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -79,7 +83,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'b_field_z',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -91,7 +95,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'electrons',struct(...
 'temperature',{{struct(...
 'coefficients',double([]),...
@@ -104,7 +108,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}}),...
+}}),...
 'j_r',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -116,7 +120,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'j_tor',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -128,7 +132,19 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
+'j_tor_r',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'j_z',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -140,7 +156,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'mass_density',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -152,7 +168,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'n_i_total',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -164,7 +180,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'phi_potential',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -176,7 +192,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'psi',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -188,7 +204,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 't_i_average',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -200,7 +216,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'time',double(-9e+40),...
 'velocity_parallel',{{struct(...
 'coefficients',double([]),...
@@ -213,7 +229,19 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
+'velocity_parallel_over_b_field',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'velocity_r',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -225,7 +253,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'velocity_tor',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -237,7 +265,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'velocity_z',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -249,7 +277,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'vorticity',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -261,7 +289,19 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
+'vorticity_over_r',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
 'zeff',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -273,8 +313,8 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}})
-;}},...
+}})
+}},...
 'grid_ggd',{{struct(...
 'grid_subset',{{struct(...
 'base',{{struct(...
@@ -290,15 +330,15 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([]))
-;}},...
+}},...
 'dimension',int32(-999999999),...
 'element',{{struct(...
 'object',{{struct(...
 'dimension',int32(-999999999),...
 'index',int32(-999999999),...
 'space',int32(-999999999))
-;}})
-;}},...
+}})
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -316,11 +356,12 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([])))
-;}},...
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
+'path','',...
 'space',{{struct(...
 'coordinates_type',int32([]),...
 'geometry_type',struct(...
@@ -332,12 +373,20 @@ struct(...
 'index',int32(-999999999),...
 'name',''),...
 'objects_per_dimension',{{struct(...
+'geometry_content',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
 'object',{{struct(...
 'boundary',{{struct(...
 'index',int32(-999999999),...
 'neighbours',int32([]))
-;}},...
+}},...
 'geometry',double([]),...
+'geometry_2d',double([]),...
+'geometry_2d_error_index',int32(-999999999),...
+'geometry_2d_error_lower',double([]),...
+'geometry_2d_error_upper',double([]),...
 'geometry_error_index',int32(-999999999),...
 'geometry_error_lower',double([]),...
 'geometry_error_upper',double([]),...
@@ -346,15 +395,60 @@ struct(...
 'measure_error_lower',double(-9e+40),...
 'measure_error_upper',double(-9e+40),...
 'nodes',int32([]))
-;}})
-;}})
-;}},...
+}})
+}})
+}},...
 'time',double(-9e+40))
-;}},...
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_mhd_linear.m b/matlab/TCV_IMAS/ids_empty/ids_empty_mhd_linear.m
index 99597a70c5837fa2d5de6100bb85d934281d673c..6cae756580a7015bfea8b0c67f91d7a390101783 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_mhd_linear.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_mhd_linear.m
@@ -1,19 +1,23 @@
 function S = ids_empty_mhd_linear
 % function S = ids_empty_mhd_linear
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -29,6 +33,51 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
@@ -138,7 +187,7 @@ struct(...
 'real_error_index',int32(-999999999),...
 'real_error_lower',double([]),...
 'real_error_upper',double([]))
-;}},...
+}},...
 'b_field_perturbed',struct(...
 'coordinate1',struct(...
 'coefficients_imaginary',double([]),...
@@ -616,8 +665,8 @@ struct(...
 'description','',...
 'index',int32(-999999999),...
 'name','')))
-;}})
-;}},...
+}})
+}},...
 'vacuum_toroidal_field',struct(...
 'b0',double([]),...
 'b0_error_index',int32(-999999999),...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_mse.m b/matlab/TCV_IMAS/ids_empty/ids_empty_mse.m
index 46e67aa67f11dc958923628da69343cb5e26db58..569ffed4fa8908c637c43d596a2db8d226aa3451 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_mse.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_mse.m
@@ -1,9 +1,11 @@
 function S = ids_empty_mse
 % function S = ids_empty_mse
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'channel',{{struct(...
 'active_spatial_resolution',{{struct(...
@@ -38,7 +40,7 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40)))
-;}},...
+}},...
 'aperture',{{struct(...
 'centre',struct(...
 'phi',double(-9e+40),...
@@ -118,7 +120,7 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40)))
-;}},...
+}},...
 'detector',struct(...
 'centre',struct(...
 'phi',double(-9e+40),...
@@ -234,16 +236,18 @@ struct(...
 'time',double([]),...
 'validity',int32(-999999999),...
 'validity_timed',int32([])))
-;}},...
+}},...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -253,10 +257,59 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_nbi.m b/matlab/TCV_IMAS/ids_empty/ids_empty_nbi.m
index 1c8de675aa767bd6c1f6ab969d88c6d74e29eae8..36345eeacf455fbd5935dda9a8d9da233e568a9f 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_nbi.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_nbi.m
@@ -1,19 +1,23 @@
 function S = ids_empty_nbi
 % function S = ids_empty_nbi
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -23,12 +27,61 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'time',double([]),...
 'unit',{{struct(...
 'aperture',{{struct(...
@@ -110,7 +163,7 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40)))
-;}},...
+}},...
 'beam_current_fraction',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
@@ -168,7 +221,7 @@ struct(...
 'vertical_error_index',int32(-999999999),...
 'vertical_error_lower',double(-9e+40),...
 'vertical_error_upper',double(-9e+40))
-;}},...
+}},...
 'focus',struct(...
 'focal_length_horizontal',double(-9e+40),...
 'focal_length_horizontal_error_index',int32(-999999999),...
@@ -226,7 +279,7 @@ struct(...
 'delta_tangency_radius_error_lower',double(-9e+40),...
 'delta_tangency_radius_error_upper',double(-9e+40),...
 'time',double(-9e+40))
-;}},...
+}},...
 'width_horizontal',double(-9e+40),...
 'width_horizontal_error_index',int32(-999999999),...
 'width_horizontal_error_lower',double(-9e+40),...
@@ -235,7 +288,7 @@ struct(...
 'width_vertical_error_index',int32(-999999999),...
 'width_vertical_error_lower',double(-9e+40),...
 'width_vertical_error_upper',double(-9e+40))
-;}},...
+}},...
 'energy',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
@@ -339,4 +392,4 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40)))
-;}});
+}});
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_neutron_diagnostic.m b/matlab/TCV_IMAS/ids_empty/ids_empty_neutron_diagnostic.m
index 36473c4687f64019e97b2740dcf8595ba135d01e..0086f0c77e3ffe76d82594b62797c82b1f927dbc 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_neutron_diagnostic.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_neutron_diagnostic.m
@@ -1,9 +1,11 @@
 function S = ids_empty_neutron_diagnostic
 % function S = ids_empty_neutron_diagnostic
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'characteristics',struct(...
 'dead_time',double(-9e+40),...
@@ -22,30 +24,26 @@ struct(...
 'index',int32(-999999999),...
 'mode',{{struct(...
 'count_limit_max',double(-9e+40),...
-'count_limit_max_error_index',int32(-999999999),...
-'count_limit_max_error_lower',double(-9e+40),...
-'count_limit_max_error_upper',double(-9e+40),...
 'count_limit_min',double(-9e+40),...
-'count_limit_min_error_index',int32(-999999999),...
-'count_limit_min_error_lower',double(-9e+40),...
-'count_limit_min_error_upper',double(-9e+40),...
 'index',int32(-999999999),...
 'name','')
-;}},...
+}},...
 'probability_overlap',double(-9e+40),...
 'probability_overlap_error_index',int32(-999999999),...
 'probability_overlap_error_lower',double(-9e+40),...
 'probability_overlap_error_upper',double(-9e+40))
-;}}),...
+}}),...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -160,7 +158,7 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40)))
-;}},...
+}},...
 'b_field_sensor',struct(...
 'amplitude',struct(...
 'data',double([]),...
@@ -287,7 +285,7 @@ struct(...
 'upper_bound_error_index',int32(-999999999),...
 'upper_bound_error_lower',double(-9e+40),...
 'upper_bound_error_upper',double(-9e+40))
-;}},...
+}},...
 'field_of_view',struct(...
 'direction_to_detector',struct(...
 'x',double([]),...
@@ -320,7 +318,16 @@ struct(...
 'solid_angle_error_lower',double([]),...
 'solid_angle_error_upper',double([])),...
 'green_functions',struct(...
-'event_in_detector',struct(...
+'event_in_detector_neutron_flux',struct(...
+'type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([])),...
+'event_in_detector_response_function',struct(...
 'type',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -349,7 +356,7 @@ struct(...
 'data_error_upper',double([]),...
 'time',double([])),...
 'name','')
-;}},...
+}},...
 'name','',...
 'position',struct(...
 'phi',double(-9e+40),...
@@ -379,7 +386,7 @@ struct(...
 'converter_volume_error_lower',double(-9e+40),...
 'converter_volume_error_upper',double(-9e+40),...
 'index',int32(-999999999))
-;}},...
+}},...
 'spectrum',struct(...
 'data',int32([]),...
 'time',double([])),...
@@ -472,17 +479,66 @@ struct(...
 'description','',...
 'index',int32(-999999999),...
 'name','')))
-;}},...
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'synthetic_signals',struct(...
 'fusion_power',double([]),...
 'fusion_power_error_index',int32(-999999999),...
@@ -504,7 +560,6 @@ struct(...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40)),...
 'radiation',{{struct(...
-'index',int32(-999999999),...
 'reaction',{{struct(...
 'd2flux_drdz',double([]),...
 'd2flux_drdz_error_index',int32(-999999999),...
@@ -518,7 +573,6 @@ struct(...
 'flux_error_index',int32(-999999999),...
 'flux_error_lower',double([]),...
 'flux_error_upper',double([]),...
-'index',int32(-999999999),...
 'reaction_rate',double([]),...
 'reaction_rate_error_index',int32(-999999999),...
 'reaction_rate_error_lower',double([]),...
@@ -527,6 +581,6 @@ struct(...
 'sensitivity_error_index',int32(-999999999),...
 'sensitivity_error_lower',double([]),...
 'sensitivity_error_upper',double([]))
-;}})
-;}})
-;}});
+}})
+}})
+}});
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_ntms.m b/matlab/TCV_IMAS/ids_empty/ids_empty_ntms.m
index c361ce625912c72b0dc25162a3ab36a81d8aaca7..9ec91e040f8d495833bd4cc646766df5e22adb0a 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_ntms.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_ntms.m
@@ -1,19 +1,23 @@
 function S = ids_empty_ntms
 % function S = ids_empty_ntms
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -23,6 +27,51 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
@@ -43,7 +92,7 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double(-9e+40),...
 'value_error_upper',double(-9e+40))
-;}},...
+}},...
 'detailed_evolution',struct(...
 'calculation_method','',...
 'delta_diff',double([]),...
@@ -56,7 +105,7 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([]))
-;}},...
+}},...
 'dfrequency_dt',double([]),...
 'dfrequency_dt_error_index',int32(-999999999),...
 'dfrequency_dt_error_lower',double([]),...
@@ -97,7 +146,7 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([]))
-;}},...
+}},...
 'width',double([]),...
 'width_error_index',int32(-999999999),...
 'width_error_lower',double([]),...
@@ -158,14 +207,14 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double(-9e+40),...
 'value_error_upper',double(-9e+40))
-;}},...
+}},...
 'width',double(-9e+40),...
 'width_error_index',int32(-999999999),...
 'width_error_lower',double(-9e+40),...
 'width_error_upper',double(-9e+40))
-;}},...
+}},...
 'time',double(-9e+40))
-;}},...
+}},...
 'vacuum_toroidal_field',struct(...
 'b0',double([]),...
 'b0_error_index',int32(-999999999),...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_numerics.m b/matlab/TCV_IMAS/ids_empty/ids_empty_numerics.m
deleted file mode 100644
index 2e792d44661b9e4fc27262b72e2cfb164e896ac2..0000000000000000000000000000000000000000
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_numerics.m
+++ /dev/null
@@ -1,30 +0,0 @@
-function S = ids_empty_numerics
-% function S = ids_empty_numerics
-%
-% File written automatically using struct2m.m 
-
-S = ... 
-struct(...
-'ids_properties',struct(...
-'comment','',...
-'creation_date','',...
-'homogeneous_time',int32(-999999999),...
-'provider','',...
-'source','',...
-'version_put',struct(...
-'access_layer','',...
-'access_layer_language','',...
-'data_dictionary','')),...
-'time',double([]),...
-'time_end',double([]),...
-'time_end_error_index',int32(-999999999),...
-'time_end_error_lower',double([]),...
-'time_end_error_upper',double([]),...
-'time_start',double([]),...
-'time_start_error_index',int32(-999999999),...
-'time_start_error_lower',double([]),...
-'time_start_error_upper',double([]),...
-'time_step',double([]),...
-'time_step_error_index',int32(-999999999),...
-'time_step_error_lower',double([]),...
-'time_step_error_upper',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_pellets.m b/matlab/TCV_IMAS/ids_empty/ids_empty_pellets.m
index 7b27991a856f8ca1eea719ac01b18d655c0a8884..9b4288dce6a592eae2c53795193033c5cb48f913 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_pellets.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_pellets.m
@@ -1,19 +1,23 @@
 function S = ids_empty_pellets
 % function S = ids_empty_pellets
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -23,12 +27,61 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'time',double([]),...
 'time_slice',{{struct(...
 'pellet',{{struct(...
@@ -124,7 +177,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'molecules_n',double(-9e+40),...
 'molecules_n_error_index',int32(-999999999),...
@@ -161,11 +214,11 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'velocity_initial',double(-9e+40),...
 'velocity_initial_error_index',int32(-999999999),...
 'velocity_initial_error_lower',double(-9e+40),...
 'velocity_initial_error_upper',double(-9e+40))
-;}},...
+}},...
 'time',double(-9e+40))
-;}});
+}});
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_pf_active.m b/matlab/TCV_IMAS/ids_empty/ids_empty_pf_active.m
index 0f5f29e759bf11f98515735f1643270dba48df7d..0c5db01eb0d63c5ff9346e2d390751b5a1e9bcf3 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_pf_active.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_pf_active.m
@@ -1,9 +1,11 @@
 function S = ids_empty_pf_active
 % function S = ids_empty_pf_active
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'circuit',{{struct(...
 'connections',int32([]),...
@@ -22,16 +24,18 @@ struct(...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])))
-;}},...
+}},...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -55,15 +59,29 @@ struct(...
 'data_error_upper',double([]),...
 'time',double([])),...
 'current_limit_max',double([]),...
-'current_limit_max_error_index',int32(-999999999),...
-'current_limit_max_error_lower',double([]),...
-'current_limit_max_error_upper',double([]),...
 'element',{{struct(...
 'area',double(-9e+40),...
 'area_error_index',int32(-999999999),...
 'area_error_lower',double(-9e+40),...
 'area_error_upper',double(-9e+40),...
 'geometry',struct(...
+'annulus',struct(...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'radius_inner',double(-9e+40),...
+'radius_inner_error_index',int32(-999999999),...
+'radius_inner_error_lower',double(-9e+40),...
+'radius_inner_error_upper',double(-9e+40),...
+'radius_outer',double(-9e+40),...
+'radius_outer_error_index',int32(-999999999),...
+'radius_outer_error_lower',double(-9e+40),...
+'radius_outer_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
 'arcs_of_circle',struct(...
 'curvature_radii',double([]),...
 'curvature_radii_error_index',int32(-999999999),...
@@ -87,18 +105,18 @@ struct(...
 'beta_error_index',int32(-999999999),...
 'beta_error_lower',double(-9e+40),...
 'beta_error_upper',double(-9e+40),...
-'length',double(-9e+40),...
-'length_error_index',int32(-999999999),...
-'length_error_lower',double(-9e+40),...
-'length_error_upper',double(-9e+40),...
+'length_alpha',double(-9e+40),...
+'length_alpha_error_index',int32(-999999999),...
+'length_alpha_error_lower',double(-9e+40),...
+'length_alpha_error_upper',double(-9e+40),...
+'length_beta',double(-9e+40),...
+'length_beta_error_index',int32(-999999999),...
+'length_beta_error_lower',double(-9e+40),...
+'length_beta_error_upper',double(-9e+40),...
 'r',double(-9e+40),...
 'r_error_index',int32(-999999999),...
 'r_error_lower',double(-9e+40),...
 'r_error_upper',double(-9e+40),...
-'thickness',double(-9e+40),...
-'thickness_error_index',int32(-999999999),...
-'thickness_error_lower',double(-9e+40),...
-'thickness_error_upper',double(-9e+40),...
 'z',double(-9e+40),...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
@@ -128,21 +146,52 @@ struct(...
 'z',double(-9e+40),...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
-'z_error_upper',double(-9e+40))),...
+'z_error_upper',double(-9e+40)),...
+'thick_line',struct(...
+'first_point',struct(...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'second_point',struct(...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'thickness',double(-9e+40),...
+'thickness_error_index',int32(-999999999),...
+'thickness_error_lower',double(-9e+40),...
+'thickness_error_upper',double(-9e+40))),...
 'identifier','',...
 'name','',...
 'turns_with_sign',double(-9e+40),...
 'turns_with_sign_error_index',int32(-999999999),...
 'turns_with_sign_error_lower',double(-9e+40),...
 'turns_with_sign_error_upper',double(-9e+40))
-;}},...
+}},...
 'energy_limit_max',double(-9e+40),...
-'energy_limit_max_error_index',int32(-999999999),...
-'energy_limit_max_error_lower',double(-9e+40),...
-'energy_limit_max_error_upper',double(-9e+40),...
+'function',{{struct(...
+'description','',...
+'index',int32(-999999999),...
+'name','')
+}},...
 'identifier','',...
 'name','',...
 'resistance',double(-9e+40),...
+'resistance_additional',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
 'resistance_error_index',int32(-999999999),...
 'resistance_error_lower',double(-9e+40),...
 'resistance_error_upper',double(-9e+40),...
@@ -156,17 +205,66 @@ struct(...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])))
-;}},...
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'radial_force',{{struct(...
 'combination',double([]),...
 'combination_error_index',int32(-999999999),...
@@ -187,7 +285,7 @@ struct(...
 'limit_min_error_lower',double(-9e+40),...
 'limit_min_error_upper',double(-9e+40),...
 'name','')
-;}},...
+}},...
 'supply',{{struct(...
 'current',struct(...
 'data',double([]),...
@@ -196,13 +294,7 @@ struct(...
 'data_error_upper',double([]),...
 'time',double([])),...
 'current_limit_max',double(-9e+40),...
-'current_limit_max_error_index',int32(-999999999),...
-'current_limit_max_error_lower',double(-9e+40),...
-'current_limit_max_error_upper',double(-9e+40),...
 'current_limit_min',double(-9e+40),...
-'current_limit_min_error_index',int32(-999999999),...
-'current_limit_min_error_lower',double(-9e+40),...
-'current_limit_min_error_upper',double(-9e+40),...
 'current_limiter_gain',double(-9e+40),...
 'current_limiter_gain_error_index',int32(-999999999),...
 'current_limiter_gain_error_lower',double(-9e+40),...
@@ -212,9 +304,6 @@ struct(...
 'delay_error_lower',double(-9e+40),...
 'delay_error_upper',double(-9e+40),...
 'energy_limit_max',double(-9e+40),...
-'energy_limit_max_error_index',int32(-999999999),...
-'energy_limit_max_error_lower',double(-9e+40),...
-'energy_limit_max_error_upper',double(-9e+40),...
 'filter_denominator',double([]),...
 'filter_denominator_error_index',int32(-999999999),...
 'filter_denominator_error_lower',double([]),...
@@ -238,14 +327,8 @@ struct(...
 'data_error_upper',double([]),...
 'time',double([])),...
 'voltage_limit_max',double(-9e+40),...
-'voltage_limit_max_error_index',int32(-999999999),...
-'voltage_limit_max_error_lower',double(-9e+40),...
-'voltage_limit_max_error_upper',double(-9e+40),...
-'voltage_limit_min',double(-9e+40),...
-'voltage_limit_min_error_index',int32(-999999999),...
-'voltage_limit_min_error_lower',double(-9e+40),...
-'voltage_limit_min_error_upper',double(-9e+40))
-;}},...
+'voltage_limit_min',double(-9e+40))
+}},...
 'time',double([]),...
 'vertical_force',{{struct(...
 'combination',double([]),...
@@ -267,4 +350,4 @@ struct(...
 'limit_min_error_lower',double(-9e+40),...
 'limit_min_error_upper',double(-9e+40),...
 'name','')
-;}});
+}});
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_pf_passive.m b/matlab/TCV_IMAS/ids_empty/ids_empty_pf_passive.m
index ab22c5c5e4948dc6d5c8a2c327a5c5fc5a0bc16d..514828e27c1a172adf86674e0408506a72d3f72d 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_pf_passive.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_pf_passive.m
@@ -1,19 +1,23 @@
 function S = ids_empty_pf_passive
 % function S = ids_empty_pf_passive
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -23,6 +27,51 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
@@ -40,6 +89,23 @@ struct(...
 'area_error_lower',double(-9e+40),...
 'area_error_upper',double(-9e+40),...
 'geometry',struct(...
+'annulus',struct(...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'radius_inner',double(-9e+40),...
+'radius_inner_error_index',int32(-999999999),...
+'radius_inner_error_lower',double(-9e+40),...
+'radius_inner_error_upper',double(-9e+40),...
+'radius_outer',double(-9e+40),...
+'radius_outer_error_index',int32(-999999999),...
+'radius_outer_error_lower',double(-9e+40),...
+'radius_outer_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
 'arcs_of_circle',struct(...
 'curvature_radii',double([]),...
 'curvature_radii_error_index',int32(-999999999),...
@@ -63,18 +129,18 @@ struct(...
 'beta_error_index',int32(-999999999),...
 'beta_error_lower',double(-9e+40),...
 'beta_error_upper',double(-9e+40),...
-'length',double(-9e+40),...
-'length_error_index',int32(-999999999),...
-'length_error_lower',double(-9e+40),...
-'length_error_upper',double(-9e+40),...
+'length_alpha',double(-9e+40),...
+'length_alpha_error_index',int32(-999999999),...
+'length_alpha_error_lower',double(-9e+40),...
+'length_alpha_error_upper',double(-9e+40),...
+'length_beta',double(-9e+40),...
+'length_beta_error_index',int32(-999999999),...
+'length_beta_error_lower',double(-9e+40),...
+'length_beta_error_upper',double(-9e+40),...
 'r',double(-9e+40),...
 'r_error_index',int32(-999999999),...
 'r_error_lower',double(-9e+40),...
 'r_error_upper',double(-9e+40),...
-'thickness',double(-9e+40),...
-'thickness_error_index',int32(-999999999),...
-'thickness_error_lower',double(-9e+40),...
-'thickness_error_upper',double(-9e+40),...
 'z',double(-9e+40),...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
@@ -104,14 +170,37 @@ struct(...
 'z',double(-9e+40),...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
-'z_error_upper',double(-9e+40))),...
+'z_error_upper',double(-9e+40)),...
+'thick_line',struct(...
+'first_point',struct(...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'second_point',struct(...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'thickness',double(-9e+40),...
+'thickness_error_index',int32(-999999999),...
+'thickness_error_lower',double(-9e+40),...
+'thickness_error_upper',double(-9e+40))),...
 'identifier','',...
 'name','',...
 'turns_with_sign',double(-9e+40),...
 'turns_with_sign_error_index',int32(-999999999),...
 'turns_with_sign_error_lower',double(-9e+40),...
 'turns_with_sign_error_upper',double(-9e+40))
-;}},...
+}},...
 'name','',...
 'resistance',double(-9e+40),...
 'resistance_error_index',int32(-999999999),...
@@ -122,5 +211,5 @@ struct(...
 'resistivity_error_lower',double(-9e+40),...
 'resistivity_error_upper',double(-9e+40),...
 'time',double([]))
-;}},...
+}},...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_plasma_initiation.m b/matlab/TCV_IMAS/ids_empty/ids_empty_plasma_initiation.m
new file mode 100644
index 0000000000000000000000000000000000000000..5e066c24a9626d689d50bc94627bbf254d3f46dc
--- /dev/null
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_plasma_initiation.m
@@ -0,0 +1,197 @@
+function S = ids_empty_plasma_initiation
+% function S = ids_empty_plasma_initiation
+%
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
+
+S = ...
+struct(...
+'b_field_lines',{{struct(...
+'e_field_parallel',double([]),...
+'e_field_parallel_error_index',int32(-999999999),...
+'e_field_parallel_error_lower',double([]),...
+'e_field_parallel_error_upper',double([]),...
+'e_field_townsend',double([]),...
+'e_field_townsend_error_index',int32(-999999999),...
+'e_field_townsend_error_lower',double([]),...
+'e_field_townsend_error_upper',double([]),...
+'grid',struct(...
+'dim1',double([]),...
+'dim1_error_index',int32(-999999999),...
+'dim1_error_lower',double([]),...
+'dim1_error_upper',double([]),...
+'dim2',double([]),...
+'dim2_error_index',int32(-999999999),...
+'dim2_error_lower',double([]),...
+'dim2_error_upper',double([]),...
+'volume_element',double([]),...
+'volume_element_error_index',int32(-999999999),...
+'volume_element_error_lower',double([]),...
+'volume_element_error_upper',double([])),...
+'grid_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'lengths',double([]),...
+'lengths_error_index',int32(-999999999),...
+'lengths_error_lower',double([]),...
+'lengths_error_upper',double([]),...
+'open_fraction',double(-9e+40),...
+'open_fraction_error_index',int32(-999999999),...
+'open_fraction_error_lower',double(-9e+40),...
+'open_fraction_error_upper',double(-9e+40),...
+'pressure',double(-9e+40),...
+'pressure_error_index',int32(-999999999),...
+'pressure_error_lower',double(-9e+40),...
+'pressure_error_upper',double(-9e+40),...
+'starting_positions',struct(...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([])),...
+'time',double(-9e+40),...
+'townsend_or_closed_grid_positions',struct(...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([])),...
+'townsend_or_closed_positions',struct(...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([])))
+}},...
+'code',struct(...
+'commit','',...
+'description','',...
+'library',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'name','',...
+'output_flag',int32([]),...
+'parameters','',...
+'repository','',...
+'version',''),...
+'global_quantities',struct(...
+'b_field_perpendicular',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'b_field_stray',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'connection_length',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'coulomb_logarithm',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([]))),...
+'ids_properties',struct(...
+'comment','',...
+'creation_date','',...
+'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
+'provider','',...
+'source','',...
+'version_put',struct(...
+'access_layer','',...
+'access_layer_language','',...
+'data_dictionary','')),...
+'profiles_2d',{{struct(...
+'e_field_tor',double([]),...
+'e_field_tor_error_index',int32(-999999999),...
+'e_field_tor_error_lower',double([]),...
+'e_field_tor_error_upper',double([]),...
+'grid',struct(...
+'dim1',double([]),...
+'dim1_error_index',int32(-999999999),...
+'dim1_error_lower',double([]),...
+'dim1_error_upper',double([]),...
+'dim2',double([]),...
+'dim2_error_index',int32(-999999999),...
+'dim2_error_lower',double([]),...
+'dim2_error_upper',double([]),...
+'volume_element',double([]),...
+'volume_element_error_index',int32(-999999999),...
+'volume_element_error_lower',double([]),...
+'volume_element_error_upper',double([])),...
+'grid_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'time',double(-9e+40))
+}},...
+'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_polarimeter.m b/matlab/TCV_IMAS/ids_empty/ids_empty_polarimeter.m
index 0e00ea9396f5fb4ab08c58ca95374576f0cb0b78..cf12101a0549e8803ccf3c56a04a0893eba8e698 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_polarimeter.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_polarimeter.m
@@ -1,9 +1,11 @@
 function S = ids_empty_polarimeter
 % function S = ids_empty_polarimeter
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'channel',{{struct(...
 'ellipticity',struct(...
@@ -76,16 +78,18 @@ struct(...
 'wavelength_error_index',int32(-999999999),...
 'wavelength_error_lower',double(-9e+40),...
 'wavelength_error_upper',double(-9e+40))
-;}},...
+}},...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -95,10 +99,59 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_pulse_schedule.m b/matlab/TCV_IMAS/ids_empty/ids_empty_pulse_schedule.m
index 0193cf0140d608ae4968efcf56eee7cdc64ab0fa..9ac5a8194fa19303c5c38351a1ddcc14ab19e192 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_pulse_schedule.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_pulse_schedule.m
@@ -1,25 +1,61 @@
 function S = ids_empty_pulse_schedule
 % function S = ids_empty_pulse_schedule
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
 'repository','',...
 'version',''),...
 'density_control',struct(...
+'ion',{{struct(...
+'element',{{struct(...
+'a',double(-9e+40),...
+'a_error_index',int32(-999999999),...
+'a_error_lower',double(-9e+40),...
+'a_error_upper',double(-9e+40),...
+'atoms_n',int32(-999999999),...
+'multiplicity',double(-9e+40),...
+'multiplicity_error_index',int32(-999999999),...
+'multiplicity_error_lower',double(-9e+40),...
+'multiplicity_error_upper',double(-9e+40),...
+'z_n',double(-9e+40),...
+'z_n_error_index',int32(-999999999),...
+'z_n_error_lower',double(-9e+40),...
+'z_n_error_upper',double(-9e+40))
+}},...
+'label','',...
+'n_i_volume_average',struct(...
+'envelope_type',int32(-999999999),...
+'reference',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'reference_name','',...
+'reference_type',int32(-999999999)),...
+'z_ion',double(-9e+40),...
+'z_ion_error_index',int32(-999999999),...
+'z_ion_error_lower',double(-9e+40),...
+'z_ion_error_upper',double(-9e+40))
+}},...
 'mode',struct(...
 'data',int32([]),...
 'time',double([])),...
@@ -33,6 +69,76 @@ struct(...
 'time',double([])),...
 'reference_name','',...
 'reference_type',int32(-999999999)),...
+'n_e_line_lcfs',struct(...
+'envelope_type',int32(-999999999),...
+'reference',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'reference_name','',...
+'reference_type',int32(-999999999)),...
+'n_e_line_of_sight',struct(...
+'first_point',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'second_point',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'third_point',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40))),...
+'n_e_profile_average',struct(...
+'envelope_type',int32(-999999999),...
+'reference',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'reference_name','',...
+'reference_type',int32(-999999999)),...
+'n_e_volume_average',struct(...
+'envelope_type',int32(-999999999),...
+'reference',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'reference_name','',...
+'reference_type',int32(-999999999)),...
 'n_h_over_n_d',struct(...
 'envelope_type',int32(-999999999),...
 'reference',struct(...
@@ -81,14 +187,14 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'fraction',double(-9e+40),...
 'fraction_error_index',int32(-999999999),...
 'fraction_error_lower',double(-9e+40),...
 'fraction_error_upper',double(-9e+40),...
 'label','')
-;}})
-;}},...
+}})
+}},...
 'zeff',struct(...
 'envelope_type',int32(-999999999),...
 'reference',struct(...
@@ -98,7 +204,51 @@ struct(...
 'data_error_upper',double([]),...
 'time',double([])),...
 'reference_name','',...
-'reference_type',int32(-999999999))),...
+'reference_type',int32(-999999999)),...
+'zeff_line_of_sight',struct(...
+'first_point',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'second_point',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'third_point',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40))),...
+'zeff_method',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name','')),...
 'ec',struct(...
 'launcher',{{struct(...
 'deposition_rho_tor_norm',struct(...
@@ -133,10 +283,6 @@ struct(...
 'time',double([])),...
 'reference_name','',...
 'reference_type',int32(-999999999)),...
-'power_type',struct(...
-'description','',...
-'index',int32(-999999999),...
-'name',''),...
 'steering_angle_pol',struct(...
 'envelope_type',int32(-999999999),...
 'reference',struct(...
@@ -157,10 +303,20 @@ struct(...
 'time',double([])),...
 'reference_name','',...
 'reference_type',int32(-999999999)))
-;}},...
+}},...
 'mode',struct(...
 'data',int32([]),...
-'time',double([]))),...
+'time',double([])),...
+'power',struct(...
+'envelope_type',int32(-999999999),...
+'reference',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'reference_name','',...
+'reference_type',int32(-999999999))),...
 'event',{{struct(...
 'acquisition_state',struct(...
 'description','',...
@@ -185,7 +341,7 @@ struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''))
-;}},...
+}},...
 'flux_control',struct(...
 'beta_normal',struct(...
 'envelope_type',int32(-999999999),...
@@ -268,14 +424,69 @@ struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''))
-;}},...
+}},...
 'mode',struct(...
 'data',int32([]),...
-'time',double([]))),...
+'time',double([])),...
+'power',struct(...
+'envelope_type',int32(-999999999),...
+'reference',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'reference_name','',...
+'reference_type',int32(-999999999))),...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
@@ -330,14 +541,34 @@ struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''))
-;}},...
+}},...
 'mode',struct(...
 'data',int32([]),...
-'time',double([]))),...
+'time',double([])),...
+'power',struct(...
+'envelope_type',int32(-999999999),...
+'reference',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'reference_name','',...
+'reference_type',int32(-999999999))),...
 'nbi',struct(...
 'mode',struct(...
 'data',int32([]),...
 'time',double([])),...
+'power',struct(...
+'envelope_type',int32(-999999999),...
+'reference',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'reference_name','',...
+'reference_type',int32(-999999999)),...
 'unit',{{struct(...
 'energy',struct(...
 'envelope_type',int32(-999999999),...
@@ -361,10 +592,6 @@ struct(...
 'time',double([])),...
 'reference_name','',...
 'reference_type',int32(-999999999)),...
-'power_type',struct(...
-'description','',...
-'index',int32(-999999999),...
-'name',''),...
 'species',{{struct(...
 'element',{{struct(...
 'a',double(-9e+40),...
@@ -380,14 +607,56 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'fraction',double(-9e+40),...
 'fraction_error_index',int32(-999999999),...
 'fraction_error_lower',double(-9e+40),...
 'fraction_error_upper',double(-9e+40),...
 'label','')
-;}})
-;}}),...
+}})
+}}),...
+'pf_active',struct(...
+'coil',{{struct(...
+'current',struct(...
+'envelope_type',int32(-999999999),...
+'reference',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'reference_name','',...
+'reference_type',int32(-999999999)),...
+'identifier','',...
+'name','',...
+'resistance_additional',struct(...
+'envelope_type',int32(-999999999),...
+'reference',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'reference_name','',...
+'reference_type',int32(-999999999)))
+}},...
+'mode',struct(...
+'data',int32([]),...
+'time',double([])),...
+'supply',{{struct(...
+'identifier','',...
+'name','',...
+'voltage',struct(...
+'envelope_type',int32(-999999999),...
+'reference',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'reference_name','',...
+'reference_type',int32(-999999999)))
+}}),...
 'position_control',struct(...
 'active_limiter_point',struct(...
 'r',struct(...
@@ -431,7 +700,7 @@ struct(...
 'time',double([])),...
 'reference_name','',...
 'reference_type',int32(-999999999)))
-;}},...
+}},...
 'elongation',struct(...
 'envelope_type',int32(-999999999),...
 'reference',struct(...
@@ -487,7 +756,7 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40))
-;}},...
+}},...
 'geometric_axis',struct(...
 'r',struct(...
 'envelope_type',int32(-999999999),...
@@ -543,6 +812,46 @@ struct(...
 'mode',struct(...
 'data',int32([]),...
 'time',double([])),...
+'squareness_lower_inner',struct(...
+'envelope_type',int32(-999999999),...
+'reference',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'reference_name','',...
+'reference_type',int32(-999999999)),...
+'squareness_lower_outer',struct(...
+'envelope_type',int32(-999999999),...
+'reference',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'reference_name','',...
+'reference_type',int32(-999999999)),...
+'squareness_upper_inner',struct(...
+'envelope_type',int32(-999999999),...
+'reference',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'reference_name','',...
+'reference_type',int32(-999999999)),...
+'squareness_upper_outer',struct(...
+'envelope_type',int32(-999999999),...
+'reference',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'reference_name','',...
+'reference_type',int32(-999999999)),...
 'strike_point',{{struct(...
 'r',struct(...
 'envelope_type',int32(-999999999),...
@@ -564,7 +873,7 @@ struct(...
 'time',double([])),...
 'reference_name','',...
 'reference_type',int32(-999999999)))
-;}},...
+}},...
 'triangularity',struct(...
 'envelope_type',int32(-999999999),...
 'reference',struct(...
@@ -575,6 +884,16 @@ struct(...
 'time',double([])),...
 'reference_name','',...
 'reference_type',int32(-999999999)),...
+'triangularity_inner',struct(...
+'envelope_type',int32(-999999999),...
+'reference',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'reference_name','',...
+'reference_type',int32(-999999999)),...
 'triangularity_lower',struct(...
 'envelope_type',int32(-999999999),...
 'reference',struct(...
@@ -585,6 +904,26 @@ struct(...
 'time',double([])),...
 'reference_name','',...
 'reference_type',int32(-999999999)),...
+'triangularity_minor',struct(...
+'envelope_type',int32(-999999999),...
+'reference',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'reference_name','',...
+'reference_type',int32(-999999999)),...
+'triangularity_outer',struct(...
+'envelope_type',int32(-999999999),...
+'reference',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'reference_name','',...
+'reference_type',int32(-999999999)),...
 'triangularity_upper',struct(...
 'envelope_type',int32(-999999999),...
 'reference',struct(...
@@ -616,7 +955,27 @@ struct(...
 'time',double([])),...
 'reference_name','',...
 'reference_type',int32(-999999999)))
-;}}),...
+}},...
+'z_r_max',struct(...
+'envelope_type',int32(-999999999),...
+'reference',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'reference_name','',...
+'reference_type',int32(-999999999)),...
+'z_r_min',struct(...
+'envelope_type',int32(-999999999),...
+'reference',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'reference_name','',...
+'reference_type',int32(-999999999))),...
 'tf',struct(...
 'b_field_tor_vacuum_r',struct(...
 'envelope_type',int32(-999999999),...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_radiation.m b/matlab/TCV_IMAS/ids_empty/ids_empty_radiation.m
index dd062ea667d0ed13c387c4ef47a344183182a953..a293b9da66ace9056414e2d2b14c8f36accdb201 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_radiation.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_radiation.m
@@ -1,19 +1,23 @@
 function S = ids_empty_radiation
 % function S = ids_empty_radiation
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -34,15 +38,15 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([]))
-;}},...
+}},...
 'dimension',int32(-999999999),...
 'element',{{struct(...
 'object',{{struct(...
 'dimension',int32(-999999999),...
 'index',int32(-999999999),...
 'space',int32(-999999999))
-;}})
-;}},...
+}})
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -60,11 +64,12 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([])))
-;}},...
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
+'path','',...
 'space',{{struct(...
 'coordinates_type',int32([]),...
 'geometry_type',struct(...
@@ -76,12 +81,20 @@ struct(...
 'index',int32(-999999999),...
 'name',''),...
 'objects_per_dimension',{{struct(...
+'geometry_content',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
 'object',{{struct(...
 'boundary',{{struct(...
 'index',int32(-999999999),...
 'neighbours',int32([]))
-;}},...
+}},...
 'geometry',double([]),...
+'geometry_2d',double([]),...
+'geometry_2d_error_index',int32(-999999999),...
+'geometry_2d_error_lower',double([]),...
+'geometry_2d_error_upper',double([]),...
 'geometry_error_index',int32(-999999999),...
 'geometry_error_lower',double([]),...
 'geometry_error_upper',double([]),...
@@ -90,15 +103,60 @@ struct(...
 'measure_error_lower',double(-9e+40),...
 'measure_error_upper',double(-9e+40),...
 'nodes',int32([]))
-;}})
-;}})
-;}},...
+}})
+}})
+}},...
 'time',double(-9e+40))
-;}},...
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
@@ -119,7 +177,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}}),...
+}}),...
 'ion',{{struct(...
 'element',{{struct(...
 'a',double(-9e+40),...
@@ -135,7 +193,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'emissivity',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -147,7 +205,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
 'neutral_index',int32(-999999999),...
@@ -164,7 +222,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'label','',...
 'vibrational_level',double(-9e+40),...
 'vibrational_level_error_index',int32(-999999999),...
@@ -179,12 +237,12 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'z_ion',double(-9e+40),...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}},...
+}},...
 'neutral',{{struct(...
 'element',{{struct(...
 'a',double(-9e+40),...
@@ -200,7 +258,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'emissivity',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -212,7 +270,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'ion_index',int32(-999999999),...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
@@ -229,7 +287,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'label','',...
 'neutral_type',struct(...
 'description','',...
@@ -240,10 +298,10 @@ struct(...
 'vibrational_level_error_lower',double(-9e+40),...
 'vibrational_level_error_upper',double(-9e+40),...
 'vibrational_mode','')
-;}})
-;}},...
+}})
+}},...
 'time',double(-9e+40))
-;}},...
+}},...
 'global_quantities',{{struct(...
 'inside_lcfs',struct(...
 'power',double(-9e+40),...
@@ -280,7 +338,7 @@ struct(...
 'power_neutral_total_error_lower',double(-9e+40),...
 'power_neutral_total_error_upper',double(-9e+40)),...
 'time',double(-9e+40))
-;}},...
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -355,7 +413,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'emissivity',double([]),...
 'emissivity_error_index',int32(-999999999),...
 'emissivity_error_lower',double([]),...
@@ -391,12 +449,12 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'z_ion',double(-9e+40),...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}},...
+}},...
 'neutral',{{struct(...
 'element',{{struct(...
 'a',double(-9e+40),...
@@ -412,7 +470,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'emissivity',double([]),...
 'emissivity_error_index',int32(-999999999),...
 'emissivity_error_lower',double([]),...
@@ -444,8 +502,8 @@ struct(...
 'vibrational_level_error_lower',double(-9e+40),...
 'vibrational_level_error_upper',double(-9e+40),...
 'vibrational_mode','')
-;}})
-;}},...
+}})
+}},...
 'power_inside_ion_total',double([]),...
 'power_inside_ion_total_error_index',int32(-999999999),...
 'power_inside_ion_total_error_lower',double([]),...
@@ -455,8 +513,8 @@ struct(...
 'power_inside_neutral_total_error_lower',double([]),...
 'power_inside_neutral_total_error_upper',double([]),...
 'time',double(-9e+40))
-;}})
-;}},...
+}})
+}},...
 'time',double([]),...
 'vacuum_toroidal_field',struct(...
 'b0',double([]),...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_real_time_data.m b/matlab/TCV_IMAS/ids_empty/ids_empty_real_time_data.m
new file mode 100644
index 0000000000000000000000000000000000000000..cb9dc2ae484d0379721d15637648129cefa1634e
--- /dev/null
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_real_time_data.m
@@ -0,0 +1,98 @@
+function S = ids_empty_real_time_data
+% function S = ids_empty_real_time_data
+%
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
+
+S = ...
+struct(...
+'code',struct(...
+'commit','',...
+'description','',...
+'library',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'name','',...
+'output_flag',int32([]),...
+'parameters','',...
+'repository','',...
+'version',''),...
+'ids_properties',struct(...
+'comment','',...
+'creation_date','',...
+'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
+'provider','',...
+'source','',...
+'version_put',struct(...
+'access_layer','',...
+'access_layer_language','',...
+'data_dictionary','')),...
+'time',double([]),...
+'topic',{{struct(...
+'name','',...
+'signal',{{struct(...
+'allocated_position',int32(-999999999),...
+'definition','',...
+'name','',...
+'quality',struct(...
+'data',int32([]),...
+'time',double([])),...
+'value',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])))
+}})
+}});
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_reflectometer_fluctuation.m b/matlab/TCV_IMAS/ids_empty/ids_empty_reflectometer_fluctuation.m
new file mode 100644
index 0000000000000000000000000000000000000000..47edff4dd25a7daad920ad8ce2c46fea513e3626
--- /dev/null
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_reflectometer_fluctuation.m
@@ -0,0 +1,462 @@
+function S = ids_empty_reflectometer_fluctuation
+% function S = ids_empty_reflectometer_fluctuation
+%
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
+
+S = ...
+struct(...
+'channel',{{struct(...
+'amplitude',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'antenna_detection_static',struct(...
+'centre',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'geometry_type',int32(-999999999),...
+'outline',struct(...
+'x1',double([]),...
+'x1_error_index',int32(-999999999),...
+'x1_error_lower',double([]),...
+'x1_error_upper',double([]),...
+'x2',double([]),...
+'x2_error_index',int32(-999999999),...
+'x2_error_lower',double([]),...
+'x2_error_upper',double([])),...
+'radius',double(-9e+40),...
+'radius_error_index',int32(-999999999),...
+'radius_error_lower',double(-9e+40),...
+'radius_error_upper',double(-9e+40),...
+'surface',double(-9e+40),...
+'surface_error_index',int32(-999999999),...
+'surface_error_lower',double(-9e+40),...
+'surface_error_upper',double(-9e+40),...
+'x1_width',double(-9e+40),...
+'x1_width_error_index',int32(-999999999),...
+'x1_width_error_lower',double(-9e+40),...
+'x1_width_error_upper',double(-9e+40),...
+'x2_width',double(-9e+40),...
+'x2_width_error_index',int32(-999999999),...
+'x2_width_error_lower',double(-9e+40),...
+'x2_width_error_upper',double(-9e+40)),...
+'antenna_emission_static',struct(...
+'centre',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'geometry_type',int32(-999999999),...
+'outline',struct(...
+'x1',double([]),...
+'x1_error_index',int32(-999999999),...
+'x1_error_lower',double([]),...
+'x1_error_upper',double([]),...
+'x2',double([]),...
+'x2_error_index',int32(-999999999),...
+'x2_error_lower',double([]),...
+'x2_error_upper',double([])),...
+'radius',double(-9e+40),...
+'radius_error_index',int32(-999999999),...
+'radius_error_lower',double(-9e+40),...
+'radius_error_upper',double(-9e+40),...
+'surface',double(-9e+40),...
+'surface_error_index',int32(-999999999),...
+'surface_error_lower',double(-9e+40),...
+'surface_error_upper',double(-9e+40),...
+'x1_width',double(-9e+40),...
+'x1_width_error_index',int32(-999999999),...
+'x1_width_error_lower',double(-9e+40),...
+'x1_width_error_upper',double(-9e+40),...
+'x2_width',double(-9e+40),...
+'x2_width_error_index',int32(-999999999),...
+'x2_width_error_lower',double(-9e+40),...
+'x2_width_error_upper',double(-9e+40)),...
+'antennas_orientation',{{struct(...
+'antenna_detection',struct(...
+'x1_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x2_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x3_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40))),...
+'antenna_emission',struct(...
+'x1_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x2_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x3_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40))),...
+'line_of_sight_detection',struct(...
+'first_point',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'second_point',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40))),...
+'line_of_sight_emission',struct(...
+'first_point',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'second_point',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40))),...
+'time',double(-9e+40))
+}},...
+'doppler',struct(...
+'e_field_radial',double([]),...
+'e_field_radial_error_index',int32(-999999999),...
+'e_field_radial_error_lower',double([]),...
+'e_field_radial_error_upper',double([]),...
+'position',struct(...
+'phi',double([]),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double([]),...
+'phi_error_upper',double([]),...
+'psi',double([]),...
+'psi_error_index',int32(-999999999),...
+'psi_error_lower',double([]),...
+'psi_error_upper',double([]),...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'rho_pol_norm',double([]),...
+'rho_pol_norm_error_index',int32(-999999999),...
+'rho_pol_norm_error_lower',double([]),...
+'rho_pol_norm_error_upper',double([]),...
+'rho_tor_norm',double([]),...
+'rho_tor_norm_error_index',int32(-999999999),...
+'rho_tor_norm_error_lower',double([]),...
+'rho_tor_norm_error_upper',double([]),...
+'theta',double([]),...
+'theta_error_index',int32(-999999999),...
+'theta_error_lower',double([]),...
+'theta_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([])),...
+'radial_width',double(-9e+40),...
+'radial_width_error_index',int32(-999999999),...
+'radial_width_error_lower',double(-9e+40),...
+'radial_width_error_upper',double(-9e+40),...
+'shift',double([]),...
+'shift_error_index',int32(-999999999),...
+'shift_error_lower',double([]),...
+'shift_error_upper',double([]),...
+'time',double([]),...
+'time_width',double(-9e+40),...
+'time_width_error_index',int32(-999999999),...
+'time_width_error_lower',double(-9e+40),...
+'time_width_error_upper',double(-9e+40),...
+'velocity_pol',double([]),...
+'velocity_pol_error_index',int32(-999999999),...
+'velocity_pol_error_lower',double([]),...
+'velocity_pol_error_upper',double([]),...
+'wavenumber',double([]),...
+'wavenumber_error_index',int32(-999999999),...
+'wavenumber_error_lower',double([]),...
+'wavenumber_error_upper',double([])),...
+'fluctuations_level',struct(...
+'dn_e_over_n_e',double([]),...
+'dn_e_over_n_e_error_index',int32(-999999999),...
+'dn_e_over_n_e_error_lower',double([]),...
+'dn_e_over_n_e_error_upper',double([]),...
+'position',struct(...
+'phi',double([]),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double([]),...
+'phi_error_upper',double([]),...
+'psi',double([]),...
+'psi_error_index',int32(-999999999),...
+'psi_error_lower',double([]),...
+'psi_error_upper',double([]),...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'rho_pol_norm',double([]),...
+'rho_pol_norm_error_index',int32(-999999999),...
+'rho_pol_norm_error_lower',double([]),...
+'rho_pol_norm_error_upper',double([]),...
+'rho_tor_norm',double([]),...
+'rho_tor_norm_error_index',int32(-999999999),...
+'rho_tor_norm_error_lower',double([]),...
+'rho_tor_norm_error_upper',double([]),...
+'theta',double([]),...
+'theta_error_index',int32(-999999999),...
+'theta_error_lower',double([]),...
+'theta_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([])),...
+'radial_width',double(-9e+40),...
+'radial_width_error_index',int32(-999999999),...
+'radial_width_error_lower',double(-9e+40),...
+'radial_width_error_upper',double(-9e+40),...
+'time',double([]),...
+'time_width',double(-9e+40),...
+'time_width_error_index',int32(-999999999),...
+'time_width_error_lower',double(-9e+40),...
+'time_width_error_upper',double(-9e+40)),...
+'fluctuations_spectrum',struct(...
+'frequencies_fourier',double([]),...
+'frequencies_fourier_error_index',int32(-999999999),...
+'frequencies_fourier_error_lower',double([]),...
+'frequencies_fourier_error_upper',double([]),...
+'power_log',double([]),...
+'power_log_error_index',int32(-999999999),...
+'power_log_error_lower',double([]),...
+'power_log_error_upper',double([]),...
+'time',double([]),...
+'time_width',double(-9e+40),...
+'time_width_error_index',int32(-999999999),...
+'time_width_error_lower',double(-9e+40),...
+'time_width_error_upper',double(-9e+40)),...
+'frequencies',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'identifier','',...
+'mode','',...
+'name','',...
+'phase',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'raw_signal',struct(...
+'i_component',double([]),...
+'i_component_error_index',int32(-999999999),...
+'i_component_error_lower',double([]),...
+'i_component_error_upper',double([]),...
+'q_component',double([]),...
+'q_component_error_index',int32(-999999999),...
+'q_component_error_lower',double([]),...
+'q_component_error_upper',double([]),...
+'time',double([])),...
+'sweep_time',double(-9e+40),...
+'sweep_time_error_index',int32(-999999999),...
+'sweep_time_error_lower',double(-9e+40),...
+'sweep_time_error_upper',double(-9e+40))
+}},...
+'code',struct(...
+'commit','',...
+'description','',...
+'library',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'name','',...
+'output_flag',int32([]),...
+'parameters','',...
+'repository','',...
+'version',''),...
+'ids_properties',struct(...
+'comment','',...
+'creation_date','',...
+'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
+'provider','',...
+'source','',...
+'version_put',struct(...
+'access_layer','',...
+'access_layer_language','',...
+'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
+'psi_normalization',struct(...
+'psi_boundary',double([]),...
+'psi_boundary_error_index',int32(-999999999),...
+'psi_boundary_error_lower',double([]),...
+'psi_boundary_error_upper',double([]),...
+'psi_magnetic_axis',double([]),...
+'psi_magnetic_axis_error_index',int32(-999999999),...
+'psi_magnetic_axis_error_lower',double([]),...
+'psi_magnetic_axis_error_upper',double([]),...
+'time',double([])),...
+'time',double([]),...
+'type','');
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_reflectometer_profile.m b/matlab/TCV_IMAS/ids_empty/ids_empty_reflectometer_profile.m
index f8920292c4199b3199c833e68314a89c1cc43708..eab0b5219d680dd2a5eb59370a3c27c6588e1a9d 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_reflectometer_profile.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_reflectometer_profile.m
@@ -1,11 +1,181 @@
 function S = ids_empty_reflectometer_profile
 % function S = ids_empty_reflectometer_profile
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'channel',{{struct(...
+'amplitude',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'antenna_detection',struct(...
+'centre',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'geometry_type',int32(-999999999),...
+'outline',struct(...
+'x1',double([]),...
+'x1_error_index',int32(-999999999),...
+'x1_error_lower',double([]),...
+'x1_error_upper',double([]),...
+'x2',double([]),...
+'x2_error_index',int32(-999999999),...
+'x2_error_lower',double([]),...
+'x2_error_upper',double([])),...
+'radius',double(-9e+40),...
+'radius_error_index',int32(-999999999),...
+'radius_error_lower',double(-9e+40),...
+'radius_error_upper',double(-9e+40),...
+'surface',double(-9e+40),...
+'surface_error_index',int32(-999999999),...
+'surface_error_lower',double(-9e+40),...
+'surface_error_upper',double(-9e+40),...
+'x1_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x1_width',double(-9e+40),...
+'x1_width_error_index',int32(-999999999),...
+'x1_width_error_lower',double(-9e+40),...
+'x1_width_error_upper',double(-9e+40),...
+'x2_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x2_width',double(-9e+40),...
+'x2_width_error_index',int32(-999999999),...
+'x2_width_error_lower',double(-9e+40),...
+'x2_width_error_upper',double(-9e+40),...
+'x3_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40))),...
+'antenna_emission',struct(...
+'centre',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'geometry_type',int32(-999999999),...
+'outline',struct(...
+'x1',double([]),...
+'x1_error_index',int32(-999999999),...
+'x1_error_lower',double([]),...
+'x1_error_upper',double([]),...
+'x2',double([]),...
+'x2_error_index',int32(-999999999),...
+'x2_error_lower',double([]),...
+'x2_error_upper',double([])),...
+'radius',double(-9e+40),...
+'radius_error_index',int32(-999999999),...
+'radius_error_lower',double(-9e+40),...
+'radius_error_upper',double(-9e+40),...
+'surface',double(-9e+40),...
+'surface_error_index',int32(-999999999),...
+'surface_error_lower',double(-9e+40),...
+'surface_error_upper',double(-9e+40),...
+'x1_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x1_width',double(-9e+40),...
+'x1_width_error_index',int32(-999999999),...
+'x1_width_error_lower',double(-9e+40),...
+'x1_width_error_upper',double(-9e+40),...
+'x2_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x2_width',double(-9e+40),...
+'x2_width_error_index',int32(-999999999),...
+'x2_width_error_lower',double(-9e+40),...
+'x2_width_error_upper',double(-9e+40),...
+'x3_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40))),...
+'cut_off_frequency',double([]),...
+'cut_off_frequency_error_index',int32(-999999999),...
+'cut_off_frequency_error_lower',double([]),...
+'cut_off_frequency_error_upper',double([]),...
 'frequencies',double([]),...
 'frequencies_error_index',int32(-999999999),...
 'frequencies_error_lower',double([]),...
@@ -92,6 +262,10 @@ struct(...
 'r_error_index',int32(-999999999),...
 'r_error_lower',double([]),...
 'r_error_upper',double([]),...
+'rho_pol_norm',double([]),...
+'rho_pol_norm_error_index',int32(-999999999),...
+'rho_pol_norm_error_lower',double([]),...
+'rho_pol_norm_error_upper',double([]),...
 'rho_tor_norm',double([]),...
 'rho_tor_norm_error_index',int32(-999999999),...
 'rho_tor_norm_error_lower',double([]),...
@@ -108,16 +282,18 @@ struct(...
 'sweep_time_error_index',int32(-999999999),...
 'sweep_time_error_lower',double(-9e+40),...
 'sweep_time_error_upper',double(-9e+40))
-;}},...
+}},...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -127,12 +303,96 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
+'n_e',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'position',struct(...
+'phi',double([]),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double([]),...
+'phi_error_upper',double([]),...
+'psi',double([]),...
+'psi_error_index',int32(-999999999),...
+'psi_error_lower',double([]),...
+'psi_error_upper',double([]),...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'rho_pol_norm',double([]),...
+'rho_pol_norm_error_index',int32(-999999999),...
+'rho_pol_norm_error_lower',double([]),...
+'rho_pol_norm_error_upper',double([]),...
+'rho_tor_norm',double([]),...
+'rho_tor_norm_error_index',int32(-999999999),...
+'rho_tor_norm_error_lower',double([]),...
+'rho_tor_norm_error_upper',double([]),...
+'theta',double([]),...
+'theta_error_index',int32(-999999999),...
+'theta_error_lower',double([]),...
+'theta_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([])),...
 'psi_normalization',struct(...
 'psi_boundary',double([]),...
 'psi_boundary_error_index',int32(-999999999),...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_refractometer.m b/matlab/TCV_IMAS/ids_empty/ids_empty_refractometer.m
index 5ca0b6eb8d8f89f603bb5693cfb1b994fa2661c0..d5f175bc6d78a27f489c832376c490461254e9a8 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_refractometer.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_refractometer.m
@@ -1,15 +1,48 @@
 function S = ids_empty_refractometer
 % function S = ids_empty_refractometer
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'channel',{{struct(...
-'frequencies',double([]),...
-'frequencies_error_index',int32(-999999999),...
-'frequencies_error_lower',double([]),...
-'frequencies_error_upper',double([]),...
+'bandwidth',{{struct(...
+'frequency_main',double(-9e+40),...
+'frequency_main_error_index',int32(-999999999),...
+'frequency_main_error_lower',double(-9e+40),...
+'frequency_main_error_upper',double(-9e+40),...
+'i_component',double([]),...
+'i_component_error_index',int32(-999999999),...
+'i_component_error_lower',double([]),...
+'i_component_error_upper',double([]),...
+'n_e_line',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'phase',double([]),...
+'phase_error_index',int32(-999999999),...
+'phase_error_lower',double([]),...
+'phase_error_upper',double([]),...
+'phase_quadrature',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'q_component',double([]),...
+'q_component_error_index',int32(-999999999),...
+'q_component_error_lower',double([]),...
+'q_component_error_upper',double([]),...
+'time',double([]),...
+'time_detector',double([]),...
+'time_detector_error_index',int32(-999999999),...
+'time_detector_error_lower',double([]),...
+'time_detector_error_upper',double([]))
+}},...
 'identifier','',...
 'line_of_sight',struct(...
 'first_point',struct(...
@@ -45,33 +78,28 @@ struct(...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])),...
-'name','',...
-'phase',struct(...
-'data',double([]),...
-'data_error_index',int32(-999999999),...
-'data_error_lower',double([]),...
-'data_error_upper',double([]),...
-'time',double([])),...
-'phase_quadrature',struct(...
-'data',double([]),...
-'data_error_index',int32(-999999999),...
-'data_error_lower',double([]),...
-'data_error_upper',double([]),...
-'time',double([])),...
-'sweep_time',double(-9e+40),...
-'sweep_time_error_index',int32(-999999999),...
-'sweep_time_error_lower',double(-9e+40),...
-'sweep_time_error_upper',double(-9e+40))
-;}},...
+'n_e_profile_approximation',struct(...
+'formula',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'parameters',double([]),...
+'parameters_error_index',int32(-999999999),...
+'parameters_error_lower',double([]),...
+'parameters_error_upper',double([])),...
+'name','')
+}},...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -81,11 +109,60 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'time',double([]),...
 'type','');
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_runaway_electrons.m b/matlab/TCV_IMAS/ids_empty/ids_empty_runaway_electrons.m
new file mode 100644
index 0000000000000000000000000000000000000000..bd4f5702c1f99137b3874ef1656d01ef811508fe
--- /dev/null
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_runaway_electrons.m
@@ -0,0 +1,586 @@
+function S = ids_empty_runaway_electrons
+% function S = ids_empty_runaway_electrons
+%
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
+
+S = ...
+struct(...
+'code',struct(...
+'commit','',...
+'description','',...
+'library',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'name','',...
+'output_flag',int32([]),...
+'parameters','',...
+'repository','',...
+'version',''),...
+'distribution',struct(...
+'ggd',{{struct(...
+'expansion',{{struct(...
+'grid_subset',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}})
+}},...
+'expansion_fd3v',{{struct(...
+'grid_subset',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}})
+}},...
+'temperature',double([]),...
+'temperature_error_index',int32(-999999999),...
+'temperature_error_lower',double([]),...
+'temperature_error_upper',double([]),...
+'time',double(-9e+40))
+}},...
+'gyro_type',int32(-999999999),...
+'markers',{{struct(...
+'coordinate_identifier',{{struct(...
+'description','',...
+'index',int32(-999999999),...
+'name','')
+}},...
+'orbit_integrals',struct(...
+'bounce_harmonics',int32([]),...
+'expressions',{{}},...
+'m_pol',int32([]),...
+'n_tor',int32([]),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([])),...
+'orbit_integrals_instant',struct(...
+'expressions',{{}},...
+'time_orbit',double([]),...
+'time_orbit_error_index',int32(-999999999),...
+'time_orbit_error_lower',double([]),...
+'time_orbit_error_upper',double([]),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([])),...
+'positions',double([]),...
+'positions_error_index',int32(-999999999),...
+'positions_error_lower',double([]),...
+'positions_error_upper',double([]),...
+'time',double(-9e+40),...
+'toroidal_mode',int32(-999999999),...
+'weights',double([]),...
+'weights_error_index',int32(-999999999),...
+'weights_error_lower',double([]),...
+'weights_error_upper',double([]))
+}}),...
+'e_field_critical_definition',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'ggd_fluid',{{struct(...
+'current_density',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'ddensity_dt_compton',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'ddensity_dt_dreicer',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'ddensity_dt_hot_tail',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'ddensity_dt_total',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'ddensity_dt_tritium',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'density',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'e_field_critical',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'e_field_dreicer',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'energy_density_kinetic',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'momentum_critical_avalanche',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'momentum_critical_hot_tail',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'pitch_angle',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'time',double(-9e+40))
+}},...
+'global_quantities',struct(...
+'current_tor',double([]),...
+'current_tor_error_index',int32(-999999999),...
+'current_tor_error_lower',double([]),...
+'current_tor_error_upper',double([]),...
+'energy_kinetic',double([]),...
+'energy_kinetic_error_index',int32(-999999999),...
+'energy_kinetic_error_lower',double([]),...
+'energy_kinetic_error_upper',double([]),...
+'volume_average',struct(...
+'current_density',double([]),...
+'current_density_error_index',int32(-999999999),...
+'current_density_error_lower',double([]),...
+'current_density_error_upper',double([]),...
+'ddensity_dt_compton',double([]),...
+'ddensity_dt_compton_error_index',int32(-999999999),...
+'ddensity_dt_compton_error_lower',double([]),...
+'ddensity_dt_compton_error_upper',double([]),...
+'ddensity_dt_dreicer',double([]),...
+'ddensity_dt_dreicer_error_index',int32(-999999999),...
+'ddensity_dt_dreicer_error_lower',double([]),...
+'ddensity_dt_dreicer_error_upper',double([]),...
+'ddensity_dt_hot_tail',double([]),...
+'ddensity_dt_hot_tail_error_index',int32(-999999999),...
+'ddensity_dt_hot_tail_error_lower',double([]),...
+'ddensity_dt_hot_tail_error_upper',double([]),...
+'ddensity_dt_total',double([]),...
+'ddensity_dt_total_error_index',int32(-999999999),...
+'ddensity_dt_total_error_lower',double([]),...
+'ddensity_dt_total_error_upper',double([]),...
+'ddensity_dt_tritium',double([]),...
+'ddensity_dt_tritium_error_index',int32(-999999999),...
+'ddensity_dt_tritium_error_lower',double([]),...
+'ddensity_dt_tritium_error_upper',double([]),...
+'density',double([]),...
+'density_error_index',int32(-999999999),...
+'density_error_lower',double([]),...
+'density_error_upper',double([]),...
+'e_field_critical',double([]),...
+'e_field_critical_error_index',int32(-999999999),...
+'e_field_critical_error_lower',double([]),...
+'e_field_critical_error_upper',double([]),...
+'e_field_dreicer',double([]),...
+'e_field_dreicer_error_index',int32(-999999999),...
+'e_field_dreicer_error_lower',double([]),...
+'e_field_dreicer_error_upper',double([]),...
+'energy_density_kinetic',double([]),...
+'energy_density_kinetic_error_index',int32(-999999999),...
+'energy_density_kinetic_error_lower',double([]),...
+'energy_density_kinetic_error_upper',double([]),...
+'momentum_critical_avalanche',double([]),...
+'momentum_critical_avalanche_error_index',int32(-999999999),...
+'momentum_critical_avalanche_error_lower',double([]),...
+'momentum_critical_avalanche_error_upper',double([]),...
+'momentum_critical_hot_tail',double([]),...
+'momentum_critical_hot_tail_error_index',int32(-999999999),...
+'momentum_critical_hot_tail_error_lower',double([]),...
+'momentum_critical_hot_tail_error_upper',double([]),...
+'pitch_angle',double([]),...
+'pitch_angle_error_index',int32(-999999999),...
+'pitch_angle_error_lower',double([]),...
+'pitch_angle_error_upper',double([]))),...
+'grid_ggd',{{struct(...
+'grid_subset',{{struct(...
+'base',{{struct(...
+'jacobian',double([]),...
+'jacobian_error_index',int32(-999999999),...
+'jacobian_error_lower',double([]),...
+'jacobian_error_upper',double([]),...
+'tensor_contravariant',double([]),...
+'tensor_contravariant_error_index',int32(-999999999),...
+'tensor_contravariant_error_lower',double([]),...
+'tensor_contravariant_error_upper',double([]),...
+'tensor_covariant',double([]),...
+'tensor_covariant_error_index',int32(-999999999),...
+'tensor_covariant_error_lower',double([]),...
+'tensor_covariant_error_upper',double([]))
+}},...
+'dimension',int32(-999999999),...
+'element',{{struct(...
+'object',{{struct(...
+'dimension',int32(-999999999),...
+'index',int32(-999999999),...
+'space',int32(-999999999))
+}})
+}},...
+'identifier',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'metric',struct(...
+'jacobian',double([]),...
+'jacobian_error_index',int32(-999999999),...
+'jacobian_error_lower',double([]),...
+'jacobian_error_upper',double([]),...
+'tensor_contravariant',double([]),...
+'tensor_contravariant_error_index',int32(-999999999),...
+'tensor_contravariant_error_lower',double([]),...
+'tensor_contravariant_error_upper',double([]),...
+'tensor_covariant',double([]),...
+'tensor_covariant_error_index',int32(-999999999),...
+'tensor_covariant_error_lower',double([]),...
+'tensor_covariant_error_upper',double([])))
+}},...
+'identifier',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'path','',...
+'space',{{struct(...
+'coordinates_type',int32([]),...
+'geometry_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'identifier',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'objects_per_dimension',{{struct(...
+'geometry_content',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'object',{{struct(...
+'boundary',{{struct(...
+'index',int32(-999999999),...
+'neighbours',int32([]))
+}},...
+'geometry',double([]),...
+'geometry_2d',double([]),...
+'geometry_2d_error_index',int32(-999999999),...
+'geometry_2d_error_lower',double([]),...
+'geometry_2d_error_upper',double([]),...
+'geometry_error_index',int32(-999999999),...
+'geometry_error_lower',double([]),...
+'geometry_error_upper',double([]),...
+'measure',double(-9e+40),...
+'measure_error_index',int32(-999999999),...
+'measure_error_lower',double(-9e+40),...
+'measure_error_upper',double(-9e+40),...
+'nodes',int32([]))
+}})
+}})
+}},...
+'time',double(-9e+40))
+}},...
+'ids_properties',struct(...
+'comment','',...
+'creation_date','',...
+'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
+'provider','',...
+'source','',...
+'version_put',struct(...
+'access_layer','',...
+'access_layer_language','',...
+'data_dictionary','')),...
+'momentum_critical_avalanche_definition',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'momentum_critical_hot_tail_definition',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'profiles_1d',{{struct(...
+'current_density',double([]),...
+'current_density_error_index',int32(-999999999),...
+'current_density_error_lower',double([]),...
+'current_density_error_upper',double([]),...
+'ddensity_dt_compton',double([]),...
+'ddensity_dt_compton_error_index',int32(-999999999),...
+'ddensity_dt_compton_error_lower',double([]),...
+'ddensity_dt_compton_error_upper',double([]),...
+'ddensity_dt_dreicer',double([]),...
+'ddensity_dt_dreicer_error_index',int32(-999999999),...
+'ddensity_dt_dreicer_error_lower',double([]),...
+'ddensity_dt_dreicer_error_upper',double([]),...
+'ddensity_dt_hot_tail',double([]),...
+'ddensity_dt_hot_tail_error_index',int32(-999999999),...
+'ddensity_dt_hot_tail_error_lower',double([]),...
+'ddensity_dt_hot_tail_error_upper',double([]),...
+'ddensity_dt_total',double([]),...
+'ddensity_dt_total_error_index',int32(-999999999),...
+'ddensity_dt_total_error_lower',double([]),...
+'ddensity_dt_total_error_upper',double([]),...
+'ddensity_dt_tritium',double([]),...
+'ddensity_dt_tritium_error_index',int32(-999999999),...
+'ddensity_dt_tritium_error_lower',double([]),...
+'ddensity_dt_tritium_error_upper',double([]),...
+'density',double([]),...
+'density_error_index',int32(-999999999),...
+'density_error_lower',double([]),...
+'density_error_upper',double([]),...
+'e_field_critical',double([]),...
+'e_field_critical_error_index',int32(-999999999),...
+'e_field_critical_error_lower',double([]),...
+'e_field_critical_error_upper',double([]),...
+'e_field_dreicer',double([]),...
+'e_field_dreicer_error_index',int32(-999999999),...
+'e_field_dreicer_error_lower',double([]),...
+'e_field_dreicer_error_upper',double([]),...
+'energy_density_kinetic',double([]),...
+'energy_density_kinetic_error_index',int32(-999999999),...
+'energy_density_kinetic_error_lower',double([]),...
+'energy_density_kinetic_error_upper',double([]),...
+'grid',struct(...
+'area',double([]),...
+'area_error_index',int32(-999999999),...
+'area_error_lower',double([]),...
+'area_error_upper',double([]),...
+'psi',double([]),...
+'psi_boundary',double(-9e+40),...
+'psi_boundary_error_index',int32(-999999999),...
+'psi_boundary_error_lower',double(-9e+40),...
+'psi_boundary_error_upper',double(-9e+40),...
+'psi_error_index',int32(-999999999),...
+'psi_error_lower',double([]),...
+'psi_error_upper',double([]),...
+'psi_magnetic_axis',double(-9e+40),...
+'psi_magnetic_axis_error_index',int32(-999999999),...
+'psi_magnetic_axis_error_lower',double(-9e+40),...
+'psi_magnetic_axis_error_upper',double(-9e+40),...
+'rho_pol_norm',double([]),...
+'rho_pol_norm_error_index',int32(-999999999),...
+'rho_pol_norm_error_lower',double([]),...
+'rho_pol_norm_error_upper',double([]),...
+'rho_tor',double([]),...
+'rho_tor_error_index',int32(-999999999),...
+'rho_tor_error_lower',double([]),...
+'rho_tor_error_upper',double([]),...
+'rho_tor_norm',double([]),...
+'rho_tor_norm_error_index',int32(-999999999),...
+'rho_tor_norm_error_lower',double([]),...
+'rho_tor_norm_error_upper',double([]),...
+'surface',double([]),...
+'surface_error_index',int32(-999999999),...
+'surface_error_lower',double([]),...
+'surface_error_upper',double([]),...
+'volume',double([]),...
+'volume_error_index',int32(-999999999),...
+'volume_error_lower',double([]),...
+'volume_error_upper',double([])),...
+'momentum_critical_avalanche',double([]),...
+'momentum_critical_avalanche_error_index',int32(-999999999),...
+'momentum_critical_avalanche_error_lower',double([]),...
+'momentum_critical_avalanche_error_upper',double([]),...
+'momentum_critical_hot_tail',double([]),...
+'momentum_critical_hot_tail_error_index',int32(-999999999),...
+'momentum_critical_hot_tail_error_lower',double([]),...
+'momentum_critical_hot_tail_error_upper',double([]),...
+'pitch_angle',double([]),...
+'pitch_angle_error_index',int32(-999999999),...
+'pitch_angle_error_lower',double([]),...
+'pitch_angle_error_upper',double([]),...
+'time',double(-9e+40),...
+'transport_perpendicular',struct(...
+'d',double([]),...
+'d_error_index',int32(-999999999),...
+'d_error_lower',double([]),...
+'d_error_upper',double([]),...
+'flux',double([]),...
+'flux_error_index',int32(-999999999),...
+'flux_error_lower',double([]),...
+'flux_error_upper',double([]),...
+'v',double([]),...
+'v_error_index',int32(-999999999),...
+'v_error_lower',double([]),...
+'v_error_upper',double([])))
+}},...
+'time',double([]),...
+'vacuum_toroidal_field',struct(...
+'b0',double([]),...
+'b0_error_index',int32(-999999999),...
+'b0_error_lower',double([]),...
+'b0_error_upper',double([]),...
+'r0',double(-9e+40),...
+'r0_error_index',int32(-999999999),...
+'r0_error_lower',double(-9e+40),...
+'r0_error_upper',double(-9e+40)));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_sawteeth.m b/matlab/TCV_IMAS/ids_empty/ids_empty_sawteeth.m
index da42ec8a25c504a4912f3a40b32985dc055e1818..c4ced31d37f122659aae9068257e241cf4715ceb 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_sawteeth.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_sawteeth.m
@@ -1,19 +1,23 @@
 function S = ids_empty_sawteeth
 % function S = ids_empty_sawteeth
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -50,6 +54,51 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
@@ -207,7 +256,7 @@ struct(...
 'zeff_error_index',int32(-999999999),...
 'zeff_error_lower',double([]),...
 'zeff_error_upper',double([]))
-;}},...
+}},...
 'time',double([]),...
 'vacuum_toroidal_field',struct(...
 'b0',double([]),...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_sdn.m b/matlab/TCV_IMAS/ids_empty/ids_empty_sdn.m
deleted file mode 100644
index 2a4b9700e0c4199eb6aeae01a55e63b8b4d6d697..0000000000000000000000000000000000000000
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_sdn.m
+++ /dev/null
@@ -1,49 +0,0 @@
-function S = ids_empty_sdn
-% function S = ids_empty_sdn
-%
-% File written automatically using struct2m.m 
-
-S = ... 
-struct(...
-'code',struct(...
-'commit','',...
-'library',{{struct(...
-'commit','',...
-'name','',...
-'parameters','',...
-'repository','',...
-'version','')
-;}},...
-'name','',...
-'output_flag',int32([]),...
-'parameters','',...
-'repository','',...
-'version',''),...
-'ids_properties',struct(...
-'comment','',...
-'creation_date','',...
-'homogeneous_time',int32(-999999999),...
-'provider','',...
-'source','',...
-'version_put',struct(...
-'access_layer','',...
-'access_layer_language','',...
-'data_dictionary','')),...
-'time',double([]),...
-'topic',{{struct(...
-'name','',...
-'signal',{{struct(...
-'allocated_position',int32(-999999999),...
-'definition','',...
-'name','',...
-'quality',struct(...
-'data',int32([]),...
-'time',double([])),...
-'value',struct(...
-'data',double([]),...
-'data_error_index',int32(-999999999),...
-'data_error_lower',double([]),...
-'data_error_upper',double([]),...
-'time',double([])))
-;}})
-;}});
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_soft_x_rays.m b/matlab/TCV_IMAS/ids_empty/ids_empty_soft_x_rays.m
index e56a4d6cfe1c33a15df7c95cb07215da7a91ceaf..3a0783cc4f846a72cba102b6b697cde4135f5c2f 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_soft_x_rays.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_soft_x_rays.m
@@ -1,9 +1,11 @@
 function S = ids_empty_soft_x_rays
 % function S = ids_empty_soft_x_rays
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'channel',{{struct(...
 'aperture',{{struct(...
@@ -85,7 +87,7 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40)))
-;}},...
+}},...
 'brightness',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
@@ -188,7 +190,7 @@ struct(...
 'upper_bound_error_index',int32(-999999999),...
 'upper_bound_error_lower',double(-9e+40),...
 'upper_bound_error_upper',double(-9e+40))
-;}},...
+}},...
 'etendue',double(-9e+40),...
 'etendue_error_index',int32(-999999999),...
 'etendue_error_lower',double(-9e+40),...
@@ -197,6 +199,126 @@ struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
+'filter_window',{{struct(...
+'centre',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'curvature_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'geometry_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'identifier','',...
+'material',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'outline',struct(...
+'x1',double([]),...
+'x1_error_index',int32(-999999999),...
+'x1_error_lower',double([]),...
+'x1_error_upper',double([]),...
+'x2',double([]),...
+'x2_error_index',int32(-999999999),...
+'x2_error_lower',double([]),...
+'x2_error_upper',double([])),...
+'photon_absorption',double([]),...
+'photon_absorption_error_index',int32(-999999999),...
+'photon_absorption_error_lower',double([]),...
+'photon_absorption_error_upper',double([]),...
+'radius',double(-9e+40),...
+'radius_error_index',int32(-999999999),...
+'radius_error_lower',double(-9e+40),...
+'radius_error_upper',double(-9e+40),...
+'surface',double(-9e+40),...
+'surface_error_index',int32(-999999999),...
+'surface_error_lower',double(-9e+40),...
+'surface_error_upper',double(-9e+40),...
+'thickness',double(-9e+40),...
+'thickness_error_index',int32(-999999999),...
+'thickness_error_lower',double(-9e+40),...
+'thickness_error_upper',double(-9e+40),...
+'wavelength_lower',double(-9e+40),...
+'wavelength_lower_error_index',int32(-999999999),...
+'wavelength_lower_error_lower',double(-9e+40),...
+'wavelength_lower_error_upper',double(-9e+40),...
+'wavelength_upper',double(-9e+40),...
+'wavelength_upper_error_index',int32(-999999999),...
+'wavelength_upper_error_lower',double(-9e+40),...
+'wavelength_upper_error_upper',double(-9e+40),...
+'wavelengths',double([]),...
+'wavelengths_error_index',int32(-999999999),...
+'wavelengths_error_lower',double([]),...
+'wavelengths_error_upper',double([]),...
+'x1_curvature',double(-9e+40),...
+'x1_curvature_error_index',int32(-999999999),...
+'x1_curvature_error_lower',double(-9e+40),...
+'x1_curvature_error_upper',double(-9e+40),...
+'x1_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x1_width',double(-9e+40),...
+'x1_width_error_index',int32(-999999999),...
+'x1_width_error_lower',double(-9e+40),...
+'x1_width_error_upper',double(-9e+40),...
+'x2_curvature',double(-9e+40),...
+'x2_curvature_error_index',int32(-999999999),...
+'x2_curvature_error_lower',double(-9e+40),...
+'x2_curvature_error_upper',double(-9e+40),...
+'x2_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x2_width',double(-9e+40),...
+'x2_width_error_index',int32(-999999999),...
+'x2_width_error_lower',double(-9e+40),...
+'x2_width_error_upper',double(-9e+40),...
+'x3_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)))
+}},...
 'identifier','',...
 'line_of_sight',struct(...
 'first_point',struct(...
@@ -236,16 +358,18 @@ struct(...
 'validity_timed',struct(...
 'data',int32([]),...
 'time',double([])))
-;}},...
+}},...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -255,10 +379,59 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_mass.m b/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_mass.m
index 3b01c69b849323fcae6a88031f90fda73b0adeba..3aa0d5f222a01e85e4351beff0915efc2c3feec1 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_mass.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_mass.m
@@ -1,23 +1,44 @@
 function S = ids_empty_spectrometer_mass
 % function S = ids_empty_spectrometer_mass
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
-'a',double([]),...
+'channel',{{struct(...
+'a',double(-9e+40),...
 'a_error_index',int32(-999999999),...
-'a_error_lower',double([]),...
-'a_error_upper',double([]),...
+'a_error_lower',double(-9e+40),...
+'a_error_upper',double(-9e+40),...
+'current',double([]),...
+'current_error_index',int32(-999999999),...
+'current_error_lower',double([]),...
+'current_error_upper',double([]),...
+'photomultiplier_voltage',double([]),...
+'photomultiplier_voltage_error_index',int32(-999999999),...
+'photomultiplier_voltage_error_lower',double([]),...
+'photomultiplier_voltage_error_upper',double([]),...
+'pressure_partial',double([]),...
+'pressure_partial_error_index',int32(-999999999),...
+'pressure_partial_error_lower',double([]),...
+'pressure_partial_error_upper',double([]),...
+'time',double([]),...
+'validity',int32(-999999999),...
+'validity_timed',int32([]))
+}},...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -28,19 +49,71 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'name','',...
-'pressures_partial',struct(...
-'data',double([]),...
-'data_error_index',int32(-999999999),...
-'data_error_lower',double([]),...
-'data_error_upper',double([]),...
-'time',double([]),...
-'validity',int32(-999999999),...
-'validity_timed',int32([])),...
+'residual_spectrum',{{struct(...
+'a',double([]),...
+'a_error_index',int32(-999999999),...
+'a_error_lower',double([]),...
+'a_error_upper',double([]),...
+'current',double([]),...
+'current_error_index',int32(-999999999),...
+'current_error_lower',double([]),...
+'current_error_upper',double([]),...
+'time',double(-9e+40))
+}},...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_uv.m b/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_uv.m
index b5efbc4e7cba917b123c54b5bd52fcdd885f1da1..da1fc1341767ab41338dcc552b4c081380bd973a 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_uv.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_uv.m
@@ -1,9 +1,11 @@
 function S = ids_empty_spectrometer_uv
 % function S = ids_empty_spectrometer_uv
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'channel',{{struct(...
 'aperture',{{struct(...
@@ -85,7 +87,7 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40)))
-;}},...
+}},...
 'detector',struct(...
 'centre',struct(...
 'phi',double(-9e+40),...
@@ -382,7 +384,7 @@ struct(...
 'wavelength_central_error_index',int32(-999999999),...
 'wavelength_central_error_lower',double(-9e+40),...
 'wavelength_central_error_upper',double(-9e+40))
-;}},...
+}},...
 'radiance_calibration',double([]),...
 'radiance_calibration_date','',...
 'radiance_calibration_error_index',int32(-999999999),...
@@ -402,7 +404,7 @@ struct(...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])))
-;}},...
+}},...
 'validity',int32(-999999999),...
 'validity_timed',struct(...
 'data',int32([]),...
@@ -421,16 +423,18 @@ struct(...
 'wavelengths_error_index',int32(-999999999),...
 'wavelengths_error_lower',double([]),...
 'wavelengths_error_upper',double([]))
-;}},...
+}},...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -448,10 +452,59 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_visible.m b/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_visible.m
index 5fc6ffaf9b16b3c247306ef59f57a6f6abf3cb0b..cb8a2da0817dc8cfbbd4bd42587bf93fa24af28f 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_visible.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_visible.m
@@ -1,9 +1,11 @@
 function S = ids_empty_spectrometer_visible
 % function S = ids_empty_spectrometer_visible
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'channel',{{struct(...
 'active_spatial_resolution',{{struct(...
@@ -34,7 +36,7 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40)))
-;}},...
+}},...
 'aperture',{{struct(...
 'centre',struct(...
 'phi',double(-9e+40),...
@@ -114,7 +116,7 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40)))
-;}},...
+}},...
 'detector',struct(...
 'centre',struct(...
 'phi',double(-9e+40),...
@@ -226,6 +228,99 @@ struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
+'fibre_bundle',struct(...
+'fibre_positions',struct(...
+'x1',double([]),...
+'x1_error_index',int32(-999999999),...
+'x1_error_lower',double([]),...
+'x1_error_upper',double([]),...
+'x2',double([]),...
+'x2_error_index',int32(-999999999),...
+'x2_error_lower',double([]),...
+'x2_error_upper',double([])),...
+'fibre_radius',double(-9e+40),...
+'fibre_radius_error_index',int32(-999999999),...
+'fibre_radius_error_lower',double(-9e+40),...
+'fibre_radius_error_upper',double(-9e+40),...
+'geometry',struct(...
+'centre',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'geometry_type',int32(-999999999),...
+'outline',struct(...
+'x1',double([]),...
+'x1_error_index',int32(-999999999),...
+'x1_error_lower',double([]),...
+'x1_error_upper',double([]),...
+'x2',double([]),...
+'x2_error_index',int32(-999999999),...
+'x2_error_lower',double([]),...
+'x2_error_upper',double([])),...
+'radius',double(-9e+40),...
+'radius_error_index',int32(-999999999),...
+'radius_error_lower',double(-9e+40),...
+'radius_error_upper',double(-9e+40),...
+'surface',double(-9e+40),...
+'surface_error_index',int32(-999999999),...
+'surface_error_lower',double(-9e+40),...
+'surface_error_upper',double(-9e+40),...
+'x1_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x1_width',double(-9e+40),...
+'x1_width_error_index',int32(-999999999),...
+'x1_width_error_lower',double(-9e+40),...
+'x1_width_error_upper',double(-9e+40),...
+'x2_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x2_width',double(-9e+40),...
+'x2_width_error_index',int32(-999999999),...
+'x2_width_error_lower',double(-9e+40),...
+'x2_width_error_upper',double(-9e+40),...
+'x3_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)))),...
 'fibre_image',struct(...
 'circular',struct(...
 'ellipticity',double(-9e+40),...
@@ -251,76 +346,106 @@ struct(...
 'z_error_lower',double([]),...
 'z_error_upper',double([]))),...
 'filter_spectrometer',struct(...
-'calibrated_line_integrals',struct(...
-'data',double([]),...
-'data_error_index',int32(-999999999),...
-'data_error_lower',double([]),...
-'data_error_upper',double([]),...
-'time',double([])),...
-'calibrated_lines',double([]),...
-'calibrated_lines_error_index',int32(-999999999),...
-'calibrated_lines_error_lower',double([]),...
-'calibrated_lines_error_upper',double([]),...
 'exposure_time',double(-9e+40),...
 'exposure_time_error_index',int32(-999999999),...
 'exposure_time_error_lower',double(-9e+40),...
 'exposure_time_error_upper',double(-9e+40),...
-'line_intensities',struct(...
-'data',double([]),...
-'data_error_index',int32(-999999999),...
-'data_error_lower',double([]),...
-'data_error_upper',double([]),...
-'time',double([])),...
-'line_labels',{{}},...
-'line_power_radiances',struct(...
+'filter',struct(...
+'wavelength_central',double(-9e+40),...
+'wavelength_central_error_index',int32(-999999999),...
+'wavelength_central_error_lower',double(-9e+40),...
+'wavelength_central_error_upper',double(-9e+40),...
+'wavelength_width',double(-9e+40),...
+'wavelength_width_error_index',int32(-999999999),...
+'wavelength_width_error_lower',double(-9e+40),...
+'wavelength_width_error_upper',double(-9e+40)),...
+'output_voltage',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])),...
-'line_radiances',struct(...
+'photoelectric_voltage',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])),...
-'line_radiances_adjusted',struct(...
+'photon_count',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])),...
-'output_voltage',struct(...
+'processed_line',{{struct(...
+'label','',...
+'wavelength_central',double(-9e+40),...
+'wavelength_central_error_index',int32(-999999999),...
+'wavelength_central_error_lower',double(-9e+40),...
+'wavelength_central_error_upper',double(-9e+40))
+}},...
+'radiance_calibration',double([]),...
+'radiance_calibration_date','',...
+'radiance_calibration_error_index',int32(-999999999),...
+'radiance_calibration_error_lower',double([]),...
+'radiance_calibration_error_upper',double([]),...
+'sensitivity',double([]),...
+'sensitivity_error_index',int32(-999999999),...
+'sensitivity_error_lower',double([]),...
+'sensitivity_error_upper',double([]),...
+'wavelengths',double([]),...
+'wavelengths_error_index',int32(-999999999),...
+'wavelengths_error_lower',double([]),...
+'wavelengths_error_upper',double([])),...
+'geometry_matrix',struct(...
+'emission_grid',struct(...
+'dim1',double([]),...
+'dim1_error_index',int32(-999999999),...
+'dim1_error_lower',double([]),...
+'dim1_error_upper',double([]),...
+'dim2',double([]),...
+'dim2_error_index',int32(-999999999),...
+'dim2_error_lower',double([]),...
+'dim2_error_upper',double([]),...
+'dim3',double([]),...
+'dim3_error_index',int32(-999999999),...
+'dim3_error_lower',double([]),...
+'dim3_error_upper',double([]),...
+'grid_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name','')),...
+'interpolated',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
-'time',double([])),...
-'photoelectric_voltage',struct(...
+'phi',double([]),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double([]),...
+'phi_error_upper',double([]),...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([])),...
+'voxel_map',int32([]),...
+'voxels_n',int32(-999999999),...
+'with_reflections',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
-'time',double([])),...
-'photon_count',struct(...
+'voxel_indices',int32([])),...
+'without_reflections',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
-'time',double([])),...
-'processed_lines',double([]),...
-'processed_lines_error_index',int32(-999999999),...
-'processed_lines_error_lower',double([]),...
-'processed_lines_error_upper',double([]),...
-'radiance_calibration',double(-9e+40),...
-'radiance_calibration_date','',...
-'radiance_calibration_error_index',int32(-999999999),...
-'radiance_calibration_error_lower',double(-9e+40),...
-'radiance_calibration_error_upper',double(-9e+40),...
-'raw_lines',double([]),...
-'raw_lines_error_index',int32(-999999999),...
-'raw_lines_error_lower',double([]),...
-'raw_lines_error_upper',double([])),...
+'voxel_indices',int32([]))),...
 'grating_spectrometer',struct(...
 'exposure_time',double(-9e+40),...
 'exposure_time_error_index',int32(-999999999),...
@@ -330,6 +455,10 @@ struct(...
 'grating_error_index',int32(-999999999),...
 'grating_error_lower',double(-9e+40),...
 'grating_error_upper',double(-9e+40),...
+'instrument_function',double([]),...
+'instrument_function_error_index',int32(-999999999),...
+'instrument_function_error_lower',double([]),...
+'instrument_function_error_upper',double([]),...
 'intensity_spectrum',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
@@ -354,7 +483,7 @@ struct(...
 'wavelength_central_error_index',int32(-999999999),...
 'wavelength_central_error_lower',double(-9e+40),...
 'wavelength_central_error_upper',double(-9e+40))
-;}},...
+}},...
 'radiance_calibration',double([]),...
 'radiance_calibration_date','',...
 'radiance_calibration_error_index',int32(-999999999),...
@@ -412,7 +541,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'hot_neutrals_fraction',double([]),...
 'hot_neutrals_fraction_error_index',int32(-999999999),...
 'hot_neutrals_fraction_error_lower',double([]),...
@@ -423,7 +552,7 @@ struct(...
 'hot_neutrals_temperature_error_upper',double([]),...
 'label','',...
 'time',double([]))
-;}},...
+}},...
 'method',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -482,6 +611,146 @@ struct(...
 'z_error_upper',double(-9e+40))),...
 'name','',...
 'object_observed','',...
+'optical_element',{{struct(...
+'back_surface',struct(...
+'curvature_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'x1_curvature',double(-9e+40),...
+'x1_curvature_error_index',int32(-999999999),...
+'x1_curvature_error_lower',double(-9e+40),...
+'x1_curvature_error_upper',double(-9e+40),...
+'x2_curvature',double(-9e+40),...
+'x2_curvature_error_index',int32(-999999999),...
+'x2_curvature_error_lower',double(-9e+40),...
+'x2_curvature_error_upper',double(-9e+40)),...
+'front_surface',struct(...
+'curvature_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'x1_curvature',double(-9e+40),...
+'x1_curvature_error_index',int32(-999999999),...
+'x1_curvature_error_lower',double(-9e+40),...
+'x1_curvature_error_upper',double(-9e+40),...
+'x2_curvature',double(-9e+40),...
+'x2_curvature_error_index',int32(-999999999),...
+'x2_curvature_error_lower',double(-9e+40),...
+'x2_curvature_error_upper',double(-9e+40)),...
+'geometry',struct(...
+'centre',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'geometry_type',int32(-999999999),...
+'outline',struct(...
+'x1',double([]),...
+'x1_error_index',int32(-999999999),...
+'x1_error_lower',double([]),...
+'x1_error_upper',double([]),...
+'x2',double([]),...
+'x2_error_index',int32(-999999999),...
+'x2_error_lower',double([]),...
+'x2_error_upper',double([])),...
+'radius',double(-9e+40),...
+'radius_error_index',int32(-999999999),...
+'radius_error_lower',double(-9e+40),...
+'radius_error_upper',double(-9e+40),...
+'surface',double(-9e+40),...
+'surface_error_index',int32(-999999999),...
+'surface_error_lower',double(-9e+40),...
+'surface_error_upper',double(-9e+40),...
+'x1_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x1_width',double(-9e+40),...
+'x1_width_error_index',int32(-999999999),...
+'x1_width_error_lower',double(-9e+40),...
+'x1_width_error_upper',double(-9e+40),...
+'x2_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x2_width',double(-9e+40),...
+'x2_width_error_index',int32(-999999999),...
+'x2_width_error_lower',double(-9e+40),...
+'x2_width_error_upper',double(-9e+40),...
+'x3_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40))),...
+'material_properties',struct(...
+'extinction_coefficient',double([]),...
+'extinction_coefficient_error_index',int32(-999999999),...
+'extinction_coefficient_error_lower',double([]),...
+'extinction_coefficient_error_upper',double([]),...
+'refractive_index',double([]),...
+'refractive_index_error_index',int32(-999999999),...
+'refractive_index_error_lower',double([]),...
+'refractive_index_error_upper',double([]),...
+'roughness',double([]),...
+'roughness_error_index',int32(-999999999),...
+'roughness_error_lower',double([]),...
+'roughness_error_upper',double([]),...
+'transmission_coefficient',double([]),...
+'transmission_coefficient_error_index',int32(-999999999),...
+'transmission_coefficient_error_lower',double([]),...
+'transmission_coefficient_error_upper',double([]),...
+'type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'wavelengths',double([]),...
+'wavelengths_error_index',int32(-999999999),...
+'wavelengths_error_lower',double([]),...
+'wavelengths_error_upper',double([])),...
+'thickness',double(-9e+40),...
+'thickness_error_index',int32(-999999999),...
+'thickness_error_lower',double(-9e+40),...
+'thickness_error_upper',double(-9e+40),...
+'type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''))
+}},...
 'polarization_spectroscopy',struct(...
 'b_field_modulus',double([]),...
 'b_field_modulus_error_index',int32(-999999999),...
@@ -608,16 +877,18 @@ struct(...
 'validity_timed',struct(...
 'data',int32([]),...
 'time',double([])))
-;}},...
+}},...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -628,10 +899,59 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_x_ray_crystal.m b/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_x_ray_crystal.m
index b28b530a26d8dee530027f0c61954fe00d1de261..461dc9ce5331b12571b083fa4f5f9732f0cc1088 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_x_ray_crystal.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_spectrometer_x_ray_crystal.m
@@ -1,10 +1,155 @@
 function S = ids_empty_spectrometer_x_ray_crystal
 % function S = ids_empty_spectrometer_x_ray_crystal
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
+'channel',{{struct(...
+'aperture',struct(...
+'centre',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'geometry_type',int32(-999999999),...
+'outline',struct(...
+'x1',double([]),...
+'x1_error_index',int32(-999999999),...
+'x1_error_lower',double([]),...
+'x1_error_upper',double([]),...
+'x2',double([]),...
+'x2_error_index',int32(-999999999),...
+'x2_error_lower',double([]),...
+'x2_error_upper',double([])),...
+'radius',double(-9e+40),...
+'radius_error_index',int32(-999999999),...
+'radius_error_lower',double(-9e+40),...
+'radius_error_upper',double(-9e+40),...
+'surface',double(-9e+40),...
+'surface_error_index',int32(-999999999),...
+'surface_error_lower',double(-9e+40),...
+'surface_error_upper',double(-9e+40),...
+'x1_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x1_width',double(-9e+40),...
+'x1_width_error_index',int32(-999999999),...
+'x1_width_error_lower',double(-9e+40),...
+'x1_width_error_upper',double(-9e+40),...
+'x2_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x2_width',double(-9e+40),...
+'x2_width_error_index',int32(-999999999),...
+'x2_width_error_lower',double(-9e+40),...
+'x2_width_error_upper',double(-9e+40),...
+'x3_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40))),...
+'bin',{{struct(...
+'instrument_function',struct(...
+'centre',double([]),...
+'centre_error_index',int32(-999999999),...
+'centre_error_lower',double([]),...
+'centre_error_upper',double([]),...
+'intensity',double([]),...
+'intensity_error_index',int32(-999999999),...
+'intensity_error_lower',double([]),...
+'intensity_error_upper',double([]),...
+'scale',double([]),...
+'scale_error_index',int32(-999999999),...
+'scale_error_lower',double([]),...
+'scale_error_upper',double([]),...
+'sigma',double([]),...
+'sigma_error_index',int32(-999999999),...
+'sigma_error_lower',double([]),...
+'sigma_error_upper',double([]),...
+'type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]),...
+'wavelengths',double([]),...
+'wavelengths_error_index',int32(-999999999),...
+'wavelengths_error_lower',double([]),...
+'wavelengths_error_upper',double([])),...
+'line_of_sight',struct(...
+'first_point',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'second_point',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40))),...
+'wavelength',double([]),...
+'wavelength_error_index',int32(-999999999),...
+'wavelength_error_lower',double([]),...
+'wavelength_error_upper',double([]),...
+'z_pixel_range',int32([]))
+}},...
 'camera',struct(...
 'camera_dimensions',double([]),...
 'camera_dimensions_error_index',int32(-999999999),...
@@ -23,11 +168,78 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40)),...
+'identifier','',...
+'line_of_sight',struct(...
+'first_point',struct(...
+'phi',double([]),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double([]),...
+'phi_error_upper',double([]),...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([])),...
+'second_point',struct(...
+'phi',double([]),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double([]),...
+'phi_error_upper',double([]),...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))),...
 'pixel_dimensions',double([]),...
 'pixel_dimensions_error_index',int32(-999999999),...
 'pixel_dimensions_error_lower',double([]),...
 'pixel_dimensions_error_upper',double([]),...
-'pixel_n',int32([]),...
+'pixel_position',struct(...
+'phi',double([]),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double([]),...
+'phi_error_upper',double([]),...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([])),...
+'pixels_n',int32([]),...
+'x1_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x2_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
 'x3_unit_vector',struct(...
 'x',double(-9e+40),...
 'x_error_index',int32(-999999999),...
@@ -41,51 +253,12 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40))),...
-'code',struct(...
-'commit','',...
-'library',{{struct(...
-'commit','',...
-'name','',...
-'parameters','',...
-'repository','',...
-'version','')
-;}},...
-'name','',...
-'output_flag',int32([]),...
-'parameters','',...
-'repository','',...
-'version',''),...
 'crystal',struct(...
 'angle_bragg',double(-9e+40),...
 'angle_bragg_error_index',int32(-999999999),...
 'angle_bragg_error_lower',double(-9e+40),...
 'angle_bragg_error_upper',double(-9e+40),...
-'angular_span_horizontal',double(-9e+40),...
-'angular_span_horizontal_error_index',int32(-999999999),...
-'angular_span_horizontal_error_lower',double(-9e+40),...
-'angular_span_horizontal_error_upper',double(-9e+40),...
-'angular_span_vertical',double(-9e+40),...
-'angular_span_vertical_error_index',int32(-999999999),...
-'angular_span_vertical_error_lower',double(-9e+40),...
-'angular_span_vertical_error_upper',double(-9e+40),...
-'curvature_horizontal',double(-9e+40),...
-'curvature_horizontal_error_index',int32(-999999999),...
-'curvature_horizontal_error_lower',double(-9e+40),...
-'curvature_horizontal_error_upper',double(-9e+40),...
-'curvature_vertical',double(-9e+40),...
-'curvature_vertical_error_index',int32(-999999999),...
-'curvature_vertical_error_lower',double(-9e+40),...
-'curvature_vertical_error_upper',double(-9e+40),...
-'geometry_type',struct(...
-'description','',...
-'index',int32(-999999999),...
-'name',''),...
-'height',double(-9e+40),...
-'height_error_index',int32(-999999999),...
-'height_error_lower',double(-9e+40),...
-'height_error_upper',double(-9e+40),...
-'material','',...
-'summit',struct(...
+'centre',struct(...
 'phi',double(-9e+40),...
 'phi_error_index',int32(-999999999),...
 'phi_error_lower',double(-9e+40),...
@@ -98,14 +271,91 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40)),...
+'curvature_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'cut',int32([]),...
+'geometry_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'identifier','',...
+'material',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'mesh_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'outline',struct(...
+'x1',double([]),...
+'x1_error_index',int32(-999999999),...
+'x1_error_lower',double([]),...
+'x1_error_upper',double([]),...
+'x2',double([]),...
+'x2_error_index',int32(-999999999),...
+'x2_error_lower',double([]),...
+'x2_error_upper',double([])),...
+'radius',double(-9e+40),...
+'radius_error_index',int32(-999999999),...
+'radius_error_lower',double(-9e+40),...
+'radius_error_upper',double(-9e+40),...
+'surface',double(-9e+40),...
+'surface_error_index',int32(-999999999),...
+'surface_error_lower',double(-9e+40),...
+'surface_error_upper',double(-9e+40),...
+'thickness',double(-9e+40),...
+'thickness_error_index',int32(-999999999),...
+'thickness_error_lower',double(-9e+40),...
+'thickness_error_upper',double(-9e+40),...
 'wavelength_bragg',double(-9e+40),...
 'wavelength_bragg_error_index',int32(-999999999),...
 'wavelength_bragg_error_lower',double(-9e+40),...
 'wavelength_bragg_error_upper',double(-9e+40),...
-'width',double(-9e+40),...
-'width_error_index',int32(-999999999),...
-'width_error_lower',double(-9e+40),...
-'width_error_upper',double(-9e+40),...
+'x1_curvature',double(-9e+40),...
+'x1_curvature_error_index',int32(-999999999),...
+'x1_curvature_error_lower',double(-9e+40),...
+'x1_curvature_error_upper',double(-9e+40),...
+'x1_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x1_width',double(-9e+40),...
+'x1_width_error_index',int32(-999999999),...
+'x1_width_error_lower',double(-9e+40),...
+'x1_width_error_upper',double(-9e+40),...
+'x2_curvature',double(-9e+40),...
+'x2_curvature_error_index',int32(-999999999),...
+'x2_curvature_error_lower',double(-9e+40),...
+'x2_curvature_error_upper',double(-9e+40),...
+'x2_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x2_width',double(-9e+40),...
+'x2_width_error_index',int32(-999999999),...
+'x2_width_error_lower',double(-9e+40),...
+'x2_width_error_upper',double(-9e+40),...
 'x3_unit_vector',struct(...
 'x',double(-9e+40),...
 'x_error_index',int32(-999999999),...
@@ -119,6 +369,14 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double(-9e+40),...
 'z_error_upper',double(-9e+40))),...
+'detection_efficiency',double([]),...
+'detection_efficiency_error_index',int32(-999999999),...
+'detection_efficiency_error_lower',double([]),...
+'detection_efficiency_error_upper',double([]),...
+'energies',double([]),...
+'energies_error_index',int32(-999999999),...
+'energies_error_lower',double([]),...
+'energies_error_upper',double([]),...
 'energy_bound_lower',double([]),...
 'energy_bound_lower_error_index',int32(-999999999),...
 'energy_bound_lower_error_lower',double([]),...
@@ -127,58 +385,313 @@ struct(...
 'energy_bound_upper_error_index',int32(-999999999),...
 'energy_bound_upper_error_lower',double([]),...
 'energy_bound_upper_error_upper',double([]),...
-'filter_window',struct(...
-'material','',...
+'exposure_time',double(-9e+40),...
+'exposure_time_error_index',int32(-999999999),...
+'exposure_time_error_lower',double(-9e+40),...
+'exposure_time_error_upper',double(-9e+40),...
+'filter_window',{{struct(...
+'centre',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'curvature_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'geometry_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'identifier','',...
+'material',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'outline',struct(...
+'x1',double([]),...
+'x1_error_index',int32(-999999999),...
+'x1_error_lower',double([]),...
+'x1_error_upper',double([]),...
+'x2',double([]),...
+'x2_error_index',int32(-999999999),...
+'x2_error_lower',double([]),...
+'x2_error_upper',double([])),...
+'photon_absorption',double([]),...
+'photon_absorption_error_index',int32(-999999999),...
+'photon_absorption_error_lower',double([]),...
+'photon_absorption_error_upper',double([]),...
+'radius',double(-9e+40),...
+'radius_error_index',int32(-999999999),...
+'radius_error_lower',double(-9e+40),...
+'radius_error_upper',double(-9e+40),...
+'surface',double(-9e+40),...
+'surface_error_index',int32(-999999999),...
+'surface_error_lower',double(-9e+40),...
+'surface_error_upper',double(-9e+40),...
 'thickness',double(-9e+40),...
 'thickness_error_index',int32(-999999999),...
 'thickness_error_lower',double(-9e+40),...
-'thickness_error_upper',double(-9e+40)),...
+'thickness_error_upper',double(-9e+40),...
+'wavelength_lower',double(-9e+40),...
+'wavelength_lower_error_index',int32(-999999999),...
+'wavelength_lower_error_lower',double(-9e+40),...
+'wavelength_lower_error_upper',double(-9e+40),...
+'wavelength_upper',double(-9e+40),...
+'wavelength_upper_error_index',int32(-999999999),...
+'wavelength_upper_error_lower',double(-9e+40),...
+'wavelength_upper_error_upper',double(-9e+40),...
+'wavelengths',double([]),...
+'wavelengths_error_index',int32(-999999999),...
+'wavelengths_error_lower',double([]),...
+'wavelengths_error_upper',double([]),...
+'x1_curvature',double(-9e+40),...
+'x1_curvature_error_index',int32(-999999999),...
+'x1_curvature_error_lower',double(-9e+40),...
+'x1_curvature_error_upper',double(-9e+40),...
+'x1_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x1_width',double(-9e+40),...
+'x1_width_error_index',int32(-999999999),...
+'x1_width_error_lower',double(-9e+40),...
+'x1_width_error_upper',double(-9e+40),...
+'x2_curvature',double(-9e+40),...
+'x2_curvature_error_index',int32(-999999999),...
+'x2_curvature_error_lower',double(-9e+40),...
+'x2_curvature_error_upper',double(-9e+40),...
+'x2_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x2_width',double(-9e+40),...
+'x2_width_error_index',int32(-999999999),...
+'x2_width_error_lower',double(-9e+40),...
+'x2_width_error_upper',double(-9e+40),...
+'x3_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)))
+}},...
 'frame',{{struct(...
-'photon_count',double([]),...
-'photon_count_error_index',int32(-999999999),...
-'photon_count_error_lower',double([]),...
-'photon_count_error_upper',double([]),...
+'counts_bin_n',double([]),...
+'counts_bin_n_error_index',int32(-999999999),...
+'counts_bin_n_error_lower',double([]),...
+'counts_bin_n_error_upper',double([]),...
+'counts_n',double([]),...
+'counts_n_error_index',int32(-999999999),...
+'counts_n_error_lower',double([]),...
+'counts_n_error_upper',double([]),...
 'time',double(-9e+40))
-;}},...
-'ids_properties',struct(...
-'comment','',...
-'creation_date','',...
-'homogeneous_time',int32(-999999999),...
-'provider','',...
-'source','',...
-'version_put',struct(...
-'access_layer','',...
-'access_layer_language','',...
-'data_dictionary','')),...
-'integration_time',double(-9e+40),...
-'integration_time_error_index',int32(-999999999),...
-'integration_time_error_lower',double(-9e+40),...
-'integration_time_error_upper',double(-9e+40),...
-'t_e_proxy',struct(...
+}},...
+'instrument_function',struct(...
+'centre',double([]),...
+'centre_error_index',int32(-999999999),...
+'centre_error_lower',double([]),...
+'centre_error_upper',double([]),...
+'intensity',double([]),...
+'intensity_error_index',int32(-999999999),...
+'intensity_error_lower',double([]),...
+'intensity_error_upper',double([]),...
+'scale',double([]),...
+'scale_error_index',int32(-999999999),...
+'scale_error_lower',double([]),...
+'scale_error_upper',double([]),...
+'sigma',double([]),...
+'sigma_error_index',int32(-999999999),...
+'sigma_error_lower',double([]),...
+'sigma_error_upper',double([]),...
+'type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]),...
+'wavelengths',double([]),...
+'wavelengths_error_index',int32(-999999999),...
+'wavelengths_error_lower',double([]),...
+'wavelengths_error_upper',double([])),...
+'profiles_line_integrated',struct(...
+'lines_of_sight_rho_tor_norm',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
-'time',double([]),...
 'validity',int32(-999999999),...
 'validity_timed',int32([])),...
-'t_i_proxy',struct(...
+'lines_of_sight_second_point',struct(...
+'phi',double([]),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double([]),...
+'phi_error_upper',double([]),...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([])),...
+'t_e',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
-'time',double([]),...
 'validity',int32(-999999999),...
 'validity_timed',int32([])),...
-'time',double([]),...
-'velocity_tor_proxy',struct(...
+'t_i',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
-'time',double([]),...
 'validity',int32(-999999999),...
 'validity_timed',int32([])),...
+'time',double([]),...
+'velocity_tor',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'validity',int32(-999999999),...
+'validity_timed',int32([]))),...
+'reflector',{{struct(...
+'centre',struct(...
+'phi',double(-9e+40),...
+'phi_error_index',int32(-999999999),...
+'phi_error_lower',double(-9e+40),...
+'phi_error_upper',double(-9e+40),...
+'r',double(-9e+40),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double(-9e+40),...
+'r_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'curvature_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'geometry_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'identifier','',...
+'material',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'outline',struct(...
+'x1',double([]),...
+'x1_error_index',int32(-999999999),...
+'x1_error_lower',double([]),...
+'x1_error_upper',double([]),...
+'x2',double([]),...
+'x2_error_index',int32(-999999999),...
+'x2_error_lower',double([]),...
+'x2_error_upper',double([])),...
+'radius',double(-9e+40),...
+'radius_error_index',int32(-999999999),...
+'radius_error_lower',double(-9e+40),...
+'radius_error_upper',double(-9e+40),...
+'surface',double(-9e+40),...
+'surface_error_index',int32(-999999999),...
+'surface_error_lower',double(-9e+40),...
+'surface_error_upper',double(-9e+40),...
+'x1_curvature',double(-9e+40),...
+'x1_curvature_error_index',int32(-999999999),...
+'x1_curvature_error_lower',double(-9e+40),...
+'x1_curvature_error_upper',double(-9e+40),...
+'x1_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x1_width',double(-9e+40),...
+'x1_width_error_index',int32(-999999999),...
+'x1_width_error_lower',double(-9e+40),...
+'x1_width_error_upper',double(-9e+40),...
+'x2_curvature',double(-9e+40),...
+'x2_curvature_error_index',int32(-999999999),...
+'x2_curvature_error_lower',double(-9e+40),...
+'x2_curvature_error_upper',double(-9e+40),...
+'x2_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)),...
+'x2_width',double(-9e+40),...
+'x2_width_error_index',int32(-999999999),...
+'x2_width_error_lower',double(-9e+40),...
+'x2_width_error_upper',double(-9e+40),...
+'x3_unit_vector',struct(...
+'x',double(-9e+40),...
+'x_error_index',int32(-999999999),...
+'x_error_lower',double(-9e+40),...
+'x_error_upper',double(-9e+40),...
+'y',double(-9e+40),...
+'y_error_index',int32(-999999999),...
+'y_error_lower',double(-9e+40),...
+'y_error_upper',double(-9e+40),...
+'z',double(-9e+40),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double(-9e+40),...
+'z_error_upper',double(-9e+40)))
+}},...
 'wavelength_frames',double([]),...
 'wavelength_frames_error_index',int32(-999999999),...
 'wavelength_frames_error_lower',double([]),...
@@ -186,4 +699,81 @@ struct(...
 'z_frames',double([]),...
 'z_frames_error_index',int32(-999999999),...
 'z_frames_error_lower',double([]),...
-'z_frames_error_upper',double([]));
+'z_frames_error_upper',double([]))
+}},...
+'code',struct(...
+'commit','',...
+'description','',...
+'library',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'name','',...
+'output_flag',int32([]),...
+'parameters','',...
+'repository','',...
+'version',''),...
+'ids_properties',struct(...
+'comment','',...
+'creation_date','',...
+'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
+'provider','',...
+'source','',...
+'version_put',struct(...
+'access_layer','',...
+'access_layer_language','',...
+'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
+'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_summary.m b/matlab/TCV_IMAS/ids_empty/ids_empty_summary.m
index 9683a64fdb306dbb4c39e5176be8a1cca9ff2fcc..a648f9fefa6703980f2044ed4a8e1b5d2d0c3652 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_summary.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_summary.m
@@ -1,11 +1,19 @@
 function S = ids_empty_summary
 % function S = ids_empty_summary
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'boundary',struct(...
+'distance_inner_outer_separatrices',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
 'elongation',struct(...
 'source','',...
 'value',double([]),...
@@ -89,16 +97,28 @@ struct(...
 'value_error_upper',double([])),...
 'type',struct(...
 'source','',...
-'value',int32([]))),...
+'value',int32([])),...
+'x_point_main',struct(...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'source','',...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([]))),...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -243,826 +263,1872 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power',struct(...
+'neutron_rates',struct(...
+'dd',struct(...
+'beam_beam',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
-'value_error_upper',double([]))),...
-'gas_injection_rates',struct(...
-'ammonia',struct(...
+'value_error_upper',double([])),...
+'beam_thermal',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'ammonia_deuterated',struct(...
+'thermal',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'argon',struct(...
+'total',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'beryllium',struct(...
+'value_error_upper',double([]))),...
+'dt',struct(...
+'beam_beam',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'bottom',struct(...
+'beam_thermal',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'carbon',struct(...
+'thermal',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'deuterium',struct(...
+'total',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'ethane',struct(...
+'value_error_upper',double([]))),...
+'thermal',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'ethylene',struct(...
+'total',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'helium_3',struct(...
+'tt',struct(...
+'beam_beam',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'helium_4',struct(...
+'beam_thermal',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'hydrogen',struct(...
+'thermal',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'impurity_seeding',struct(...
-'source','',...
-'value',int32(-999999999)),...
-'krypton',struct(...
+'total',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'lithium',struct(...
+'value_error_upper',double([])))),...
+'power',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'methane',struct(...
+'value_error_upper',double([]))),...
+'gas_injection_accumulated',struct(...
+'ammonia',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'methane_carbon_13',struct(...
+'ammonia_deuterated',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'methane_deuterated',struct(...
+'argon',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'midplane',struct(...
+'beryllium',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'neon',struct(...
+'bottom',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'nitrogen',struct(...
+'carbon',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'oxygen',struct(...
+'deuterium',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'propane',struct(...
+'ethane',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'silane',struct(...
+'ethylene',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'top',struct(...
+'helium_3',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'total',struct(...
+'helium_4',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'tritium',struct(...
+'hydrogen',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'xenon',struct(...
+'impurity_seeding',struct(...
 'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([]))),...
-'global_quantities',struct(...
-'b0',struct(...
+'value',int32(-999999999)),...
+'krypton',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'beta_pol',struct(...
+'lithium',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'beta_pol_mhd',struct(...
+'methane',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'beta_tor',struct(...
+'methane_carbon_13',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'beta_tor_mhd',struct(...
+'methane_deuterated',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'beta_tor_norm',struct(...
+'midplane',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'beta_tor_norm_mhd',struct(...
+'neon',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'beta_tor_thermal_norm',struct(...
+'nitrogen',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'current_alignment',struct(...
+'oxygen',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'current_bootstrap',struct(...
+'propane',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'current_non_inductive',struct(...
+'silane',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'current_ohm',struct(...
+'top',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'denergy_diamagnetic_dt',struct(...
+'total',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'denergy_thermal_dt',struct(...
+'tritium',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'energy_b_field_pol',struct(...
+'xenon',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'energy_diamagnetic',struct(...
+'value_error_upper',double([]))),...
+'gas_injection_prefill',struct(...
+'ammonia',struct(...
 'source','',...
-'value',double([]),...
+'value',double(-9e+40),...
 'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'energy_electrons_thermal',struct(...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'ammonia_deuterated',struct(...
 'source','',...
-'value',double([]),...
+'value',double(-9e+40),...
 'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'energy_fast_parallel',struct(...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'argon',struct(...
 'source','',...
-'value',double([]),...
+'value',double(-9e+40),...
 'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'energy_fast_perpendicular',struct(...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'beryllium',struct(...
 'source','',...
-'value',double([]),...
+'value',double(-9e+40),...
 'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'energy_ion_total_thermal',struct(...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'bottom',struct(...
 'source','',...
-'value',double([]),...
+'value',double(-9e+40),...
 'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'energy_mhd',struct(...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'carbon',struct(...
 'source','',...
-'value',double([]),...
+'value',double(-9e+40),...
 'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'energy_thermal',struct(...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'deuterium',struct(...
 'source','',...
-'value',double([]),...
+'value',double(-9e+40),...
 'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'energy_total',struct(...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'ethane',struct(...
 'source','',...
-'value',double([]),...
+'value',double(-9e+40),...
 'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'fusion_gain',struct(...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'ethylene',struct(...
 'source','',...
-'value',double([]),...
+'value',double(-9e+40),...
 'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'greenwald_fraction',struct(...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'helium_3',struct(...
 'source','',...
-'value',double([]),...
+'value',double(-9e+40),...
 'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'h_98',struct(...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'helium_4',struct(...
 'source','',...
-'value',double([]),...
+'value',double(-9e+40),...
 'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'h_mode',struct(...
-'source','',...
-'value',int32([])),...
-'ip',struct(...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'hydrogen',struct(...
 'source','',...
-'value',double([]),...
+'value',double(-9e+40),...
 'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'li',struct(...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'impurity_seeding',struct(...
 'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'li_mhd',struct(...
+'value',int32(-999999999)),...
+'krypton',struct(...
 'source','',...
-'value',double([]),...
+'value',double(-9e+40),...
 'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'power_bremsstrahlung',struct(...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'lithium',struct(...
 'source','',...
-'value',double([]),...
+'value',double(-9e+40),...
 'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'power_line',struct(...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'methane',struct(...
 'source','',...
-'value',double([]),...
+'value',double(-9e+40),...
 'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'methane_carbon_13',struct(...
+'source','',...
+'value',double(-9e+40),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'methane_deuterated',struct(...
+'source','',...
+'value',double(-9e+40),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'midplane',struct(...
+'source','',...
+'value',double(-9e+40),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'neon',struct(...
+'source','',...
+'value',double(-9e+40),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'nitrogen',struct(...
+'source','',...
+'value',double(-9e+40),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'oxygen',struct(...
+'source','',...
+'value',double(-9e+40),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'propane',struct(...
+'source','',...
+'value',double(-9e+40),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'silane',struct(...
+'source','',...
+'value',double(-9e+40),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'top',struct(...
+'source','',...
+'value',double(-9e+40),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'total',struct(...
+'source','',...
+'value',double(-9e+40),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'tritium',struct(...
+'source','',...
+'value',double(-9e+40),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'xenon',struct(...
+'source','',...
+'value',double(-9e+40),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40))),...
+'gas_injection_rates',struct(...
+'ammonia',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'ammonia_deuterated',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'argon',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'beryllium',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'bottom',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'carbon',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'deuterium',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'ethane',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'ethylene',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'helium_3',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'helium_4',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'hydrogen',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'impurity_seeding',struct(...
+'source','',...
+'value',int32(-999999999)),...
+'krypton',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'lithium',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'methane',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'methane_carbon_13',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'methane_deuterated',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'midplane',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'neon',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'nitrogen',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'oxygen',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'propane',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'silane',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'top',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'total',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'tritium',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'xenon',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([]))),...
+'global_quantities',struct(...
+'b0',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'beta_pol',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'beta_pol_mhd',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'beta_tor',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'beta_tor_mhd',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'beta_tor_norm',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'beta_tor_norm_mhd',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'beta_tor_thermal_norm',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'current_alignment',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'current_bootstrap',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'current_non_inductive',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'current_ohm',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'denergy_diamagnetic_dt',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'denergy_thermal_dt',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'energy_b_field_pol',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'energy_diamagnetic',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'energy_electrons_thermal',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'energy_fast_parallel',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'energy_fast_perpendicular',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'energy_ion_total_thermal',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'energy_mhd',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'energy_thermal',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'energy_total',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'fusion_fluence',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'fusion_gain',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'greenwald_fraction',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'h_98',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'h_mode',struct(...
+'source','',...
+'value',int32([])),...
+'ip',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'li',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'li_mhd',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power_bremsstrahlung',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power_line',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power_loss',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power_ohm',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power_radiated',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power_radiated_inside_lcfs',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power_radiated_outside_lcfs',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power_steady',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power_synchrotron',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'psi_external_average',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'q_95',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'r0',struct(...
+'source','',...
+'value',double(-9e+40),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'ratio_tau_helium_fuel',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'resistance',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'tau_energy',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'tau_energy_98',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'tau_helium',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'tau_resistive',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'v_loop',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'volume',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([]))),...
+'heating_current_drive',struct(...
+'ec',{{struct(...
+'angle_pol',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'angle_tor',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'current',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'energy_fast',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'frequency',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'harmonic',struct(...
+'source','',...
+'value',int32([])),...
+'polarisation',struct(...
+'source','',...
+'value',int32([])),...
+'position',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power_launched',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])))
+}},...
+'ic',{{struct(...
+'current',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'e_field_plus_minus_ratio',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'energy_fast',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'frequency',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'harmonic',struct(...
+'source','',...
+'value',int32([])),...
+'k_perpendicular',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'n_tor',struct(...
+'source','',...
+'value',int32([])),...
+'phase',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'position',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power_launched',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])))
+}},...
+'lh',{{struct(...
+'current',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'energy_fast',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'frequency',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'n_parallel',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'position',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power_launched',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])))
+}},...
+'nbi',{{struct(...
+'angle',struct(...
+'source','',...
+'value',double(-9e+40),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'beam_current_fraction',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'beam_power_fraction',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'current',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'direction',struct(...
+'source','',...
+'value',int32(-999999999)),...
+'energy',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'position',struct(...
+'phi',struct(...
+'source','',...
+'value',double(-9e+40),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'r',struct(...
+'source','',...
+'value',double(-9e+40),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'z',struct(...
+'source','',...
+'value',double(-9e+40),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40))),...
+'power',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power_launched',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'species',struct(...
+'a',struct(...
+'source','',...
+'value',double(-9e+40),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
+'label',struct(...
+'source','',...
+'value',''),...
+'z_n',struct(...
+'source','',...
+'value',double(-9e+40),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40))),...
+'tangency_radius',struct(...
+'source','',...
+'value',double(-9e+40),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)))
+}},...
+'power_additional',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power_ec',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power_ic',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power_launched_ec',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power_launched_ic',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power_launched_lh',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power_loss',struct(...
+'power_launched_nbi',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power_launched_nbi_co_injected_ratio',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power_lh',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'power_nbi',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([]))),...
+'ids_properties',struct(...
+'comment','',...
+'creation_date','',...
+'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
+'provider','',...
+'source','',...
+'version_put',struct(...
+'access_layer','',...
+'access_layer_language','',...
+'data_dictionary','')),...
+'kicks',struct(...
+'occurrence',struct(...
+'source','',...
+'value',int32(-999999999))),...
+'limiter',struct(...
+'material',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name','')),...
+'line_average',struct(...
+'dn_e_dt',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'isotope_fraction_hydrogen',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'meff_hydrogenic',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'n_e',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'n_i',struct(...
+'argon',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'beryllium',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'carbon',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'deuterium',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'helium_3',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'helium_4',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'hydrogen',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'iron',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'krypton',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'lithium',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'neon',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'nitrogen',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'oxygen',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'tritium',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'tungsten',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'xenon',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([]))),...
+'n_i_total',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'t_e',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'t_i_average',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'zeff',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([]))),...
+'local',struct(...
+'divertor_plate',{{struct(...
+'flux_expansion',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'n_e',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'n_i',struct(...
+'argon',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'beryllium',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'carbon',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'deuterium',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power_ohm',struct(...
+'helium_3',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power_radiated',struct(...
+'helium_4',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power_radiated_inside_lcfs',struct(...
+'hydrogen',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power_radiated_outside_lcfs',struct(...
+'iron',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power_steady',struct(...
+'krypton',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power_synchrotron',struct(...
+'lithium',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'q_95',struct(...
+'neon',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'r0',struct(...
+'nitrogen',struct(...
 'source','',...
-'value',double(-9e+40),...
+'value',double([]),...
 'value_error_index',int32(-999999999),...
-'value_error_lower',double(-9e+40),...
-'value_error_upper',double(-9e+40)),...
-'ratio_tau_helium_fuel',struct(...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'oxygen',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'resistance',struct(...
+'tritium',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'tau_energy',struct(...
+'tungsten',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'tau_energy_98',struct(...
+'xenon',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'tau_helium',struct(...
+'value_error_upper',double([]))),...
+'n_i_total',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'tau_resistive',struct(...
+'name',struct(...
+'source','',...
+'value',''),...
+'power_flux_peak',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'v_loop',struct(...
+'t_e',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'volume',struct(...
+'t_i_average',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
-'value_error_upper',double([]))),...
-'heating_current_drive',struct(...
-'ec',{{struct(...
-'angle_pol',struct(...
+'value_error_upper',double([])),...
+'zeff',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'angle_tor',struct(...
+'value_error_upper',double([])))
+}},...
+'divertor_target',{{struct(...
+'flux_expansion',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'current',struct(...
+'n_e',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'energy_fast',struct(...
+'n_i',struct(...
+'argon',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'frequency',struct(...
+'beryllium',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'harmonic',struct(...
-'source','',...
-'value',int32([])),...
-'polarisation',struct(...
-'source','',...
-'value',int32([])),...
-'position',struct(...
+'carbon',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power',struct(...
+'deuterium',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power_launched',struct(...
+'helium_3',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
-'value_error_upper',double([])))
-;}},...
-'ic',{{struct(...
-'current',struct(...
+'value_error_upper',double([])),...
+'helium_4',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'e_field_plus_minus_ratio',struct(...
+'hydrogen',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'energy_fast',struct(...
+'iron',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'frequency',struct(...
+'krypton',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'harmonic',struct(...
-'source','',...
-'value',int32([])),...
-'k_perpendicular',struct(...
+'lithium',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'n_tor',struct(...
-'source','',...
-'value',int32([])),...
-'phase',struct(...
+'neon',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'position',struct(...
+'nitrogen',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power',struct(...
+'oxygen',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power_launched',struct(...
+'tritium',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
-'value_error_upper',double([])))
-;}},...
-'lh',{{struct(...
-'current',struct(...
+'value_error_upper',double([])),...
+'tungsten',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'energy_fast',struct(...
+'xenon',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'frequency',struct(...
+'value_error_upper',double([]))),...
+'n_i_total',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'n_parallel',struct(...
+'name',struct(...
+'source','',...
+'value',''),...
+'power_flux_peak',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'position',struct(...
+'t_e',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power',struct(...
+'t_i_average',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power_launched',struct(...
+'zeff',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])))
-;}},...
-'nbi',{{struct(...
-'angle',struct(...
-'source','',...
-'value',double(-9e+40),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double(-9e+40),...
-'value_error_upper',double(-9e+40)),...
-'beam_current_fraction',struct(...
+}},...
+'itb',struct(...
+'e_field_parallel',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'beam_power_fraction',struct(...
+'magnetic_shear',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'current',struct(...
+'momentum_tor',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'direction',struct(...
-'source','',...
-'value',int32(-999999999)),...
-'energy',struct(...
+'n_e',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'position',struct(...
-'phi',struct(...
-'source','',...
-'value',double(-9e+40),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double(-9e+40),...
-'value_error_upper',double(-9e+40)),...
-'r',struct(...
-'source','',...
-'value',double(-9e+40),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double(-9e+40),...
-'value_error_upper',double(-9e+40)),...
-'z',struct(...
+'n_i',struct(...
+'argon',struct(...
 'source','',...
-'value',double(-9e+40),...
+'value',double([]),...
 'value_error_index',int32(-999999999),...
-'value_error_lower',double(-9e+40),...
-'value_error_upper',double(-9e+40))),...
-'power',struct(...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'beryllium',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power_launched',struct(...
+'carbon',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'species',struct(...
-'a',struct(...
+'deuterium',struct(...
 'source','',...
-'value',double(-9e+40),...
+'value',double([]),...
 'value_error_index',int32(-999999999),...
-'value_error_lower',double(-9e+40),...
-'value_error_upper',double(-9e+40)),...
-'label',struct(...
-'source','',...
-'value',''),...
-'z_n',struct(...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'helium_3',struct(...
 'source','',...
-'value',double(-9e+40),...
+'value',double([]),...
 'value_error_index',int32(-999999999),...
-'value_error_lower',double(-9e+40),...
-'value_error_upper',double(-9e+40))),...
-'tangency_radius',struct(...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'helium_4',struct(...
 'source','',...
-'value',double(-9e+40),...
+'value',double([]),...
 'value_error_index',int32(-999999999),...
-'value_error_lower',double(-9e+40),...
-'value_error_upper',double(-9e+40)))
-;}},...
-'power_additional',struct(...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'hydrogen',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power_ec',struct(...
+'iron',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power_ic',struct(...
+'krypton',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power_launched_ec',struct(...
+'lithium',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power_launched_ic',struct(...
+'neon',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power_launched_lh',struct(...
+'nitrogen',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power_launched_nbi',struct(...
+'oxygen',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power_launched_nbi_co_injected_ratio',struct(...
+'tritium',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power_lh',struct(...
+'tungsten',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'power_nbi',struct(...
+'xenon',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([]))),...
-'ids_properties',struct(...
-'comment','',...
-'creation_date','',...
-'homogeneous_time',int32(-999999999),...
-'provider','',...
-'source','',...
-'version_put',struct(...
-'access_layer','',...
-'access_layer_language','',...
-'data_dictionary','')),...
-'kicks',struct(...
-'occurrence',struct(...
-'source','',...
-'value',int32(-999999999))),...
-'limiter',struct(...
-'material',struct(...
-'description','',...
-'index',int32(-999999999),...
-'name','')),...
-'line_average',struct(...
-'dn_e_dt',struct(...
+'n_i_total',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'isotope_fraction_hydrogen',struct(...
+'position',struct(...
+'psi',double([]),...
+'psi_error_index',int32(-999999999),...
+'psi_error_lower',double([]),...
+'psi_error_upper',double([]),...
+'rho_tor',double([]),...
+'rho_tor_error_index',int32(-999999999),...
+'rho_tor_error_lower',double([]),...
+'rho_tor_error_upper',double([]),...
+'rho_tor_norm',double([]),...
+'rho_tor_norm_error_index',int32(-999999999),...
+'rho_tor_norm_error_lower',double([]),...
+'rho_tor_norm_error_upper',double([])),...
+'q',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'meff_hydrogenic',struct(...
+'t_e',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'n_e',struct(...
+'t_i_average',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
-'n_i',struct(...
+'velocity_tor',struct(...
 'argon',struct(...
 'source','',...
 'value',double([]),...
@@ -1159,32 +2225,13 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([]))),...
-'n_i_total',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'t_e',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'t_i_average',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
 'zeff',struct(...
 'source','',...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([]))),...
-'local',struct(...
-'divertor_plate',{{struct(...
+'limiter',struct(...
 'flux_expansion',struct(...
 'source','',...
 'value',double([]),...
@@ -1303,6 +2350,12 @@ struct(...
 'name',struct(...
 'source','',...
 'value',''),...
+'power_flux_peak',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
 't_e',struct(...
 'source','',...
 'value',double([]),...
@@ -1320,9 +2373,14 @@ struct(...
 'value',double([]),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
-'value_error_upper',double([])))
-;}},...
-'itb',struct(...
+'value_error_upper',double([]))),...
+'magnetic_axis',struct(...
+'b_field',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
 'e_field_parallel',struct(...
 'source','',...
 'value',double([]),...
@@ -1455,6 +2513,10 @@ struct(...
 'psi_error_index',int32(-999999999),...
 'psi_error_lower',double([]),...
 'psi_error_upper',double([]),...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
 'rho_tor',double([]),...
 'rho_tor_error_index',int32(-999999999),...
 'rho_tor_error_lower',double([]),...
@@ -1462,7 +2524,11 @@ struct(...
 'rho_tor_norm',double([]),...
 'rho_tor_norm_error_index',int32(-999999999),...
 'rho_tor_norm_error_lower',double([]),...
-'rho_tor_norm_error_upper',double([])),...
+'rho_tor_norm_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([])),...
 'q',struct(...
 'source','',...
 'value',double([]),...
@@ -1584,150 +2650,7 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([]))),...
-'limiter',struct(...
-'flux_expansion',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'n_e',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'n_i',struct(...
-'argon',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'beryllium',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'carbon',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'deuterium',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'helium_3',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'helium_4',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'hydrogen',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'iron',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'krypton',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'lithium',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'neon',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'nitrogen',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'oxygen',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'tritium',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'tungsten',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'xenon',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([]))),...
-'n_i_total',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'name',struct(...
-'source','',...
-'value',''),...
-'t_e',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'t_i_average',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'zeff',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([]))),...
-'magnetic_axis',struct(...
-'b_field',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
+'pedestal',struct(...
 'e_field_parallel',struct(...
 'source','',...
 'value',double([]),...
@@ -1860,10 +2783,6 @@ struct(...
 'psi_error_index',int32(-999999999),...
 'psi_error_lower',double([]),...
 'psi_error_upper',double([]),...
-'r',double([]),...
-'r_error_index',int32(-999999999),...
-'r_error_lower',double([]),...
-'r_error_upper',double([]),...
 'rho_tor',double([]),...
 'rho_tor_error_index',int32(-999999999),...
 'rho_tor_error_lower',double([]),...
@@ -1871,11 +2790,7 @@ struct(...
 'rho_tor_norm',double([]),...
 'rho_tor_norm_error_index',int32(-999999999),...
 'rho_tor_norm_error_lower',double([]),...
-'rho_tor_norm_error_upper',double([]),...
-'z',double([]),...
-'z_error_index',int32(-999999999),...
-'z_error_lower',double([]),...
-'z_error_upper',double([])),...
+'rho_tor_norm_error_upper',double([])),...
 'q',struct(...
 'source','',...
 'value',double([]),...
@@ -1997,7 +2912,26 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([]))),...
-'pedestal',struct(...
+'r_eff_norm_2_3',struct(...
+'effective_helical_ripple',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'iota',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([])),...
+'plateau_factor',struct(...
+'source','',...
+'value',double([]),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double([]),...
+'value_error_upper',double([]))),...
+'separatrix',struct(...
 'e_field_parallel',struct(...
 'source','',...
 'value',double([]),...
@@ -2259,26 +3193,7 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([]))),...
-'r_eff_norm_2_3',struct(...
-'effective_helical_ripple',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'iota',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([])),...
-'plateau_factor',struct(...
-'source','',...
-'value',double([]),...
-'value_error_index',int32(-999999999),...
-'value_error_lower',double([]),...
-'value_error_upper',double([]))),...
-'separatrix',struct(...
+'separatrix_average',struct(...
 'e_field_parallel',struct(...
 'source','',...
 'value',double([]),...
@@ -2543,6 +3458,10 @@ struct(...
 'magnetic_shear_flag',struct(...
 'source','',...
 'value',int32(-999999999)),...
+'midplane',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
 'pedestal_fits',struct(...
 'linear',struct(...
 'b_field_pedestal_top_hfs',struct(...
@@ -3101,6 +4020,12 @@ struct(...
 'occurrence',struct(...
 'source','',...
 'value',int32(-999999999))),...
+'plasma_duration',struct(...
+'source','',...
+'value',double(-9e+40),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
 'rmps',struct(...
 'occurrence',struct(...
 'source','',...
@@ -3174,6 +4099,12 @@ struct(...
 'comment','',...
 'name',''),...
 'time',double([]),...
+'time_breakdown',struct(...
+'source','',...
+'value',double(-9e+40),...
+'value_error_index',int32(-999999999),...
+'value_error_lower',double(-9e+40),...
+'value_error_upper',double(-9e+40)),...
 'time_width',double([]),...
 'time_width_error_index',int32(-999999999),...
 'time_width_error_lower',double([]),...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_temporary.m b/matlab/TCV_IMAS/ids_empty/ids_empty_temporary.m
index 3a6b2e3aee8a3b159f696d7795181592a7532896..5d9835fdcf980152b9329c6104a0f04cad2df693 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_temporary.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_temporary.m
@@ -1,19 +1,23 @@
 function S = ids_empty_temporary
 % function S = ids_empty_temporary
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -28,7 +32,7 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double(-9e+40),...
 'value_error_upper',double(-9e+40))
-;}},...
+}},...
 'constant_float1d',{{struct(...
 'identifier',struct(...
 'description','',...
@@ -38,7 +42,7 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([]))
-;}},...
+}},...
 'constant_float2d',{{struct(...
 'identifier',struct(...
 'description','',...
@@ -48,7 +52,7 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([]))
-;}},...
+}},...
 'constant_float3d',{{struct(...
 'identifier',struct(...
 'description','',...
@@ -58,7 +62,7 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([]))
-;}},...
+}},...
 'constant_float4d',{{struct(...
 'identifier',struct(...
 'description','',...
@@ -68,7 +72,7 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([]))
-;}},...
+}},...
 'constant_float5d',{{struct(...
 'identifier',struct(...
 'description','',...
@@ -78,7 +82,7 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([]))
-;}},...
+}},...
 'constant_float6d',{{struct(...
 'identifier',struct(...
 'description','',...
@@ -88,49 +92,49 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([]))
-;}},...
+}},...
 'constant_integer0d',{{struct(...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
 'value',int32(-999999999))
-;}},...
+}},...
 'constant_integer1d',{{struct(...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
 'value',int32([]))
-;}},...
+}},...
 'constant_integer2d',{{struct(...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
 'value',int32([]))
-;}},...
+}},...
 'constant_integer3d',{{struct(...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
 'value',int32([]))
-;}},...
+}},...
 'constant_string0d',{{struct(...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
 'value','')
-;}},...
+}},...
 'constant_string1d',{{struct(...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
 'value',{{}})
-;}},...
+}},...
 'dynamic_float1d',{{struct(...
 'identifier',struct(...
 'description','',...
@@ -142,7 +146,7 @@ struct(...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])))
-;}},...
+}},...
 'dynamic_float2d',{{struct(...
 'identifier',struct(...
 'description','',...
@@ -154,7 +158,7 @@ struct(...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])))
-;}},...
+}},...
 'dynamic_float3d',{{struct(...
 'identifier',struct(...
 'description','',...
@@ -166,7 +170,7 @@ struct(...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])))
-;}},...
+}},...
 'dynamic_float4d',{{struct(...
 'identifier',struct(...
 'description','',...
@@ -178,7 +182,7 @@ struct(...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])))
-;}},...
+}},...
 'dynamic_float5d',{{struct(...
 'identifier',struct(...
 'description','',...
@@ -190,7 +194,7 @@ struct(...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])))
-;}},...
+}},...
 'dynamic_float6d',{{struct(...
 'identifier',struct(...
 'description','',...
@@ -202,7 +206,7 @@ struct(...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])))
-;}},...
+}},...
 'dynamic_integer1d',{{struct(...
 'identifier',struct(...
 'description','',...
@@ -211,7 +215,7 @@ struct(...
 'value',struct(...
 'data',int32([]),...
 'time',double([])))
-;}},...
+}},...
 'dynamic_integer2d',{{struct(...
 'identifier',struct(...
 'description','',...
@@ -220,7 +224,7 @@ struct(...
 'value',struct(...
 'data',int32([]),...
 'time',double([])))
-;}},...
+}},...
 'dynamic_integer3d',{{struct(...
 'identifier',struct(...
 'description','',...
@@ -229,11 +233,56 @@ struct(...
 'value',struct(...
 'data',int32([]),...
 'time',double([])))
-;}},...
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_tf.m b/matlab/TCV_IMAS/ids_empty/ids_empty_tf.m
index a56d8d6bfd70afaf0944734e2942e478ad54b32a..6e48f8b5cfd4a5155684a9102002ceb9ff336e87 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_tf.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_tf.m
@@ -1,9 +1,11 @@
 function S = ids_empty_tf
 % function S = ids_empty_tf
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'b_field_tor_vacuum_r',struct(...
 'data',double([]),...
@@ -11,6 +13,22 @@ struct(...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])),...
+'code',struct(...
+'commit','',...
+'description','',...
+'library',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'name','',...
+'output_flag',int32([]),...
+'parameters','',...
+'repository','',...
+'version',''),...
 'coil',{{struct(...
 'conductor',{{struct(...
 'cross_section',struct(...
@@ -97,7 +115,7 @@ struct(...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])))
-;}},...
+}},...
 'current',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
@@ -120,7 +138,7 @@ struct(...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])))
-;}},...
+}},...
 'coils_n',int32(-999999999),...
 'delta_b_field_tor_vacuum_r',struct(...
 'data',double([]),...
@@ -140,7 +158,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'a_field_tor',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -152,7 +170,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'a_field_z',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -164,7 +182,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'b_field_r',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -176,7 +194,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'b_field_tor',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -188,7 +206,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'b_field_z',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -200,7 +218,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'grid',struct(...
 'grid_subset',{{struct(...
 'base',{{struct(...
@@ -216,15 +234,15 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([]))
-;}},...
+}},...
 'dimension',int32(-999999999),...
 'element',{{struct(...
 'object',{{struct(...
 'dimension',int32(-999999999),...
 'index',int32(-999999999),...
 'space',int32(-999999999))
-;}})
-;}},...
+}})
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -242,11 +260,12 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([])))
-;}},...
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
+'path','',...
 'space',{{struct(...
 'coordinates_type',int32([]),...
 'geometry_type',struct(...
@@ -258,12 +277,20 @@ struct(...
 'index',int32(-999999999),...
 'name',''),...
 'objects_per_dimension',{{struct(...
+'geometry_content',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
 'object',{{struct(...
 'boundary',{{struct(...
 'index',int32(-999999999),...
 'neighbours',int32([]))
-;}},...
+}},...
 'geometry',double([]),...
+'geometry_2d',double([]),...
+'geometry_2d_error_index',int32(-999999999),...
+'geometry_2d_error_lower',double([]),...
+'geometry_2d_error_upper',double([]),...
 'geometry_error_index',int32(-999999999),...
 'geometry_error_lower',double([]),...
 'geometry_error_upper',double([]),...
@@ -272,15 +299,60 @@ struct(...
 'measure_error_lower',double(-9e+40),...
 'measure_error_upper',double(-9e+40),...
 'nodes',int32([]))
-;}})
-;}})
-;}}),...
+}})
+}})
+}}),...
 'time',double(-9e+40))
-;}},...
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
@@ -288,6 +360,10 @@ struct(...
 'access_layer_language','',...
 'data_dictionary','')),...
 'is_periodic',int32(-999999999),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
 'r0',double(-9e+40),...
 'r0_error_index',int32(-999999999),...
 'r0_error_lower',double(-9e+40),...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_thomson_scattering.m b/matlab/TCV_IMAS/ids_empty/ids_empty_thomson_scattering.m
index c8548720f92a76e876be2ef01fe78532e041f34c..93f795aba5f0ffb4e51f5295a1c6f2c3627f9de0 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_thomson_scattering.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_thomson_scattering.m
@@ -1,9 +1,11 @@
 function S = ids_empty_thomson_scattering
 % function S = ids_empty_thomson_scattering
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'channel',{{struct(...
 'delta_position',struct(...
@@ -20,6 +22,12 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double([]),...
 'z_error_upper',double([])),...
+'distance_separatrix_midplane',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
 'identifier','',...
 'n_e',struct(...
 'data',double([]),...
@@ -47,29 +55,93 @@ struct(...
 'data_error_lower',double([]),...
 'data_error_upper',double([]),...
 'time',double([])))
-;}},...
+}},...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
 'repository','',...
 'version',''),...
+'equilibrium_id',struct(...
+'data_entry',struct(...
+'machine','',...
+'pulse',int32(-999999999),...
+'pulse_type','',...
+'run',int32(-999999999),...
+'user',''),...
+'name','',...
+'occurrence',int32(-999999999)),...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'latency',double(-9e+40),...
+'latency_error_index',int32(-999999999),...
+'latency_error_lower',double(-9e+40),...
+'latency_error_upper',double(-9e+40),...
+'midplane',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_transport_solver_numerics.m b/matlab/TCV_IMAS/ids_empty/ids_empty_transport_solver_numerics.m
index dce85bdbe857e276215d9009839a8ca8701e0e62..9f9e07a5f64f9bfe2019fce6d31daed043ac93d9 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_transport_solver_numerics.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_transport_solver_numerics.m
@@ -1,9 +1,11 @@
 function S = ids_empty_transport_solver_numerics
 % function S = ids_empty_transport_solver_numerics
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'boundary_conditions_1d',{{struct(...
 'current',struct(...
@@ -139,7 +141,7 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'z_ion',double(-9e+40),...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
@@ -148,7 +150,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'momentum_tor',struct(...
 'identifier',struct(...
 'description','',...
@@ -163,7 +165,7 @@ struct(...
 'value_error_lower',double([]),...
 'value_error_upper',double([])),...
 'time',double(-9e+40))
-;}},...
+}},...
 'boundary_conditions_ggd',{{struct(...
 'current',{{struct(...
 'grid_index',int32(-999999999),...
@@ -176,7 +178,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'electrons',struct(...
 'energy',{{struct(...
 'grid_index',int32(-999999999),...
@@ -189,7 +191,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'particles',{{struct(...
 'grid_index',int32(-999999999),...
 'grid_subset_index',int32(-999999999),...
@@ -201,7 +203,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}}),...
+}}),...
 'grid',struct(...
 'grid_subset',{{struct(...
 'base',{{struct(...
@@ -217,15 +219,15 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([]))
-;}},...
+}},...
 'dimension',int32(-999999999),...
 'element',{{struct(...
 'object',{{struct(...
 'dimension',int32(-999999999),...
 'index',int32(-999999999),...
 'space',int32(-999999999))
-;}})
-;}},...
+}})
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -243,11 +245,12 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([])))
-;}},...
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
+'path','',...
 'space',{{struct(...
 'coordinates_type',int32([]),...
 'geometry_type',struct(...
@@ -259,12 +262,20 @@ struct(...
 'index',int32(-999999999),...
 'name',''),...
 'objects_per_dimension',{{struct(...
+'geometry_content',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
 'object',{{struct(...
 'boundary',{{struct(...
 'index',int32(-999999999),...
 'neighbours',int32([]))
-;}},...
+}},...
 'geometry',double([]),...
+'geometry_2d',double([]),...
+'geometry_2d_error_index',int32(-999999999),...
+'geometry_2d_error_lower',double([]),...
+'geometry_2d_error_upper',double([]),...
 'geometry_error_index',int32(-999999999),...
 'geometry_error_lower',double([]),...
 'geometry_error_upper',double([]),...
@@ -273,9 +284,9 @@ struct(...
 'measure_error_lower',double(-9e+40),...
 'measure_error_upper',double(-9e+40),...
 'nodes',int32([]))
-;}})
-;}})
-;}}),...
+}})
+}})
+}}),...
 'ion',{{struct(...
 'a',double(-9e+40),...
 'a_error_index',int32(-999999999),...
@@ -292,7 +303,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
 'particles',{{struct(...
@@ -306,7 +317,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'state',{{struct(...
 'electron_configuration','',...
 'energy',{{struct(...
@@ -320,7 +331,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'is_neutral',int32(-999999999),...
 'label','',...
 'neutral_type',struct(...
@@ -338,7 +349,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'vibrational_level',double(-9e+40),...
 'vibrational_level_error_index',int32(-999999999),...
 'vibrational_level_error_lower',double(-9e+40),...
@@ -352,7 +363,7 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'z_ion',double(-9e+40),...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
@@ -361,18 +372,20 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'time',double(-9e+40))
-;}},...
+}},...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -473,7 +486,7 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'z_ion',double(-9e+40),...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
@@ -482,9 +495,9 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'time',double(-9e+40))
-;}},...
+}},...
 'time_step',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
@@ -910,7 +923,7 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'z_ion',double(-9e+40),...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
@@ -919,13 +932,58 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'time',double(-9e+40))
-;}},...
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
@@ -940,7 +998,7 @@ struct(...
 'descriptions',{{}},...
 'names',{{}},...
 'time',double(-9e+40))
-;}},...
+}},...
 'solver',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -949,13 +1007,13 @@ struct(...
 'control_parameters',struct(...
 'integer0d',{{struct(...
 'value',int32(-999999999))
-;}},...
+}},...
 'real0d',{{struct(...
 'value',double(-9e+40),...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double(-9e+40),...
 'value_error_upper',double(-9e+40))
-;}}),...
+}}),...
 'd_dvolume_drho_tor_dt',double([]),...
 'd_dvolume_drho_tor_dt_error_index',int32(-999999999),...
 'd_dvolume_drho_tor_dt_error_lower',double([]),...
@@ -978,13 +1036,13 @@ struct(...
 'value_error_index',int32(-999999999),...
 'value_error_lower',double([]),...
 'value_error_upper',double([]))
-;}},...
+}},...
 'coefficient',{{struct(...
 'profile',double([]),...
 'profile_error_index',int32(-999999999),...
 'profile_error_lower',double([]),...
 'profile_error_upper',double([]))
-;}},...
+}},...
 'computation_mode',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -1029,7 +1087,7 @@ struct(...
 'profile_error_lower',double([]),...
 'profile_error_upper',double([]),...
 'state_index',int32(-999999999)))
-;}},...
+}},...
 'grid',struct(...
 'area',double([]),...
 'area_error_index',int32(-999999999),...
@@ -1068,7 +1126,7 @@ struct(...
 'volume_error_lower',double([]),...
 'volume_error_upper',double([])),...
 'time',double(-9e+40))
-;}},...
+}},...
 'time',double([]),...
 'time_step',struct(...
 'data',double([]),...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_turbulence.m b/matlab/TCV_IMAS/ids_empty/ids_empty_turbulence.m
index 2a35e9351af752588401c3d3798ce6445a7138a8..70dfb428eed70511128ae117981c8f8b2846e90e 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_turbulence.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_turbulence.m
@@ -1,19 +1,23 @@
 function S = ids_empty_turbulence
 % function S = ids_empty_turbulence
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -29,7 +33,7 @@ struct(...
 'dim2_error_lower',double([]),...
 'dim2_error_upper',double([]),...
 'time',double(-9e+40))
-;}},...
+}},...
 'grid_2d_type',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -38,6 +42,51 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
@@ -81,7 +130,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'neutral_index',int32(-999999999),...
 'temperature',double([]),...
@@ -92,7 +141,7 @@ struct(...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}},...
+}},...
 'neutral',{{struct(...
 'density',double([]),...
 'density_error_index',int32(-999999999),...
@@ -116,14 +165,14 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'ion_index',int32(-999999999),...
 'label','',...
 'temperature',double([]),...
 'temperature_error_index',int32(-999999999),...
 'temperature_error_lower',double([]),...
 'temperature_error_upper',double([]))
-;}},...
+}},...
 'time',double(-9e+40))
-;}},...
+}},...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_wall.m b/matlab/TCV_IMAS/ids_empty/ids_empty_wall.m
index 8970d8f87d69e5aaa4b4db659d90a4c729d94bc1..37950537e7505159f7b986afac975cd1d9a4cf06 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_wall.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_wall.m
@@ -1,19 +1,23 @@
 function S = ids_empty_wall
 % function S = ids_empty_wall
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -45,7 +49,7 @@ struct(...
 'resistivity_error_index',int32(-999999999),...
 'resistivity_error_lower',double(-9e+40),...
 'resistivity_error_upper',double(-9e+40))
-;}}),...
+}}),...
 'mobile',struct(...
 'type',struct(...
 'description','',...
@@ -64,7 +68,7 @@ struct(...
 'z_error_index',int32(-999999999),...
 'z_error_lower',double([]),...
 'z_error_upper',double([]))
-;}},...
+}},...
 'phi_extensions',double([]),...
 'phi_extensions_error_index',int32(-999999999),...
 'phi_extensions_error_lower',double([]),...
@@ -73,90 +77,839 @@ struct(...
 'resistivity_error_index',int32(-999999999),...
 'resistivity_error_lower',double(-9e+40),...
 'resistivity_error_upper',double(-9e+40))
-;}}),...
+}}),...
+'type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'vessel',struct(...
 'type',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
-'vessel',struct(...
-'type',struct(...
+'unit',{{struct(...
+'annular',struct(...
+'centreline',struct(...
+'closed',int32(-999999999),...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([])),...
+'outline_inner',struct(...
+'closed',int32(-999999999),...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([])),...
+'outline_outer',struct(...
+'closed',int32(-999999999),...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([])),...
+'resistivity',double(-9e+40),...
+'resistivity_error_index',int32(-999999999),...
+'resistivity_error_lower',double(-9e+40),...
+'resistivity_error_upper',double(-9e+40),...
+'thickness',double([]),...
+'thickness_error_index',int32(-999999999),...
+'thickness_error_lower',double([]),...
+'thickness_error_upper',double([])),...
+'element',{{struct(...
+'j_tor',struct(...
+'data',double([]),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double([]),...
+'data_error_upper',double([]),...
+'time',double([])),...
+'name','',...
+'outline',struct(...
+'closed',int32(-999999999),...
+'r',double([]),...
+'r_error_index',int32(-999999999),...
+'r_error_lower',double([]),...
+'r_error_upper',double([]),...
+'z',double([]),...
+'z_error_index',int32(-999999999),...
+'z_error_lower',double([]),...
+'z_error_upper',double([])),...
+'resistance',double(-9e+40),...
+'resistance_error_index',int32(-999999999),...
+'resistance_error_lower',double(-9e+40),...
+'resistance_error_upper',double(-9e+40),...
+'resistivity',double(-9e+40),...
+'resistivity_error_index',int32(-999999999),...
+'resistivity_error_lower',double(-9e+40),...
+'resistivity_error_upper',double(-9e+40))
+}},...
+'identifier','',...
+'name','')
+}}))
+}},...
+'description_ggd',{{struct(...
+'ggd',{{struct(...
+'energy_fluxes',struct(...
+'current',struct(...
+'emitted',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'incident',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}}),...
+'kinetic',struct(...
+'electrons',struct(...
+'emitted',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'incident',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}}),...
+'ion',{{struct(...
+'element',{{struct(...
+'a',double(-9e+40),...
+'a_error_index',int32(-999999999),...
+'a_error_lower',double(-9e+40),...
+'a_error_upper',double(-9e+40),...
+'atoms_n',int32(-999999999),...
+'multiplicity',double(-9e+40),...
+'multiplicity_error_index',int32(-999999999),...
+'multiplicity_error_lower',double(-9e+40),...
+'multiplicity_error_upper',double(-9e+40),...
+'z_n',double(-9e+40),...
+'z_n_error_index',int32(-999999999),...
+'z_n_error_lower',double(-9e+40),...
+'z_n_error_upper',double(-9e+40))
+}},...
+'emitted',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'incident',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'label','',...
+'multiple_states_flag',int32(-999999999),...
+'neutral_index',int32(-999999999),...
+'state',{{struct(...
+'electron_configuration','',...
+'emitted',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'incident',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'label','',...
+'vibrational_level',double(-9e+40),...
+'vibrational_level_error_index',int32(-999999999),...
+'vibrational_level_error_lower',double(-9e+40),...
+'vibrational_level_error_upper',double(-9e+40),...
+'vibrational_mode','',...
+'z_max',double(-9e+40),...
+'z_max_error_index',int32(-999999999),...
+'z_max_error_lower',double(-9e+40),...
+'z_max_error_upper',double(-9e+40),...
+'z_min',double(-9e+40),...
+'z_min_error_index',int32(-999999999),...
+'z_min_error_lower',double(-9e+40),...
+'z_min_error_upper',double(-9e+40))
+}},...
+'z_ion',double(-9e+40),...
+'z_ion_error_index',int32(-999999999),...
+'z_ion_error_lower',double(-9e+40),...
+'z_ion_error_upper',double(-9e+40))
+}},...
+'neutral',{{struct(...
+'element',{{struct(...
+'a',double(-9e+40),...
+'a_error_index',int32(-999999999),...
+'a_error_lower',double(-9e+40),...
+'a_error_upper',double(-9e+40),...
+'atoms_n',int32(-999999999),...
+'multiplicity',double(-9e+40),...
+'multiplicity_error_index',int32(-999999999),...
+'multiplicity_error_lower',double(-9e+40),...
+'multiplicity_error_upper',double(-9e+40),...
+'z_n',double(-9e+40),...
+'z_n_error_index',int32(-999999999),...
+'z_n_error_lower',double(-9e+40),...
+'z_n_error_upper',double(-9e+40))
+}},...
+'emitted',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'incident',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'ion_index',int32(-999999999),...
+'label','',...
+'multiple_states_flag',int32(-999999999),...
+'state',{{struct(...
+'electron_configuration','',...
+'emitted',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'incident',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'label','',...
+'neutral_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'vibrational_level',double(-9e+40),...
+'vibrational_level_error_index',int32(-999999999),...
+'vibrational_level_error_lower',double(-9e+40),...
+'vibrational_level_error_upper',double(-9e+40),...
+'vibrational_mode','')
+}})
+}}),...
+'radiation',struct(...
+'emitted',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'incident',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}}),...
+'recombination',struct(...
+'ion',{{struct(...
+'element',{{struct(...
+'a',double(-9e+40),...
+'a_error_index',int32(-999999999),...
+'a_error_lower',double(-9e+40),...
+'a_error_upper',double(-9e+40),...
+'atoms_n',int32(-999999999),...
+'multiplicity',double(-9e+40),...
+'multiplicity_error_index',int32(-999999999),...
+'multiplicity_error_lower',double(-9e+40),...
+'multiplicity_error_upper',double(-9e+40),...
+'z_n',double(-9e+40),...
+'z_n_error_index',int32(-999999999),...
+'z_n_error_lower',double(-9e+40),...
+'z_n_error_upper',double(-9e+40))
+}},...
+'emitted',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'incident',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'label','',...
+'multiple_states_flag',int32(-999999999),...
+'neutral_index',int32(-999999999),...
+'state',{{struct(...
+'electron_configuration','',...
+'emitted',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'incident',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'label','',...
+'vibrational_level',double(-9e+40),...
+'vibrational_level_error_index',int32(-999999999),...
+'vibrational_level_error_lower',double(-9e+40),...
+'vibrational_level_error_upper',double(-9e+40),...
+'vibrational_mode','',...
+'z_max',double(-9e+40),...
+'z_max_error_index',int32(-999999999),...
+'z_max_error_lower',double(-9e+40),...
+'z_max_error_upper',double(-9e+40),...
+'z_min',double(-9e+40),...
+'z_min_error_index',int32(-999999999),...
+'z_min_error_lower',double(-9e+40),...
+'z_min_error_upper',double(-9e+40))
+}},...
+'z_ion',double(-9e+40),...
+'z_ion_error_index',int32(-999999999),...
+'z_ion_error_lower',double(-9e+40),...
+'z_ion_error_upper',double(-9e+40))
+}},...
+'neutral',{{struct(...
+'element',{{struct(...
+'a',double(-9e+40),...
+'a_error_index',int32(-999999999),...
+'a_error_lower',double(-9e+40),...
+'a_error_upper',double(-9e+40),...
+'atoms_n',int32(-999999999),...
+'multiplicity',double(-9e+40),...
+'multiplicity_error_index',int32(-999999999),...
+'multiplicity_error_lower',double(-9e+40),...
+'multiplicity_error_upper',double(-9e+40),...
+'z_n',double(-9e+40),...
+'z_n_error_index',int32(-999999999),...
+'z_n_error_lower',double(-9e+40),...
+'z_n_error_upper',double(-9e+40))
+}},...
+'emitted',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'incident',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'ion_index',int32(-999999999),...
+'label','',...
+'multiple_states_flag',int32(-999999999),...
+'state',{{struct(...
+'electron_configuration','',...
+'emitted',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'incident',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'label','',...
+'neutral_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'vibrational_level',double(-9e+40),...
+'vibrational_level_error_index',int32(-999999999),...
+'vibrational_level_error_lower',double(-9e+40),...
+'vibrational_level_error_upper',double(-9e+40),...
+'vibrational_mode','')
+}})
+}})),...
+'particle_fluxes',struct(...
+'electrons',struct(...
+'emitted',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'incident',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}}),...
+'ion',{{struct(...
+'element',{{struct(...
+'a',double(-9e+40),...
+'a_error_index',int32(-999999999),...
+'a_error_lower',double(-9e+40),...
+'a_error_upper',double(-9e+40),...
+'atoms_n',int32(-999999999),...
+'multiplicity',double(-9e+40),...
+'multiplicity_error_index',int32(-999999999),...
+'multiplicity_error_lower',double(-9e+40),...
+'multiplicity_error_upper',double(-9e+40),...
+'z_n',double(-9e+40),...
+'z_n_error_index',int32(-999999999),...
+'z_n_error_lower',double(-9e+40),...
+'z_n_error_upper',double(-9e+40))
+}},...
+'emitted',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'incident',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'label','',...
+'multiple_states_flag',int32(-999999999),...
+'neutral_index',int32(-999999999),...
+'state',{{struct(...
+'electron_configuration','',...
+'emitted',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'incident',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'label','',...
+'vibrational_level',double(-9e+40),...
+'vibrational_level_error_index',int32(-999999999),...
+'vibrational_level_error_lower',double(-9e+40),...
+'vibrational_level_error_upper',double(-9e+40),...
+'vibrational_mode','',...
+'z_max',double(-9e+40),...
+'z_max_error_index',int32(-999999999),...
+'z_max_error_lower',double(-9e+40),...
+'z_max_error_upper',double(-9e+40),...
+'z_min',double(-9e+40),...
+'z_min_error_index',int32(-999999999),...
+'z_min_error_lower',double(-9e+40),...
+'z_min_error_upper',double(-9e+40))
+}},...
+'z_ion',double(-9e+40),...
+'z_ion_error_index',int32(-999999999),...
+'z_ion_error_lower',double(-9e+40),...
+'z_ion_error_upper',double(-9e+40))
+}},...
+'neutral',{{struct(...
+'element',{{struct(...
+'a',double(-9e+40),...
+'a_error_index',int32(-999999999),...
+'a_error_lower',double(-9e+40),...
+'a_error_upper',double(-9e+40),...
+'atoms_n',int32(-999999999),...
+'multiplicity',double(-9e+40),...
+'multiplicity_error_index',int32(-999999999),...
+'multiplicity_error_lower',double(-9e+40),...
+'multiplicity_error_upper',double(-9e+40),...
+'z_n',double(-9e+40),...
+'z_n_error_index',int32(-999999999),...
+'z_n_error_lower',double(-9e+40),...
+'z_n_error_upper',double(-9e+40))
+}},...
+'emitted',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'incident',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'ion_index',int32(-999999999),...
+'label','',...
+'multiple_states_flag',int32(-999999999),...
+'state',{{struct(...
+'electron_configuration','',...
+'emitted',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'incident',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'label','',...
+'neutral_type',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
+'vibrational_level',double(-9e+40),...
+'vibrational_level_error_index',int32(-999999999),...
+'vibrational_level_error_lower',double(-9e+40),...
+'vibrational_level_error_upper',double(-9e+40),...
+'vibrational_mode','')
+}})
+}}),...
+'power_density',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'recycling',struct(...
+'ion',{{struct(...
+'coefficient',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'element',{{struct(...
+'a',double(-9e+40),...
+'a_error_index',int32(-999999999),...
+'a_error_lower',double(-9e+40),...
+'a_error_upper',double(-9e+40),...
+'atoms_n',int32(-999999999),...
+'multiplicity',double(-9e+40),...
+'multiplicity_error_index',int32(-999999999),...
+'multiplicity_error_lower',double(-9e+40),...
+'multiplicity_error_upper',double(-9e+40),...
+'z_n',double(-9e+40),...
+'z_n_error_index',int32(-999999999),...
+'z_n_error_lower',double(-9e+40),...
+'z_n_error_upper',double(-9e+40))
+}},...
+'label','',...
+'multiple_states_flag',int32(-999999999),...
+'neutral_index',int32(-999999999),...
+'state',{{struct(...
+'coefficient',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'electron_configuration','',...
+'label','',...
+'vibrational_level',double(-9e+40),...
+'vibrational_level_error_index',int32(-999999999),...
+'vibrational_level_error_lower',double(-9e+40),...
+'vibrational_level_error_upper',double(-9e+40),...
+'vibrational_mode','',...
+'z_max',double(-9e+40),...
+'z_max_error_index',int32(-999999999),...
+'z_max_error_lower',double(-9e+40),...
+'z_max_error_upper',double(-9e+40),...
+'z_min',double(-9e+40),...
+'z_min_error_index',int32(-999999999),...
+'z_min_error_lower',double(-9e+40),...
+'z_min_error_upper',double(-9e+40))
+}},...
+'z_ion',double(-9e+40),...
+'z_ion_error_index',int32(-999999999),...
+'z_ion_error_lower',double(-9e+40),...
+'z_ion_error_upper',double(-9e+40))
+}},...
+'neutral',{{struct(...
+'coefficient',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'element',{{struct(...
+'a',double(-9e+40),...
+'a_error_index',int32(-999999999),...
+'a_error_lower',double(-9e+40),...
+'a_error_upper',double(-9e+40),...
+'atoms_n',int32(-999999999),...
+'multiplicity',double(-9e+40),...
+'multiplicity_error_index',int32(-999999999),...
+'multiplicity_error_lower',double(-9e+40),...
+'multiplicity_error_upper',double(-9e+40),...
+'z_n',double(-9e+40),...
+'z_n_error_index',int32(-999999999),...
+'z_n_error_lower',double(-9e+40),...
+'z_n_error_upper',double(-9e+40))
+}},...
+'ion_index',int32(-999999999),...
+'label','',...
+'multiple_states_flag',int32(-999999999),...
+'state',{{struct(...
+'coefficient',{{struct(...
+'coefficients',double([]),...
+'coefficients_error_index',int32(-999999999),...
+'coefficients_error_lower',double([]),...
+'coefficients_error_upper',double([]),...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'values',double([]),...
+'values_error_index',int32(-999999999),...
+'values_error_lower',double([]),...
+'values_error_upper',double([]))
+}},...
+'electron_configuration','',...
+'label','',...
+'neutral_type',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
-'unit',{{struct(...
-'annular',struct(...
-'centreline',struct(...
-'closed',int32(-999999999),...
-'r',double([]),...
-'r_error_index',int32(-999999999),...
-'r_error_lower',double([]),...
-'r_error_upper',double([]),...
-'z',double([]),...
-'z_error_index',int32(-999999999),...
-'z_error_lower',double([]),...
-'z_error_upper',double([])),...
-'outline_inner',struct(...
-'closed',int32(-999999999),...
-'r',double([]),...
-'r_error_index',int32(-999999999),...
-'r_error_lower',double([]),...
-'r_error_upper',double([]),...
-'z',double([]),...
-'z_error_index',int32(-999999999),...
-'z_error_lower',double([]),...
-'z_error_upper',double([])),...
-'outline_outer',struct(...
-'closed',int32(-999999999),...
-'r',double([]),...
-'r_error_index',int32(-999999999),...
-'r_error_lower',double([]),...
-'r_error_upper',double([]),...
-'z',double([]),...
-'z_error_index',int32(-999999999),...
-'z_error_lower',double([]),...
-'z_error_upper',double([])),...
-'resistivity',double(-9e+40),...
-'resistivity_error_index',int32(-999999999),...
-'resistivity_error_lower',double(-9e+40),...
-'resistivity_error_upper',double(-9e+40),...
-'thickness',double([]),...
-'thickness_error_index',int32(-999999999),...
-'thickness_error_lower',double([]),...
-'thickness_error_upper',double([])),...
-'element',{{struct(...
-'j_tor',struct(...
-'data',double([]),...
-'data_error_index',int32(-999999999),...
-'data_error_lower',double([]),...
-'data_error_upper',double([]),...
-'time',double([])),...
-'name','',...
-'outline',struct(...
-'closed',int32(-999999999),...
-'r',double([]),...
-'r_error_index',int32(-999999999),...
-'r_error_lower',double([]),...
-'r_error_upper',double([]),...
-'z',double([]),...
-'z_error_index',int32(-999999999),...
-'z_error_lower',double([]),...
-'z_error_upper',double([])),...
-'resistance',double(-9e+40),...
-'resistance_error_index',int32(-999999999),...
-'resistance_error_lower',double(-9e+40),...
-'resistance_error_upper',double(-9e+40),...
-'resistivity',double(-9e+40),...
-'resistivity_error_index',int32(-999999999),...
-'resistivity_error_lower',double(-9e+40),...
-'resistivity_error_upper',double(-9e+40))
-;}},...
-'identifier','',...
-'name','')
-;}}))
-;}},...
-'description_ggd',{{struct(...
-'ggd',{{struct(...
-'power_density',{{struct(...
+'vibrational_level',double(-9e+40),...
+'vibrational_level_error_index',int32(-999999999),...
+'vibrational_level_error_lower',double(-9e+40),...
+'vibrational_level_error_upper',double(-9e+40),...
+'vibrational_mode','')
+}})
+}}),...
+'temperature',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
 'coefficients_error_lower',double([]),...
@@ -167,8 +920,9 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
-'temperature',{{struct(...
+}},...
+'time',double(-9e+40),...
+'v_biasing',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
 'coefficients_error_lower',double([]),...
@@ -179,9 +933,8 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
-'time',double(-9e+40))
-;}},...
+}})
+}},...
 'grid_ggd',{{struct(...
 'grid_subset',{{struct(...
 'base',{{struct(...
@@ -197,15 +950,15 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([]))
-;}},...
+}},...
 'dimension',int32(-999999999),...
 'element',{{struct(...
 'object',{{struct(...
 'dimension',int32(-999999999),...
 'index',int32(-999999999),...
 'space',int32(-999999999))
-;}})
-;}},...
+}})
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -223,11 +976,12 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([])))
-;}},...
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
+'path','',...
 'space',{{struct(...
 'coordinates_type',int32([]),...
 'geometry_type',struct(...
@@ -239,12 +993,20 @@ struct(...
 'index',int32(-999999999),...
 'name',''),...
 'objects_per_dimension',{{struct(...
+'geometry_content',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
 'object',{{struct(...
 'boundary',{{struct(...
 'index',int32(-999999999),...
 'neighbours',int32([]))
-;}},...
+}},...
 'geometry',double([]),...
+'geometry_2d',double([]),...
+'geometry_2d_error_index',int32(-999999999),...
+'geometry_2d_error_lower',double([]),...
+'geometry_2d_error_upper',double([]),...
 'geometry_error_index',int32(-999999999),...
 'geometry_error_lower',double([]),...
 'geometry_error_upper',double([]),...
@@ -253,16 +1015,31 @@ struct(...
 'measure_error_lower',double(-9e+40),...
 'measure_error_upper',double(-9e+40),...
 'nodes',int32([]))
-;}})
-;}})
-;}},...
+}})
+}})
+}},...
+'time',double(-9e+40))
+}},...
+'material',{{struct(...
+'grid_subset',{{struct(...
+'grid_index',int32(-999999999),...
+'grid_subset_index',int32(-999999999),...
+'identifiers',struct(...
+'descriptions',{{}},...
+'indices',int32([]),...
+'names',{{}}))
+}},...
 'time',double(-9e+40))
-;}},...
+}},...
 'type',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''))
-;}},...
+}},...
+'first_wall_enclosed_volume',double(-9e+40),...
+'first_wall_enclosed_volume_error_index',int32(-999999999),...
+'first_wall_enclosed_volume_error_lower',double(-9e+40),...
+'first_wall_enclosed_volume_error_upper',double(-9e+40),...
 'first_wall_power_flux_peak',struct(...
 'data',double([]),...
 'data_error_index',int32(-999999999),...
@@ -318,11 +1095,41 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'gas_puff',double([]),...
 'gas_puff_error_index',int32(-999999999),...
 'gas_puff_error_lower',double([]),...
 'gas_puff_error_upper',double([]),...
+'incident_species',{{struct(...
+'element',{{struct(...
+'a',double(-9e+40),...
+'a_error_index',int32(-999999999),...
+'a_error_lower',double(-9e+40),...
+'a_error_upper',double(-9e+40),...
+'atoms_n',int32(-999999999),...
+'multiplicity',double(-9e+40),...
+'multiplicity_error_index',int32(-999999999),...
+'multiplicity_error_lower',double(-9e+40),...
+'multiplicity_error_upper',double(-9e+40),...
+'z_n',double(-9e+40),...
+'z_n_error_index',int32(-999999999),...
+'z_n_error_lower',double(-9e+40),...
+'z_n_error_upper',double(-9e+40))
+}},...
+'energies',double([]),...
+'energies_error_index',int32(-999999999),...
+'energies_error_lower',double([]),...
+'energies_error_upper',double([]),...
+'label','',...
+'sputtering_chemical_coefficient',double([]),...
+'sputtering_chemical_coefficient_error_index',int32(-999999999),...
+'sputtering_chemical_coefficient_error_lower',double([]),...
+'sputtering_chemical_coefficient_error_upper',double([]),...
+'sputtering_physical_coefficient',double([]),...
+'sputtering_physical_coefficient_error_index',int32(-999999999),...
+'sputtering_physical_coefficient_error_lower',double([]),...
+'sputtering_physical_coefficient_error_upper',double([]))
+}},...
 'label','',...
 'particle_flux_from_plasma',double([]),...
 'particle_flux_from_plasma_error_index',int32(-999999999),...
@@ -344,19 +1151,11 @@ struct(...
 'recycling_particles_coefficient_error_index',int32(-999999999),...
 'recycling_particles_coefficient_error_lower',double([]),...
 'recycling_particles_coefficient_error_upper',double([]),...
-'sputtering_chemical_coefficient',double([]),...
-'sputtering_chemical_coefficient_error_index',int32(-999999999),...
-'sputtering_chemical_coefficient_error_lower',double([]),...
-'sputtering_chemical_coefficient_error_upper',double([]),...
-'sputtering_physical_coefficient',double([]),...
-'sputtering_physical_coefficient_error_index',int32(-999999999),...
-'sputtering_physical_coefficient_error_lower',double([]),...
-'sputtering_physical_coefficient_error_upper',double([]),...
 'wall_inventory',double([]),...
 'wall_inventory_error_index',int32(-999999999),...
 'wall_inventory_error_lower',double([]),...
 'wall_inventory_error_upper',double([]))
-;}},...
+}},...
 'power_black_body',double([]),...
 'power_black_body_error_index',int32(-999999999),...
 'power_black_body_error_lower',double([]),...
@@ -417,10 +1216,61 @@ struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
 'access_layer','',...
 'access_layer_language','',...
 'data_dictionary','')),...
+'temperature_reference',struct(...
+'data',double(-9e+40),...
+'data_error_index',int32(-999999999),...
+'data_error_lower',double(-9e+40),...
+'data_error_upper',double(-9e+40),...
+'description',''),...
 'time',double([]));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_waves.m b/matlab/TCV_IMAS/ids_empty/ids_empty_waves.m
index af698a77d29facdaee508a3f2c6968be38730302..d6611083113fdf6a9c7c6a492b3855ad4186373b 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_empty_waves.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_waves.m
@@ -1,19 +1,23 @@
 function S = ids_empty_waves
 % function S = ids_empty_waves
 %
-% File written automatically using struct2m.m 
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
+S = ...
 struct(...
 'code',struct(...
 'commit','',...
+'description','',...
 'library',{{struct(...
 'commit','',...
+'description','',...
 'name','',...
 'parameters','',...
 'repository','',...
 'version','')
-;}},...
+}},...
 'name','',...
 'output_flag',int32([]),...
 'parameters','',...
@@ -70,7 +74,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
 'power',double([]),...
@@ -97,16 +101,25 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'z_ion',double(-9e+40),...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}},...
+}},...
 'length',double([]),...
 'length_error_index',int32(-999999999),...
 'length_error_lower',double([]),...
 'length_error_upper',double([]),...
+'phase',struct(...
+'angle',double([]),...
+'angle_error_index',int32(-999999999),...
+'angle_error_lower',double([]),...
+'angle_error_upper',double([]),...
+'curvature',double([]),...
+'curvature_error_index',int32(-999999999),...
+'curvature_error_lower',double([]),...
+'curvature_error_upper',double([])),...
 'position',struct(...
 'phi',double([]),...
 'phi_error_index',int32(-999999999),...
@@ -141,19 +154,40 @@ struct(...
 'power_initial_error_index',int32(-999999999),...
 'power_initial_error_lower',double(-9e+40),...
 'power_initial_error_upper',double(-9e+40),...
+'spot',struct(...
+'angle',double([]),...
+'angle_error_index',int32(-999999999),...
+'angle_error_lower',double([]),...
+'angle_error_upper',double([]),...
+'size',double([]),...
+'size_error_index',int32(-999999999),...
+'size_error_lower',double([]),...
+'size_error_upper',double([])),...
 'wave_vector',struct(...
 'k_r',double([]),...
 'k_r_error_index',int32(-999999999),...
 'k_r_error_lower',double([]),...
 'k_r_error_upper',double([]),...
+'k_r_norm',double([]),...
+'k_r_norm_error_index',int32(-999999999),...
+'k_r_norm_error_lower',double([]),...
+'k_r_norm_error_upper',double([]),...
 'k_tor',double([]),...
 'k_tor_error_index',int32(-999999999),...
 'k_tor_error_lower',double([]),...
 'k_tor_error_upper',double([]),...
+'k_tor_norm',double([]),...
+'k_tor_norm_error_index',int32(-999999999),...
+'k_tor_norm_error_lower',double([]),...
+'k_tor_norm_error_upper',double([]),...
 'k_z',double([]),...
 'k_z_error_index',int32(-999999999),...
 'k_z_error_lower',double([]),...
 'k_z_error_upper',double([]),...
+'k_z_norm',double([]),...
+'k_z_norm_error_index',int32(-999999999),...
+'k_z_norm_error_lower',double([]),...
+'k_z_norm_error_upper',double([]),...
 'n_parallel',double([]),...
 'n_parallel_error_index',int32(-999999999),...
 'n_parallel_error_lower',double([]),...
@@ -164,9 +198,9 @@ struct(...
 'n_perpendicular_error_upper',double([]),...
 'n_tor',int32([]),...
 'varying_n_tor',int32(-999999999)))
-;}},...
+}},...
 'time',double(-9e+40))
-;}},...
+}},...
 'full_wave',{{struct(...
 'b_field',struct(...
 'bi_normal',{{struct(...
@@ -180,7 +214,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'normal',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -192,7 +226,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'parallel',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -204,7 +238,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}}),...
+}}),...
 'e_field',struct(...
 'bi_normal',{{struct(...
 'coefficients',double([]),...
@@ -217,7 +251,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'minus',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -229,7 +263,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'normal',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -241,7 +275,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'parallel',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -253,7 +287,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'plus',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -265,7 +299,7 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}}),...
+}}),...
 'grid',struct(...
 'grid_subset',{{struct(...
 'base',{{struct(...
@@ -281,15 +315,15 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([]))
-;}},...
+}},...
 'dimension',int32(-999999999),...
 'element',{{struct(...
 'object',{{struct(...
 'dimension',int32(-999999999),...
 'index',int32(-999999999),...
 'space',int32(-999999999))
-;}})
-;}},...
+}})
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
@@ -307,11 +341,12 @@ struct(...
 'tensor_covariant_error_index',int32(-999999999),...
 'tensor_covariant_error_lower',double([]),...
 'tensor_covariant_error_upper',double([])))
-;}},...
+}},...
 'identifier',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''),...
+'path','',...
 'space',{{struct(...
 'coordinates_type',int32([]),...
 'geometry_type',struct(...
@@ -323,12 +358,20 @@ struct(...
 'index',int32(-999999999),...
 'name',''),...
 'objects_per_dimension',{{struct(...
+'geometry_content',struct(...
+'description','',...
+'index',int32(-999999999),...
+'name',''),...
 'object',{{struct(...
 'boundary',{{struct(...
 'index',int32(-999999999),...
 'neighbours',int32([]))
-;}},...
+}},...
 'geometry',double([]),...
+'geometry_2d',double([]),...
+'geometry_2d_error_index',int32(-999999999),...
+'geometry_2d_error_lower',double([]),...
+'geometry_2d_error_upper',double([]),...
 'geometry_error_index',int32(-999999999),...
 'geometry_error_lower',double([]),...
 'geometry_error_upper',double([]),...
@@ -337,9 +380,9 @@ struct(...
 'measure_error_lower',double(-9e+40),...
 'measure_error_upper',double(-9e+40),...
 'nodes',int32([]))
-;}})
-;}})
-;}}),...
+}})
+}})
+}}),...
 'k_perpendicular',{{struct(...
 'coefficients',double([]),...
 'coefficients_error_index',int32(-999999999),...
@@ -351,9 +394,9 @@ struct(...
 'values_error_index',int32(-999999999),...
 'values_error_lower',double([]),...
 'values_error_upper',double([]))
-;}},...
+}},...
 'time',double(-9e+40))
-;}},...
+}},...
 'global_quantities',{{struct(...
 'current_tor',double(-9e+40),...
 'current_tor_error_index',int32(-999999999),...
@@ -401,7 +444,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
 'power_fast',double(-9e+40),...
@@ -452,12 +495,12 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'z_ion',double(-9e+40),...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}},...
+}},...
 'n_tor',int32([]),...
 'power',double(-9e+40),...
 'power_error_index',int32(-999999999),...
@@ -468,7 +511,7 @@ struct(...
 'power_n_tor_error_lower',double([]),...
 'power_n_tor_error_upper',double([]),...
 'time',double(-9e+40))
-;}},...
+}},...
 'identifier',struct(...
 'antenna_name','',...
 'index_in_antenna',int32(-999999999),...
@@ -521,7 +564,7 @@ struct(...
 'phase_error_index',int32(-999999999),...
 'phase_error_lower',double([]),...
 'phase_error_upper',double([])))
-;}},...
+}},...
 'electrons',struct(...
 'power_density_fast',double([]),...
 'power_density_fast_error_index',int32(-999999999),...
@@ -607,7 +650,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
 'power_density_fast',double([]),...
@@ -690,12 +733,12 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'z_ion',double(-9e+40),...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}},...
+}},...
 'k_perpendicular',double([]),...
 'k_perpendicular_error_index',int32(-999999999),...
 'k_perpendicular_error_lower',double([]),...
@@ -718,7 +761,7 @@ struct(...
 'power_inside_n_tor_error_lower',double([]),...
 'power_inside_n_tor_error_upper',double([]),...
 'time',double(-9e+40))
-;}},...
+}},...
 'profiles_2d',{{struct(...
 'e_field_n_tor',{{struct(...
 'minus',struct(...
@@ -748,7 +791,7 @@ struct(...
 'phase_error_index',int32(-999999999),...
 'phase_error_lower',double([]),...
 'phase_error_upper',double([])))
-;}},...
+}},...
 'electrons',struct(...
 'power_density_fast',double([]),...
 'power_density_fast_error_index',int32(-999999999),...
@@ -822,7 +865,7 @@ struct(...
 'z_n_error_index',int32(-999999999),...
 'z_n_error_lower',double(-9e+40),...
 'z_n_error_upper',double(-9e+40))
-;}},...
+}},...
 'label','',...
 'multiple_states_flag',int32(-999999999),...
 'power_density_fast',double([]),...
@@ -873,12 +916,12 @@ struct(...
 'z_min_error_index',int32(-999999999),...
 'z_min_error_lower',double(-9e+40),...
 'z_min_error_upper',double(-9e+40))
-;}},...
+}},...
 'z_ion',double(-9e+40),...
 'z_ion_error_index',int32(-999999999),...
 'z_ion_error_lower',double(-9e+40),...
 'z_ion_error_upper',double(-9e+40))
-;}},...
+}},...
 'n_tor',int32([]),...
 'power_density',double([]),...
 'power_density_error_index',int32(-999999999),...
@@ -889,16 +932,61 @@ struct(...
 'power_density_n_tor_error_lower',double([]),...
 'power_density_n_tor_error_upper',double([]),...
 'time',double(-9e+40))
-;}},...
+}},...
 'wave_solver_type',struct(...
 'description','',...
 'index',int32(-999999999),...
 'name',''))
-;}},...
+}},...
 'ids_properties',struct(...
 'comment','',...
 'creation_date','',...
 'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
 'provider','',...
 'source','',...
 'version_put',struct(...
diff --git a/matlab/TCV_IMAS/ids_empty/ids_empty_workflow.m b/matlab/TCV_IMAS/ids_empty/ids_empty_workflow.m
new file mode 100644
index 0000000000000000000000000000000000000000..232ea4bddcbb837d483490f61cf8420b18ff57ff
--- /dev/null
+++ b/matlab/TCV_IMAS/ids_empty/ids_empty_workflow.m
@@ -0,0 +1,110 @@
+function S = ids_empty_workflow
+% function S = ids_empty_workflow
+%
+% File written automatically using writestruct_to_mfile.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
+
+S = ...
+struct(...
+'code',struct(...
+'commit','',...
+'description','',...
+'library',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'name','',...
+'output_flag',int32([]),...
+'parameters','',...
+'repository','',...
+'version',''),...
+'ids_properties',struct(...
+'comment','',...
+'creation_date','',...
+'homogeneous_time',int32(-999999999),...
+'plugins',struct(...
+'infrastructure_get',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'infrastructure_put',struct(...
+'commit','',...
+'description','',...
+'name','',...
+'repository','',...
+'version',''),...
+'node',{{struct(...
+'get_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'path','',...
+'put_operation',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'readback',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}})
+}}),...
+'provenance',struct(...
+'node',{{struct(...
+'path','',...
+'sources',{{}})
+}}),...
+'provider','',...
+'source','',...
+'version_put',struct(...
+'access_layer','',...
+'access_layer_language','',...
+'data_dictionary','')),...
+'time',double([]),...
+'time_loop',struct(...
+'component',{{struct(...
+'commit','',...
+'description','',...
+'name','',...
+'parameters','',...
+'repository','',...
+'version','')
+}},...
+'time_end',double(-9e+40),...
+'time_end_error_index',int32(-999999999),...
+'time_end_error_lower',double(-9e+40),...
+'time_end_error_upper',double(-9e+40),...
+'workflow_cycle',{{struct(...
+'component',{{struct(...
+'control_float',double([]),...
+'control_float_error_index',int32(-999999999),...
+'control_float_error_lower',double([]),...
+'control_float_error_upper',double([]),...
+'control_integer',int32([]),...
+'execution_mode',int32(-999999999),...
+'index',int32(-999999999),...
+'time_interval',double(-9e+40),...
+'time_interval_error_index',int32(-999999999),...
+'time_interval_error_lower',double(-9e+40),...
+'time_interval_error_upper',double(-9e+40))
+}},...
+'time',double(-9e+40))
+}}));
diff --git a/matlab/TCV_IMAS/ids_empty/ids_list_all.m b/matlab/TCV_IMAS/ids_empty/ids_list_all.m
index 234770598e679f03fc2de922fd521441cf5ec671..1fb18199a9e7076bc5d0895646731f3525b07837 100644
--- a/matlab/TCV_IMAS/ids_empty/ids_list_all.m
+++ b/matlab/TCV_IMAS/ids_empty/ids_list_all.m
@@ -1,7 +1,9 @@
 function S = ids_list_all
 % function S = ids_list_all
 %
-% File written automatically using writecell.m 
+% File written automatically using writecell.m
+% writestruct_to_mfile with n=15, with ids_gen to generate empty IDS within IMAS version 3.39.0
+%
 
-S = ... 
-{'amns_data';'barometry';'bolometer';'bremsstrahlung_visible';'calorimetry';'camera_ir';'camera_visible';'charge_exchange';'coils_non_axisymmetric';'controllers';'core_instant_changes';'core_profiles';'core_sources';'core_transport';'cryostat';'dataset_description';'dataset_fair';'disruption';'distribution_sources';'distributions';'divertors';'ec_launchers';'ece';'edge_profiles';'edge_sources';'edge_transport';'em_coupling';'equilibrium';'gas_injection';'gas_pumping';'gyrokinetics';'hard_x_rays';'ic_antennas';'interferometer';'iron_core';'langmuir_probes';'lh_antennas';'magnetics';'mhd';'mhd_linear';'mse';'nbi';'neutron_diagnostic';'ntms';'numerics';'pellets';'pf_active';'pf_passive';'polarimeter';'pulse_schedule';'radiation';'reflectometer_profile';'refractometer';'sawteeth';'sdn';'soft_x_rays';'spectrometer_mass';'spectrometer_uv';'spectrometer_visible';'spectrometer_x_ray_crystal';'summary';'temporary';'thomson_scattering';'tf';'transport_solver_numerics';'turbulence';'wall';'waves';};
+S = ...
+{'amns_data';'barometry';'b_field_non_axisymmetric';'bolometer';'bremsstrahlung_visible';'calorimetry';'camera_ir';'camera_visible';'camera_x_rays';'charge_exchange';'coils_non_axisymmetric';'controllers';'core_instant_changes';'core_profiles';'core_sources';'core_transport';'cryostat';'dataset_description';'dataset_fair';'disruption';'distribution_sources';'distributions';'divertors';'ec_launchers';'ece';'edge_profiles';'edge_sources';'edge_transport';'em_coupling';'equilibrium';'focs';'gas_injection';'gas_pumping';'gyrokinetics';'hard_x_rays';'ic_antennas';'interferometer';'iron_core';'langmuir_probes';'lh_antennas';'magnetics';'mhd';'mhd_linear';'mse';'nbi';'neutron_diagnostic';'ntms';'pellets';'pf_active';'pf_passive';'plasma_initiation';'polarimeter';'pulse_schedule';'radiation';'real_time_data';'reflectometer_profile';'reflectometer_fluctuation';'refractometer';'runaway_electrons';'sawteeth';'soft_x_rays';'spectrometer_mass';'spectrometer_uv';'spectrometer_visible';'spectrometer_x_ray_crystal';'summary';'temporary';'thomson_scattering';'tf';'transport_solver_numerics';'turbulence';'wall';'waves';'workflow'};
diff --git a/matlab/TCV_IMAS/idses_empty_to_mfile.m b/matlab/TCV_IMAS/idses_empty_to_mfile.m
new file mode 100644
index 0000000000000000000000000000000000000000..6c23f1b82579820ab875c822207470c936ed5e67
--- /dev/null
+++ b/matlab/TCV_IMAS/idses_empty_to_mfile.m
@@ -0,0 +1,56 @@
+function [empty_dir_out,ids_empty_structures,okflags] = idses_empty_to_mfile(dirname_for_files,varargin)
+%
+% [empty_dir_out,ids_empty_structures,okflags] = idses_empty_to_mfile(dirname_for_files,varargin);
+%
+% dirname_for_files: folder to save files, if not provided or empty, use /tmp/$USER/idses_empty_to_mfile
+%
+% generate empty ids structures and save them with writestruct_to_mfile as ascii .m files defining the structures
+% Add json output when ready
+%
+% varargin{1}: option for outputs: 1 (default) to mfiles, 2 to mfiles and json files, 3 to json files
+%
+% The procedure for updating the empty idses available for TCV/lacs is to do:
+% [empty_dir_out,ids_empty_structures,okflags] = idses_empty_to_mfile;
+% !cp -pr /tmp/$USER/idses_empty_to_mfile/* /.../gdat/matlab/TCV_IMAS/ids_empty
+% !ls -alt /.../gdat/matlab/TCV_IMAS/ids_empty
+% and rm the old files (not replaced by the cp above, since it means non existent in current version
+% add branch to gdat and merge, then deploy
+%
+% wall = ids_empty_wall; % for example gives the IDS wall structure
+% help ids_empty_wall % gives you the IMAS version it used to produce it
+%
+
+if nargin < 1 || isempty(dirname_for_files) || ~exist(dirname_for_files,'dir')
+  dirname_for_files = sprintf('/tmp/%s/idses_empty_to_mfile',getenv('USER'));
+  unix(['rm -rf ' dirname_for_files]);
+  unix(['mkdir -p ' dirname_for_files]);
+  warning('no folder provided, files will be written to: %s\n',dirname_for_files);
+end
+empty_dir_out = dirname_for_files;
+
+write_option = 1;
+if nargin>=2 && ~isempty(varargin{1})
+  write_option = varargin{1};
+end
+
+ids_list_to_generate = IDS_list;
+imas_version = getenv('IMAS_VERSION');
+n_prec = 15; % for 1e40 and -1e9+1
+provenance_text = sprintf('writestruct_to_mfile with n=%d, with ids_gen to generate empty IDS within IMAS version %s',n_prec,imas_version);
+for i=1:length(ids_list_to_generate)
+  ids_empty_structures.(ids_list_to_generate{i}) = ids_gen(ids_list_to_generate{i});
+  okflags(i) = writestruct_to_mfile(ids_empty_structures.(ids_list_to_generate{i}), ...
+          fullfile(dirname_for_files,['ids_empty_',ids_list_to_generate{i},'.m']),n_prec,provenance_text);
+end
+
+okflags(end+1) = writecell(ids_list_to_generate,fullfile(dirname_for_files,'ids_list_all.m'),n_prec,provenance_text);
+
+
+if any(okflags~=1)
+  warning('some flags not ok')
+end
+
+% save ids_structures_IMAS326.mat ids_structures ids_list_to_generate ids_list_all
+% then use ids_structures_mat_to_m to save all the structures as ids_empty_xx.m files
+% [empty_dir_out] = ids_structures_mat_to_m('/tmp/sautero/ids_structures_IMAS331.mat','/tmp/sautero/ids_empty')
+%