diff --git a/matlab/TCV_IMAS/tcv_get_ids_pf_active.m b/matlab/TCV_IMAS/tcv_get_ids_pf_active.m
index a8978b733c0c9e9d2b97084c9fec085298b5c1dd..1df35c1c1f990eff12d6d9bca0fe1403629eb9dc 100644
--- a/matlab/TCV_IMAS/tcv_get_ids_pf_active.m
+++ b/matlab/TCV_IMAS/tcv_get_ids_pf_active.m
@@ -4,7 +4,7 @@ function [ids_pf_active,ids_pf_active_description,varargout] = tcv_get_ids_pf_ac
 %
 
 % Input pharser
-if exist('gdat_params')
+if exist('gdat_params','var')
   [ids_pf_active, params] = tcv_ids_headpart(shot, ids_pf_active_empty,'pf_active','homogeneous_time',0,'gdat_params',gdat_params,varargin{:});
 else
   [ids_pf_active, params] = tcv_ids_headpart(shot, ids_pf_active_empty,'pf_active','homogeneous_time',0,varargin{:});
@@ -21,7 +21,7 @@ end
 ids_pf_active.vertical_force = {};
 
 % cocos automatic transform
-if exist('ids_generic_cocos_nodes_transformation_symbolic') == 2
+if exist('ids_generic_cocos_nodes_transformation_symbolic','file')
   [ids_pf_active,cocoscoeff]=ids_generic_cocos_nodes_transformation_symbolic(ids_pf_active,'pf_active',gdat_params.cocos_in, ...
           gdat_params.cocos_out,gdat_params.ipsign_out,gdat_params.b0sign_out,gdat_params.ipsign_in,gdat_params.b0sign_in, ...
           gdat_params.error_bar,gdat_params.nverbose);
diff --git a/matlab/TCV_IMAS/tcv_ids_coil.m b/matlab/TCV_IMAS/tcv_ids_coil.m
index 13eb86f0f7d3580ba00cb632fc5fa407f6024323..8fc6ae8171d4beecee6e90c79594b4e02f671b55 100644
--- a/matlab/TCV_IMAS/tcv_ids_coil.m
+++ b/matlab/TCV_IMAS/tcv_ids_coil.m
@@ -13,11 +13,11 @@ function [ids_struct_out,ids_struct_out_description] =  tcv_ids_coil(shot, ids_s
 % TODO add logic to get the current in the coils only once.
 
 error_bar = 'delta';
-if exist('gdat_params') && isfield(gdat_params,'error_bar') && ~isempty(gdat_params.error_bar)
+if exist('gdat_params','var') && isfield(gdat_params,'error_bar') && ~isempty(gdat_params.error_bar)
   error_bar = gdat_params.error_bar;
 end
 params_eff_ref = gdat_params; params_eff_ref.doplot=0;
-try;params_eff_ref=rmfield(params_eff_ref,'source');catch;end % make sure no source (from ids def)
+try params_eff_ref=rmfield(params_eff_ref,'source');catch;end % make sure no source (from ids def)
 
 % Coils that can be characterized by R, Z and a
 % crosssectional area are described as distinct coils with a single element, this also corresponds to coils with distinct TCV names).
@@ -44,117 +44,118 @@ r_c     = mdsvalue('_r_c=static(''r_c'')'); % R position
 z_c     = mdsvalue('_z_c=static(''z_c'')'); % Z position
 w_c     = mdsvalue('static(''w_c'')'); % width rectangular description
 h_c     = mdsvalue('static(''h_c'')'); % height rectangular description
-a_c     = mdsvalue('static(''a_c'')'); % tilt angle for parallelogram representation ( deprecated representation in IDS)
+% a_c     = mdsvalue('static(''a_c'')'); % tilt angle for parallelogram representation ( deprecated representation in IDS)
 nt_c    = mdsvalue('static(''nt_c'')'); % number of turns
 xsect_c = mdsvalue('static(''xsect_c'')');
 res_c   = mdsvalue('static(''res_c'')'); % resistence of the coil
 sizepfc = numel(r_c);
-namepfc = mdsvalue('dim_of(_r_c)');
+namepfc = mdsvalue('static(''dim_c'')');
 
 % Set effective turns in T1 and T2 (see J.-M. Moret, et al., RSI 69 (1998) 2333)
-iT = strmatch('T_001',namepfc);
+iT = strcmp('T_001',namepfc);
 nt_c(iT)=26/68;
-iT = strmatch('T_002',namepfc);
+iT = strcmp('T_002',namepfc);
 nt_c(iT)=42/68;
-iT = strmatch('T_003',namepfc);      % Return current
+iT = strcmp('T_003',namepfc);      % Return current
 nt_c(iT)=1;
 
 % Approximate circular G-coil conductor with a square of the same crosssection
-iG=strmatch('G_00',namepfc);
+iG=strcmp('G_00',namepfc);
 w_c(iG)=sqrt(xsect_c(iG));
 h_c(iG)=sqrt(xsect_c(iG));
 
 %% Put data to ids structure
 ids_struct_out(1:sizepfc) = ids_structures;
+ids_struct_out_description = cell(1,sizepfc);
 ind_coil_ids = 0;
 params_eff = params_eff_ref;
 for ii=1:ncircuits2ids
-    ncoil2ids = numel(coil_names2ids{ii}); % number of coils for a given circuit
-
-    for jj = 1:ncoil2ids
-      ind_coil_ids = ind_coil_ids +1;
-      ids_struct_out{ind_coil_ids}.name = coil_names2ids{ii}{jj};
-      ids_struct_out_description{ind_coil_ids}.name = ['through aa=tcv_ids_pf_active_definition from aa.coil_names  '];
-
-      % time-varying data
-      if shot == -1
-        tmpdata.dim{1} = [];
-        tmpdata.data = [];
-        warning('no time data loaded for shot %d',shot);
-      else
-        params_eff.data_request = mds_paths2ids{ii};
-        tmpdata = gdat_tcv(shot,params_eff);
-      end
-% $$$       ids_struct_out{ind_coil_ids}.current.data = tmpdata.data;
-% $$$       ids_struct_out_description{ind_coil_ids}.current.data = ['from ' mds_paths2ids{ii}];
-      ids_struct_out{ind_coil_ids}.current.data = pf_def.coil_current_signs{ii}(jj) .* tmpdata.data;
-      ids_struct_out_description{ind_coil_ids}.current.data = ['from ' num2str(pf_def.coil_current_signs{ii}(jj)) ' * ' mds_paths2ids{ii}];
-try
+  ncoil2ids = numel(coil_names2ids{ii}); % number of coils for a given circuit
+  
+  for jj = 1:ncoil2ids
+    ind_coil_ids = ind_coil_ids +1;
+    ids_struct_out{ind_coil_ids}.name = coil_names2ids{ii}{jj};
+    ids_struct_out_description{ind_coil_ids}.name = 'through aa=tcv_ids_pf_active_definition from aa.coil_names  ';
+    
+    % time-varying data
+    if shot == -1
+      tmpdata.dim{1} = [];
+      tmpdata.data = [];
+      warning('no time data loaded for shot %d',shot);
+    else
+      params_eff.data_request = mds_paths2ids{ii};
+      tmpdata = gdat_tcv(shot,params_eff);
+    end
+    % $$$       ids_struct_out{ind_coil_ids}.current.data = tmpdata.data;
+    % $$$       ids_struct_out_description{ind_coil_ids}.current.data = ['from ' mds_paths2ids{ii}];
+    ids_struct_out{ind_coil_ids}.current.data = pf_def.coil_current_signs{ii}(jj) .* tmpdata.data;
+    ids_struct_out_description{ind_coil_ids}.current.data = ['from ' num2str(pf_def.coil_current_signs{ii}(jj)) ' * ' mds_paths2ids{ii}];
+    try
       ids_struct_out{ind_coil_ids}.current.time = tmpdata.dim{1};
-catch
-  keyboard
-  end
-
-      % Find index on static tree
-      tmpind = find(strcmp(ids_struct_out{ind_coil_ids}.name, namepfc));
-      ids_struct_out{ind_coil_ids}.element{1}.geometry.rectangle.r = r_c(tmpind);
-      ids_struct_out_description{ind_coil_ids}.element{1}.geometry.rectangle_r = ['from static(''r_c'')'];
-      ids_struct_out{ind_coil_ids}.element{1}.geometry.rectangle.z = z_c(tmpind);
-      ids_struct_out_description{ind_coil_ids}.element{1}.geometry.rectangle_z = ['from static(''z_c'')'];
-      ids_struct_out{ind_coil_ids}.element{1}.geometry.rectangle.width = w_c(tmpind);
-      ids_struct_out_description{ind_coil_ids}.element{1}.geometry.rectangle_width = ['from static(''w_c'')'];
-      ids_struct_out{ind_coil_ids}.element{1}.geometry.rectangle.height = h_c(tmpind);
-      ids_struct_out_description{ind_coil_ids}.element{1}.geometry.rectangle_height = ['from static(''h_c'')'];
-      ids_struct_out{ind_coil_ids}.element{1}.turns_with_sign = nt_c(tmpind);
-      ids_struct_out_description{ind_coil_ids}.element{1}.turns_with_sign = ['from static(''nt_c'')'];
-      ids_struct_out{ind_coil_ids}.element{1}.geometry.geometry_type = 2; % 1 outline, 2 rectangle, 4 arc of circle
-      ids_struct_out_description{ind_coil_ids}.element{1}.geometry.geometry_type = 'rectangle';
-
-      ids_struct_out{ind_coil_ids}.resistance = res_c(tmpind);
-      ids_struct_out_description{ind_coil_ids}.resistance = ['from static(''res_c'')'];
+    catch
+      keyboard
     end
+    
+    % Find index on static tree
+    tmpind = find(strcmp(ids_struct_out{ind_coil_ids}.name, namepfc));
+    ids_struct_out{ind_coil_ids}.element{1}.geometry.rectangle.r = r_c(tmpind);
+    ids_struct_out_description{ind_coil_ids}.element{1}.geometry.rectangle_r = 'from static(''r_c'')';
+    ids_struct_out{ind_coil_ids}.element{1}.geometry.rectangle.z = z_c(tmpind);
+    ids_struct_out_description{ind_coil_ids}.element{1}.geometry.rectangle_z = 'from static(''z_c'')';
+    ids_struct_out{ind_coil_ids}.element{1}.geometry.rectangle.width = w_c(tmpind);
+    ids_struct_out_description{ind_coil_ids}.element{1}.geometry.rectangle_width = 'from static(''w_c'')';
+    ids_struct_out{ind_coil_ids}.element{1}.geometry.rectangle.height = h_c(tmpind);
+    ids_struct_out_description{ind_coil_ids}.element{1}.geometry.rectangle_height = 'from static(''h_c'')';
+    ids_struct_out{ind_coil_ids}.element{1}.turns_with_sign = nt_c(tmpind);
+    ids_struct_out_description{ind_coil_ids}.element{1}.turns_with_sign = 'from static(''nt_c'')';
+    ids_struct_out{ind_coil_ids}.element{1}.geometry.geometry_type = 2; % 1 outline, 2 rectangle, 4 arc of circle
+    ids_struct_out_description{ind_coil_ids}.element{1}.geometry.geometry_type = 'rectangle';
+    
+    ids_struct_out{ind_coil_ids}.resistance = res_c(tmpind);
+    ids_struct_out_description{ind_coil_ids}.resistance = 'from static(''res_c'')';
+  end
 end
 
 % fixed_error = 200.;
 ind_coil_ids = 0;
 switch error_bar
- case 'delta'
-  for ii=1:ncircuits2ids
-    ncoil2ids = numel(coil_names2ids{ii}); % number of coils for a given circuit
-    for jj = 1:ncoil2ids
-      fixed_error = pf_def.coil_current_error{ii}(jj);
-      ind_coil_ids = ind_coil_ids +1;
-      ids_struct_out{ind_coil_ids}.current.data_error_upper = fixed_error.*ones(size(ids_struct_out{ind_coil_ids}.current.data));
-      ids_struct_out_description{ind_coil_ids}.current_data_error_upper = fixed_error.*ones(size(ids_struct_out{ind_coil_ids}.current.data));
-      ids_struct_out_description{ind_coil_ids}.current_data_error_lower = ['not provided since symmetric'];
+  case 'delta'
+    for ii=1:ncircuits2ids
+      ncoil2ids = numel(coil_names2ids{ii}); % number of coils for a given circuit
+      for jj = 1:ncoil2ids
+        fixed_error = pf_def.coil_current_error{ii}(jj);
+        ind_coil_ids = ind_coil_ids +1;
+        ids_struct_out{ind_coil_ids}.current.data_error_upper = fixed_error.*ones(size(ids_struct_out{ind_coil_ids}.current.data));
+        ids_struct_out_description{ind_coil_ids}.current_data_error_upper = fixed_error.*ones(size(ids_struct_out{ind_coil_ids}.current.data));
+        ids_struct_out_description{ind_coil_ids}.current_data_error_lower = 'not provided since symmetric';
+      end
     end
-  end
- case 'delta_with_lower'
-  for ii=1:ncircuits2ids
-    ncoil2ids = numel(coil_names2ids{ii}); % number of coils for a given circuit
-    for jj = 1:ncoil2ids
-      fixed_error = pf_def.coil_current_error{ii}(jj);
-      ind_coil_ids = ind_coil_ids +1;
-      ids_struct_out{ind_coil_ids}.current.data_error_upper = fixed_error.*ones(size(ids_struct_out{ind_coil_ids}.current.data));
-      ids_struct_out{ind_coil_ids}.current.data_error_lower = ids_struct_out{ind_coil_ids}.current.data_error_upper;
-      ids_struct_out_description{ind_coil_ids}.current_data_error_upper = ['from fixed error value in case ' error_bar];
-      ids_struct_out_description{ind_coil_ids}.current_data_error_lower = ['from fixed error value in case ' error_bar];
+  case 'delta_with_lower'
+    for ii=1:ncircuits2ids
+      ncoil2ids = numel(coil_names2ids{ii}); % number of coils for a given circuit
+      for jj = 1:ncoil2ids
+        fixed_error = pf_def.coil_current_error{ii}(jj);
+        ind_coil_ids = ind_coil_ids +1;
+        ids_struct_out{ind_coil_ids}.current.data_error_upper = fixed_error.*ones(size(ids_struct_out{ind_coil_ids}.current.data));
+        ids_struct_out{ind_coil_ids}.current.data_error_lower = ids_struct_out{ind_coil_ids}.current.data_error_upper;
+        ids_struct_out_description{ind_coil_ids}.current_data_error_upper = ['from fixed error value in case ' error_bar];
+        ids_struct_out_description{ind_coil_ids}.current_data_error_lower = ['from fixed error value in case ' error_bar];
+      end
     end
-  end
- case 'added'
-  for ii=1:ncircuits2ids
-    ncoil2ids = numel(coil_names2ids{ii}); % number of coils for a given circuit
-    for jj = 1:ncoil2ids
-      fixed_error = pf_def.coil_current_error{ii}(jj);
-      ind_coil_ids = ind_coil_ids +1;
-      ids_struct_out{ind_coil_ids}.current.data_error_upper = ids_struct_out{ind_coil_ids}.current.data ...
+  case 'added'
+    for ii=1:ncircuits2ids
+      ncoil2ids = numel(coil_names2ids{ii}); % number of coils for a given circuit
+      for jj = 1:ncoil2ids
+        fixed_error = pf_def.coil_current_error{ii}(jj);
+        ind_coil_ids = ind_coil_ids +1;
+        ids_struct_out{ind_coil_ids}.current.data_error_upper = ids_struct_out{ind_coil_ids}.current.data ...
           + fixed_error.*ones(size(ids_struct_out{ind_coil_ids}.current.data));
-      ids_struct_out{ind_coil_ids}.current.data_error_lower = ids_struct_out{ind_coil_ids}.current.data ...
+        ids_struct_out{ind_coil_ids}.current.data_error_lower = ids_struct_out{ind_coil_ids}.current.data ...
           - fixed_error.*ones(size(ids_struct_out{ind_coil_ids}.current.data));
-      ids_struct_out_description{ind_coil_ids}.current_data_error_upper = ['from data + fixed error value in case ' error_bar];
-      ids_struct_out_description{ind_coil_ids}.current_data_error_lower = ['from data - fixed error value in case ' error_bar];
+        ids_struct_out_description{ind_coil_ids}.current_data_error_upper = ['from data + fixed error value in case ' error_bar];
+        ids_struct_out_description{ind_coil_ids}.current_data_error_lower = ['from data - fixed error value in case ' error_bar];
+      end
     end
-  end
- otherwise
-  error(['tcv_ids_bpol_loop: error_bar option not known: ' error_bar])
+  otherwise
+    error(['tcv_ids_bpol_loop: error_bar option not known: ' error_bar])
 end
diff --git a/matlab/TCV_IMAS/tcv_ids_pf_active_definition.m b/matlab/TCV_IMAS/tcv_ids_pf_active_definition.m
index 35230de7d17067ce3c7292de7b3cb202203be099..413340424beb1618110ad6bee605be8d466516d6 100644
--- a/matlab/TCV_IMAS/tcv_ids_pf_active_definition.m
+++ b/matlab/TCV_IMAS/tcv_ids_pf_active_definition.m
@@ -1,87 +1,96 @@
-function [ combined_structure] =  tcv_ids_pf_active_definition()
+function [ combined_structure] =  tcv_ids_pf_active_definition(doplot)
 % All circuits are connected in series and has only 1 power supply, so they
 % share the same current.
 
+if nargin < 1, doplot = 0;end
+
+% NOTE: The sign for T_00* comes from the connection matrix in the static
+% tree "T_C_A".
+% TODO: We could probably rebuild the connection matrix from the static
+% tree node "T_C_A".
+
 % {Coil name}, [connection side identifier]
-error_fixed = 200.;
+error_fixed = 200.; % This is the error assigned by LIUQE to each circuit/PS
+                    % Since all coils are serially connected to their PS,
+                    % this is also the error for individual coil currents.
 coil_names_and_current_sign = {...
- {'A_001'}, [1], error_fixed*0.007; ... % Circuit 1
- {'B_001', 'B_002',  'C_001',  'C_002',  'D_001',  'D_002'}, [1, 1, 1, 1, 1, 1], ...
-    error_fixed*[0.03448275862, 0.03448275862, 0.08333333333333, 0.08333333333333, 0.125, 0.125]; ... % Circuit 2
-    {'E_001'}, [1], error_fixed*0.02941176470588; ... % Circuit 3
-    {'E_002'}, [1], error_fixed*0.02941176470588; ... % Circuit 4
-    {'E_003'}, [1], error_fixed*0.02941176470588; ... % Circuit 5
-    {'E_004'}, [1], error_fixed*0.02941176470588; ... % Circuit 6
-    {'E_005'}, [1], error_fixed*0.02941176470588; ... % Circuit 7
-    {'E_006'}, [1], error_fixed*0.02941176470588; ... % Circuit 8
-    {'E_007'}, [1], error_fixed*0.02941176470588; ... % Circuit 9
-    {'E_008'}, [1], error_fixed*0.02941176470588; ... % Circuit 10
-    {'F_001'}, [1], error_fixed*0.02777777777778; ... % Circuit 11
-    {'F_002'}, [1], error_fixed*0.02777777777778; ... % Circuit 12
-    {'F_003'}, [1], error_fixed*0.02777777777778; ... % Circuit 13
-    {'F_004'}, [1], error_fixed*0.02777777777778; ... % Circuit 14
-    {'F_005'}, [1], error_fixed*0.02777777777778; ... % Circuit 15
-    {'F_006'}, [1], error_fixed*0.02777777777778; ... % Circuit 16
-    {'F_007'}, [1], error_fixed*0.02777777777778; ... % Circuit 17
-    {'F_008'}, [1], error_fixed*0.02777777777778; ... % Circuit 18
-    {'G_001', 'G_002', 'G_003', 'G_004', 'G_005', 'G_006'}, [1,1,1,-1,-1,-1], error_fixed*[1, 1, 1, 1, 1, 1]; ... % Circuit 19 Lower coils connected in opposite direcetion
-    {'T_001', 'T_002', 'T_003'}, [1,1,-1], error_fixed*[2.61538489704145, 1.619047511111125, 1]; ...% Circuit 20 %T003 in opposite direction
-};
+  {'A_001'}, 1, error_fixed; ... % Circuit 1
+  {'B_001', 'B_002',  'C_001',  'C_002',  'D_001',  'D_002'}, [1, 1, 1, 1, 1, 1], ...
+    error_fixed*[1, 1, 1, 1, 1, 1]; ... % Circuit 2
+  {'E_001'}, 1, error_fixed; ... % Circuit 3
+  {'E_002'}, 1, error_fixed; ... % Circuit 4
+  {'E_003'}, 1, error_fixed; ... % Circuit 5
+  {'E_004'}, 1, error_fixed; ... % Circuit 6
+  {'E_005'}, 1, error_fixed; ... % Circuit 7
+  {'E_006'}, 1, error_fixed; ... % Circuit 8
+  {'E_007'}, 1, error_fixed; ... % Circuit 9
+  {'E_008'}, 1, error_fixed; ... % Circuit 10
+  {'F_001'}, 1, error_fixed; ... % Circuit 11
+  {'F_002'}, 1, error_fixed; ... % Circuit 12
+  {'F_003'}, 1, error_fixed; ... % Circuit 13
+  {'F_004'}, 1, error_fixed; ... % Circuit 14
+  {'F_005'}, 1, error_fixed; ... % Circuit 15
+  {'F_006'}, 1, error_fixed; ... % Circuit 16
+  {'F_007'}, 1, error_fixed; ... % Circuit 17
+  {'F_008'}, 1, error_fixed; ... % Circuit 18
+  {'G_001', 'G_002', 'G_003', 'G_004', 'G_005', 'G_006'}, [ 1, 1, 1,-1,-1,-1], error_fixed*[ 1, 1, 1, 1, 1, 1]; ... % Circuit 19 Lower coils connected in opposite direcetion
+  {'T_001', 'T_002', 'T_003'}, [-1,-1, 1], error_fixed*[1, 1, 1]; ...% Circuit 20 %T003 in opposite direction
+  };
 power_supply_names_and_current_sign = {...
-{'OH1'}, [1];... % Circuit 1
-{'OH2'}, [1];... % Circuit 2
-{'E1'},  [1];...% Circuit 3
-{'E2'},  [1];...% Circuit 4
-{'E3'},  [1];... % Circuit 5
-{'E4'},  [1];... % Circuit 6
-{'E5'},  [1];... % Circuit 7
-{'E6'},  [1];... % Circuit 8
-{'E7'},  [1];... % Circuit 9
-{'E8'},  [1];... % Circuit 10
-{'F1'},  [1];... % Circuit 11
-{'F2'},  [1];... % Circuit 12
-{'F3'},  [1];... % Circuit 13
-{'F4'},  [1];... % Circuit 14
-{'F5'},  [1];... % Circuit 15
-{'F6'},  [1];... % Circuit 16
-{'F7'},  [1];... % Circuit 17
-{'F8'},  [1];... % Circuit 18
-{'FPS'}, [1];...% Circuit 19
-{'T'},   [1];... % Circuit 20
-};
-
-coil_names = {coil_names_and_current_sign{:,1}}';
-coil_current_sign = {coil_names_and_current_sign{:,2}};
-coil_current_error = {coil_names_and_current_sign{:,3}};
-power_supply_names = {power_supply_names_and_current_sign{:,1}}';
-power_supply_current_sign = {power_supply_names_and_current_sign{:,2}};
+  {'OH1'}, 1;... % Circuit 1
+  {'OH2'}, 1;... % Circuit 2
+  {'E1'},  1;... % Circuit 3
+  {'E2'},  1;... % Circuit 4
+  {'E3'},  1;... % Circuit 5
+  {'E4'},  1;... % Circuit 6
+  {'E5'},  1;... % Circuit 7
+  {'E6'},  1;... % Circuit 8
+  {'E7'},  1;... % Circuit 9
+  {'E8'},  1;... % Circuit 10
+  {'F1'},  1;... % Circuit 11
+  {'F2'},  1;... % Circuit 12
+  {'F3'},  1;... % Circuit 13
+  {'F4'},  1;... % Circuit 14
+  {'F5'},  1;... % Circuit 15
+  {'F6'},  1;... % Circuit 16
+  {'F7'},  1;... % Circuit 17
+  {'F8'},  1;... % Circuit 18
+  {'FPS'}, 1;... % Circuit 19
+  {'T'},   1;... % Circuit 20
+  };
+
+coil_names                = coil_names_and_current_sign(:,1);
+coil_current_sign         = coil_names_and_current_sign(:,2);
+coil_current_error        = coil_names_and_current_sign(:,3);
+power_supply_names        = power_supply_names_and_current_sign(:,1);
+power_supply_current_sign = power_supply_names_and_current_sign(:,2);
 
 
 circuit_names = power_supply_names;
 
 % mds path to be called with gdat
 mds_paths = {...
- '\magnetics::ipol[*,"OH_001"]';... % Circuit 1
- '\magnetics::ipol[*,"OH_002"]'; ... % Circuit 2
- '\magnetics::ipol[*,"E_001"]';... % Circuit 3
- '\magnetics::ipol[*,"E_002"]';...% Circuit 4
- '\magnetics::ipol[*,"E_003"]';...% Circuit 5
- '\magnetics::ipol[*,"E_004"]';...% Circuit 6
- '\magnetics::ipol[*,"E_005"]';...% Circuit 7
- '\magnetics::ipol[*,"E_006"]';...% Circuit 8
- '\magnetics::ipol[*,"E_007"]';...% Circuit 9
- '\magnetics::ipol[*,"E_008"]'; ...% Circuit 10
- '\magnetics::ipol[*,"F_001"]';...% Circuit 11
- '\magnetics::ipol[*,"F_002"]';...% Circuit 12
- '\magnetics::ipol[*,"F_003"]';...% Circuit 13
- '\magnetics::ipol[*,"F_004"]';...% Circuit 14
- '\magnetics::ipol[*,"F_005"]';...% Circuit 15
- '\magnetics::ipol[*,"F_006"]';...% Circuit 16
- '\magnetics::ipol[*,"F_007"]';...% Circuit 17
- '\magnetics::ipol[*,"F_008"]';... % Circuit 18
- 'is_in("G_001",dim_of(\magnetics::ipol,1)) ? \magnetics::ipol[*,"G_001"] : make_signal(zero(shape(data(\magnetics::ipol))[0],1.0),*,dim_of(\magnetics::ipol,0))';... % G coils % Circuit 19
- '\magnetics::iphi';... % Connection between tf coils % Circuit 20
-};
+  '\magnetics::ipol[*,"OH_001"]';... % Circuit 1
+  '\magnetics::ipol[*,"OH_002"]'; ... % Circuit 2
+  '\magnetics::ipol[*,"E_001"]';... % Circuit 3
+  '\magnetics::ipol[*,"E_002"]';...% Circuit 4
+  '\magnetics::ipol[*,"E_003"]';...% Circuit 5
+  '\magnetics::ipol[*,"E_004"]';...% Circuit 6
+  '\magnetics::ipol[*,"E_005"]';...% Circuit 7
+  '\magnetics::ipol[*,"E_006"]';...% Circuit 8
+  '\magnetics::ipol[*,"E_007"]';...% Circuit 9
+  '\magnetics::ipol[*,"E_008"]'; ...% Circuit 10
+  '\magnetics::ipol[*,"F_001"]';...% Circuit 11
+  '\magnetics::ipol[*,"F_002"]';...% Circuit 12
+  '\magnetics::ipol[*,"F_003"]';...% Circuit 13
+  '\magnetics::ipol[*,"F_004"]';...% Circuit 14
+  '\magnetics::ipol[*,"F_005"]';...% Circuit 15
+  '\magnetics::ipol[*,"F_006"]';...% Circuit 16
+  '\magnetics::ipol[*,"F_007"]';...% Circuit 17
+  '\magnetics::ipol[*,"F_008"]';... % Circuit 18
+  'is_in("G_001",dim_of(\magnetics::ipol,1)) ? \magnetics::ipol[*,"G_001"] : make_signal(zero(shape(data(\magnetics::ipol))[0],1.0),*,dim_of(\magnetics::ipol,0))';... % G coils % Circuit 19
+  '\magnetics::iphi';... % Connection between tf coils % Circuit 20
+  };
 
 
 % Combined structure
@@ -93,17 +102,18 @@ combined_structure.coil_current_signs = coil_current_sign;
 combined_structure.coil_current_error = coil_current_error;
 combined_structure.power_supply_current_signs = power_supply_current_sign;
 combined_structure.circuit_names = circuit_names;
-combined_structure = get_circuiting(combined_structure); %Add circuiting information
+combined_structure = get_circuiting(combined_structure,doplot); %Add circuiting information
 
 %% Create the connection matrix from the previous information
-function circuit_struct = get_circuiting(circuit_struct)
+function circuit_struct = get_circuiting(circuit_struct,doplot)
+if nargin<2, doplot=0;end
 % Get dimension of the circuits
 circuit_struct.ntotcircuits = numel(circuit_struct.circuit_names);
 circuit_struct.ntotpowersupplies = numel(circuit_struct.power_supply_names);
 circuit_struct.ntotcoils = numel([circuit_struct.coil_names{1:end}]);
 circuit_struct.ncoilpercircuit = zeros(1,circuit_struct.ntotcircuits);
 for ii=1:circuit_struct.ntotcircuits
-   circuit_struct.ncoilpercircuit(ii) =  numel(circuit_struct.coil_names{ii});
+  circuit_struct.ncoilpercircuit(ii) =  numel(circuit_struct.coil_names{ii});
 end
 
 % Each circuit has only 1 power supply-> number of elements per circuit =
@@ -114,74 +124,72 @@ circuit_struct.ntotelements = sum(circuit_struct.nnodespercircuit);
 
 circuit_struct.connection_matrix = struct([]);
 
-power_supply_index = 0;
 coil_column_index = 2*circuit_struct.ntotpowersupplies ;
 for ii=1:circuit_struct.ntotcircuits
-    circuit_connection_matrix = zeros(circuit_struct.nnodespercircuit(ii), 2*circuit_struct.ntotelements);
-
-    % Put power supply connection
-    power_supply_index = ii;
-    if circuit_struct.power_supply_current_signs{power_supply_index} == 1
-        circuit_connection_matrix(1,2*(power_supply_index-1)+2) = 1;
-        circuit_connection_matrix(circuit_struct.nnodespercircuit(ii),2*(power_supply_index-1)+1) = 1;
-    elseif circuit_struct.power_supply_current_signs{power_supply_index} == -1
-        circuit_connection_matrix(1,2*(power_supply_index-1)+1) = 1;
-        circuit_connection_matrix(circuit_struct.nnodespercircuit(ii),2*(power_supply_index-1)+2) = 1;
-    end
-
-    % Put coil connection
-    for jj=1:circuit_struct.ncoilpercircuit(ii)
-        if circuit_struct.coil_current_signs{ii}(jj) == 1
-            circuit_connection_matrix(jj, coil_column_index + 2*(jj-1) + 1  ) = 1;
-            circuit_connection_matrix(jj + 1, coil_column_index + 2*(jj-1) + 2 ) = 1;
-
-        elseif circuit_struct.coil_current_signs{ii}(jj) == -1
-            circuit_connection_matrix(jj, coil_column_index + 2*(jj-1) + 2  ) = 1;
-            circuit_connection_matrix(jj + 1, coil_column_index + 2*(jj-1) + 1 ) = 1;
-        end
+  circuit_connection_matrix = zeros(circuit_struct.nnodespercircuit(ii), 2*circuit_struct.ntotelements);
+  
+  % Put power supply connection
+  power_supply_index = ii;
+  if circuit_struct.power_supply_current_signs{power_supply_index} == 1
+    circuit_connection_matrix(1,2*(power_supply_index-1)+2) = 1;
+    circuit_connection_matrix(circuit_struct.nnodespercircuit(ii),2*(power_supply_index-1)+1) = 1;
+  elseif circuit_struct.power_supply_current_signs{power_supply_index} == -1
+    circuit_connection_matrix(1,2*(power_supply_index-1)+1) = 1;
+    circuit_connection_matrix(circuit_struct.nnodespercircuit(ii),2*(power_supply_index-1)+2) = 1;
+  end
+  
+  % Put coil connection
+  for jj=1:circuit_struct.ncoilpercircuit(ii)
+    if circuit_struct.coil_current_signs{ii}(jj) == 1
+      circuit_connection_matrix(jj, coil_column_index + 2*(jj-1) + 1  ) = 1;
+      circuit_connection_matrix(jj + 1, coil_column_index + 2*(jj-1) + 2 ) = 1;
+      
+    elseif circuit_struct.coil_current_signs{ii}(jj) == -1
+      circuit_connection_matrix(jj, coil_column_index + 2*(jj-1) + 2  ) = 1;
+      circuit_connection_matrix(jj + 1, coil_column_index + 2*(jj-1) + 1 ) = 1;
     end
-
-    coil_column_index = coil_column_index + 2*circuit_struct.ncoilpercircuit(ii);
-    circuit_struct.connection_matrix{ii} = circuit_connection_matrix;
-
-    % Plot all the connaction matrices as a check
-    doplot = 0;
-    if doplot
+  end
+  
+  coil_column_index = coil_column_index + 2*circuit_struct.ncoilpercircuit(ii);
+  circuit_struct.connection_matrix{ii} = circuit_connection_matrix;
+  
+  % Plot all the connaction matrices as a check
+  if doplot
     plot_connection_matrix(circuit_connection_matrix, circuit_struct.power_supply_names, circuit_struct.coil_names);
-    end
-
+  end
+  
 end
 
 %% Plot connection matrix
-function plot_connection_matrix(mat, psnames, cnames, circuitname, circuit )
+function plot_connection_matrix(mat, psnames, cnames) %, circuitname, circuit
 % Plot the value of a matrix in separated block
 figure
-b = zeros([size(mat)]+1);
+b = zeros(size(mat)+1);
 b(1:end-1, 1:end-1) = mat;
 
 pcolor(b)
 
-yti = [1:size(b,1)]+0.5;
-xti = [1:size(b,2)]+0.5;
+yti = (1:size(b,1))+0.5;
+xti = (1:size(b,2))+0.5;
 
-ylab = cellstr(num2str([1:size(b,1)-1]'));
+ylab = cellstr(num2str((1:size(b,1)-1).'));
 index = 0;
-xlab = {};
+xlab = cell(1,numel(psnames));
 % Get the labels
 for ii=1:numel(psnames)
-    index = index +1;
-    xlab{index} = [psnames{ii}{1} 'in'];
-    index = index +1;
-    xlab{index} = [psnames{ii}{1} 'out'];
+  index = index +1;
+  xlab{index} = [psnames{ii}{1} 'in'];
+  index = index +1;
+  xlab{index} = [psnames{ii}{1} 'out'];
 end
 for ii=1:numel(cnames)
-    for jj=1:numel(cnames{ii})
-
-        index = index +1;
-        xlab{index} = [cnames{ii}{jj} 'in'];
-        index = index +1;
-        xlab{index} = [cnames{ii}{jj} 'out'];
-    end
+  for jj=1:numel(cnames{ii})
+    
+    index = index +1;
+    xlab{index} = [cnames{ii}{jj} 'in'];
+    index = index +1;
+    xlab{index} = [cnames{ii}{jj} 'out'];
+  end
 end
 
 shg