diff --git a/matlab/IMAS/complete_IDS_CORSICA.m b/matlab/IMAS/complete_IDS_CORSICA.m
index 306f18c0533010eb8345a4b4ae282160a7543fb5..de1cb3c518148d0b051a669c1032070c5fa34d6a 100644
--- a/matlab/IMAS/complete_IDS_CORSICA.m
+++ b/matlab/IMAS/complete_IDS_CORSICA.m
@@ -1,9 +1,11 @@
-function IDS_out = complete_IDS_CORSICA(IDS_in,varargin)
+%function IDS_out = complete_IDS_CORSICA(IDS_in,varargin)
 %
 %
+
 %
-doread = 0;
-dosave = 0;
+doread = 1;
+dosave = 1;
+
 
 if doread
 % $$$   clear all
@@ -15,7 +17,7 @@ if doread
   data_path_in = '/NoTivoli/carpanes/LIU_RAP_ITER/CORSICA_ids/CORSICA_130510.mat';
   %path_IDS = '/NoTivoli/carpanes/LIU_RAP_ITER/CORSICA_ids/CORSICA_130506.mat';
 
-  data_path_out = '/NoTivoli/carpanes/LIU_RAP_ITER/CORSICA_ids/CORSICA_130510_extended_COCOS17.mat';
+  data_path_out = '/NoTivoli/carpanes/LIU_RAP_ITER/CORSICA_ids/CORSICA_130510_extended_COCOS17_trial.mat';
 
   % Load the IDS_in file
   IDS_out = load(data_path_in);
@@ -43,7 +45,6 @@ L = liuc(Pliuqe,G);
 %%  -------------------- ADD the missing information on the existing IDS_out CORSICA -----------------------
 
 %% Consider each circuit to be composed by only one coil
-% TODO NEED TO ADD THE VERTICAL STABILIZATION COIL STILL
 tmp = data_coils();
 for ii = 1:numel(tmp.names)
     for jj=1:numel(IDS_out.pf_active.coil)
@@ -61,30 +62,33 @@ for ii = 1:numel(tmp.names)
 end
 
 %% Add the data to the circuit
+tmp = data_circuits();
+Ncircuits = size(tmp,1);
 Ncoils = numel(IDS_out.pf_active.coil);
-for ii=1:Ncoils-2
-    IDS_out.pf_active.circuit{ii}.name = IDS_out.pf_active.coil{ii}.name;
-    IDS_out.pf_active.supply{ii}.name = IDS_out.pf_active.coil{ii}.name;
-    IDS_out.pf_active.circuit{ii}.current.data = IDS_out.pf_active.coil{ii}.current.data/IDS_out.pf_active.coil{ii}.element{1}.turns_with_sign;
-    IDS_out.pf_active.circuit{ii}.current.time = IDS_out.pf_active.coil{ii}.current.time;
-    IDS_out.pf_active.circuit{ii}.connections = zeros(2, 4*Ncoils);
-    IDS_out.pf_active.circuit{ii}.connections(1, 2*ii) =1;
-    IDS_out.pf_active.circuit{ii}.connections(2, 2*ii-1) = 1;
-    IDS_out.pf_active.circuit{ii}.connections(1, 2*Ncoils + 2*ii-1) =1;
-    IDS_out.pf_active.circuit{ii}.connections(2, 2*Ncoils + 2*ii) =1;
-end
-% Vertical stabilization coil needs to be added still
-for ii=(Ncoils-1):Ncoils
-    IDS_out.pf_active.circuit{ii}.name = IDS_out.pf_active.coil{ii}.name;
-    IDS_out.pf_active.supply{ii}.name = IDS_out.pf_active.coil{ii}.name;
-    IDS_out.pf_active.circuit{ii}.name = IDS_out.pf_active.coil{ii}.name;
-    IDS_out.pf_active.circuit{ii}.current.data = zeros(LXC.nt, 1);
-    IDS_out.pf_active.circuit{ii}.current.time = LXC.t;
-    IDS_out.pf_active.circuit{ii}.connections = zeros(2, 4*Ncoils);
-    IDS_out.pf_active.circuit{ii}.connections(1, 2*ii) =1;
-    IDS_out.pf_active.circuit{ii}.connections(2, 2*ii-1) = 1;
-    IDS_out.pf_active.circuit{ii}.connections(1, 2*Ncoils + 2*ii-1) =1;
-    IDS_out.pf_active.circuit{ii}.connections(2, 2*Ncoils + 2*ii) =1;
+for ii=1:Ncircuits
+    IDS_out.pf_active.circuit{ii}.name = tmp{ii,1}{1};
+    IDS_out.pf_active.supply{ii}.name = tmp{ii,1}{1};
+    % Find index of the coils belonging to ii circuit
+    index_coil = [];
+    for jj =1:Ncoils
+      if any(strcmp(tmp{ii,2}, IDS_out.pf_active.coil{jj}.name))
+           index_coil = [index_coil jj];
+      end
+    end
+    % Add the current data to the circuit from the data on the coils.
+    % The coils must share the same current in the circuit so just take the first one.
+    IDS_out.pf_active.circuit{ii}.current.data = IDS_out.pf_active.coil{index_coil(1)}.current.data/IDS_out.pf_active.coil{index_coil(1)}.element{1}.turns_with_sign;
+    IDS_out.pf_active.circuit{ii}.current.time = IDS_out.pf_active.coil{index_coil(1)}.current.time;
+    
+    IDS_out.pf_active.circuit{ii}.connections = zeros(2*numel(index_coil) -1 , 2*Ncircuits + 2*Ncoils);
+    for jj = 1:numel(index_coil)
+    IDS_out.pf_active.circuit{ii}.connections( jj , 2*Ncircuits + 2*(index_coil(jj)-1) +1) = 1;
+    IDS_out.pf_active.circuit{ii}.connections( jj +1 , 2*Ncircuits + 2*(index_coil(jj)-1) +2) = 1;
+    end
+    
+    % Add the connection to the power supply
+    IDS_out.pf_active.circuit{ii}.connections(1,  2*ii -1) =   1; 
+    IDS_out.pf_active.circuit{ii}.connections(end,  2*ii ) =1; 
 end
 
 %% Limiter description
@@ -92,7 +96,6 @@ tmp = data_limiter();
 IDS_out.wall.description_2d{1}.limiter.unit{1}.outline.r = tmp.r;
 IDS_out.wall.description_2d{1}.limiter.unit{1}.outline.z = tmp.z;
 
-
 %% Vessel description
 % Understand what I need to do for the double layer vessel
 
@@ -195,7 +198,7 @@ IDS_out.magnetics.method{1}.diamagnetic_flux.data = -LXC.Ft;
 IDS_out.magnetics.method{1}.diamagnetic_flux.time = LXC.t;
 
 %% rBt
-%IDS_out.tf.time = LXC.t;
+IDS_out.tf.time = LXC.t;
 IDS_out.tf.b_field_tor_vacuum_r.time  = LXC.t;
 IDS_out.tf.b_field_tor_vacuum_r.data  = LXC.rBt;
 
diff --git a/matlab/IMAS/data_circuits.m b/matlab/IMAS/data_circuits.m
new file mode 100644
index 0000000000000000000000000000000000000000..18871a7009970fe6d5a6a68d5a2adcca44f3906f
--- /dev/null
+++ b/matlab/IMAS/data_circuits.m
@@ -0,0 +1,24 @@
+function data_struct = data_circuits()
+% Describe which coils belongs to which circuit
+% Information not available in the xls file. 
+% CREATE data consistent with this 
+
+% data structure is { {name circuit} , {coils in the circuit}}
+
+data_struct = { 
+  {'CS1'},  {'CS1U','CS1L'}, ; 
+  {'CS2U'}, {'CS2U'}; 
+  {'CS2L'}, {'CS2L'}; 
+  {'CS3U'}, {'CS3U'}; 
+  {'CS3L'}, {'CS3L'}; 
+  {'PF1'},  {'PF1'}; 
+  {'PF2'},  {'PF2'};
+  {'PF3'},  {'PF3'}; 
+  {'PF4'},  {'PF4'}; 
+  {'PF5'},  {'PF5'};
+  {'PF6'},  {'PF6'}; 
+  {'VS'},   {'VSU', 'VSL'}; 
+      };
+         
+
+end
\ No newline at end of file