diff --git a/matlab/TCV_IMAS/tcv_get_ids_core_sources.m b/matlab/TCV_IMAS/tcv_get_ids_core_sources.m
index d30dd1a65774e20f8da837a6f58b406c358b23a6..87a8c431d4376bb4d0648c81dc242c998c6141f5 100644
--- a/matlab/TCV_IMAS/tcv_get_ids_core_sources.m
+++ b/matlab/TCV_IMAS/tcv_get_ids_core_sources.m
@@ -107,66 +107,91 @@ ec_total_cur(isnan(ec_total_cur)) = 0;
 
 for i = 1:nb_launchers
     for ii = 1:ec_n_t
-    % ec, need to find matching time index
-    ids_core_sources.source{last_index+i}.profiles_1d{ii}.time = ec_t_grid(ii); % profiles time 
-    ids_core_sources.source{last_index+i}.global_quantities{ii}.time = ec_t_grid(ii); % globals time
-    [~, ec_idx] = min(abs(ec_time-ec_t_grid(ii)));
-    if ec_time(ec_idx) == ec_t_grid(ii) % same grid 
-        % current density (to adapt to <J.B>/B0)
-        ids_core_sources.source{last_index+i}.profiles_1d{ii}.j_parallel = ...
-          ec_data.cd_dens.data(:,end,ec_idx)';
-        % integrated current density (to adapt to INTEGRAL(<J.B>/B0)*ds_phi)
-        ids_core_sources.source{last_index+i}.profiles_1d{ii}.current_parallel_inside = ...
-          ec_data.cd_integrated.data(:,ii)'; 
+        ids_core_sources.source{last_index+i}.profiles_1d{ii}.time = ec_t_grid(ii); % profiles time 
+        ids_core_sources.source{last_index+i}.global_quantities{ii}.time = ec_t_grid(ii); % globals time
     
-    else
-        ids_core_sources.source{last_index+i}.profiles_1d{ii}.j_parallel = ...
-          zeros(1,numel(ec_data.cd_dens.x(1,:)))';
-        %ids_core_sources.source{last_index+i}.profiles_1d{ii}.current_parallel_inside = ...
-        %  zeros(1,numel(ec_data.cd_integrated.x(1,:)))';
-    end
-    % globals
-    ids_core_sources.source{last_index+i}.global_quantities{ii}.time = ec_t_grid(ii);
-    ids_core_sources.source{last_index+i}.global_quantities{ii}.power = ec_total_pow(ii);
-    ids_core_sources.source{last_index+i}.global_quantities{ii}.current_parallel = ec_total_cur(ii);
+        % globals
+        ids_core_sources.source{last_index+i}.global_quantities{ii}.time = ec_t_grid(ii);
+        ids_core_sources.source{last_index+i}.global_quantities{ii}.power = ec_total_pow(ii);
+        ids_core_sources.source{last_index+i}.global_quantities{ii}.current_parallel = ec_total_cur(ii);
     end
 end
 
 % interpoating p_dens profiles from 'ec_time' grid (toray time nodes) to 'ec_t_grid' (injected power time)
 
 p_dens = ec_data.p_dens.data;
+p_integrated = ec_data.p_integrated.data;
+cd_dens = ec_data.cd_dens.data;
+cd_integrated = ec_data.cd_integrated.data;
+
 p_ec_injected = powers_gdat.ec.data;
 it = iround_os(ec_t_grid,ec_time);
 sparse_p_ec_injected = p_ec_injected(it,:); % injected ec power vals corresponding to ec_time grid
 
 % calculate normalised profiles on ec_time grid
 norm_p_dens = zeros(size(p_dens, 1), nb_launchers+1, length(ec_time));
+norm_p_integrated = zeros(size(p_integrated, 1), nb_launchers+1, length(ec_time));
+norm_cd_dens = zeros(size(cd_dens, 1), nb_launchers+1, length(ec_time));
+norm_cd_integrated = zeros(size(cd_integrated, 1), nb_launchers+1, length(ec_time));
 for t = 1:length(ec_time)
-    normalised = zeros(size(p_dens, 1), nb_launchers+1);
+    norm_p_dens_temp = zeros(size(p_dens, 1), nb_launchers+1);
+    norm_p_integrated_temp = zeros(size(p_integrated, 1), nb_launchers+1);
+    norm_cd_dens_temp = zeros(size(cd_dens, 1), nb_launchers+1);
+    norm_cd_integrated_temp = zeros(size(cd_integrated, 1), nb_launchers+1);
     for launcher = 1:nb_launchers+1
-        normalised(:, launcher) = p_dens(:, launcher, t) ./ sparse_p_ec_injected(t, launcher);
+        norm_p_dens_temp(:, launcher) = p_dens(:, launcher, t) ./ sparse_p_ec_injected(t, launcher);
+        norm_p_integrated_temp(:, launcher) = p_integrated(:, launcher, t) ./ sparse_p_ec_injected(t, launcher);
+        norm_cd_dens_temp(:, launcher) = cd_dens(:, launcher, t) ./ sparse_p_ec_injected(t, launcher);
+        norm_cd_integrated_temp(:, launcher) = cd_integrated(:, launcher, t) ./ sparse_p_ec_injected(t, launcher);
     end
-    norm_p_dens(:,:,t) = normalised;
+    norm_p_dens(:,:,t) = norm_p_dens_temp;
+    norm_p_integrated(:,:,t) = norm_p_integrated_temp;
+    norm_cd_dens(:,:,t) = norm_cd_dens_temp;
+    norm_cd_integrated(:,:,t) = norm_cd_integrated_temp;
 end
 
 % interpolate normalised p_dens profiles on ec_t_grid 
 interp_norm_p_dens = zeros(size(norm_p_dens, 1), size(norm_p_dens, 2), ec_n_t);
+interp_norm_p_integrated = zeros(size(norm_p_integrated, 1), size(norm_p_integrated, 2), ec_n_t);
+interp_norm_cd_dens = zeros(size(norm_cd_dens, 1), size(norm_cd_dens, 2), ec_n_t);
+interp_norm_cd_integrated = zeros(size(norm_cd_integrated, 1), size(norm_cd_integrated, 2), ec_n_t);
 for rho = 1:size(norm_p_dens, 1)
     for launcher = 1:size(norm_p_dens, 2)
-        profile = squeeze(norm_p_dens(rho, launcher, :));
-        interp_profile = interp1(ec_time, profile, ec_t_grid);
-        interp_norm_p_dens(rho, launcher, :) = interp_profile;
+        profile_p_dens = squeeze(norm_p_dens(rho, launcher, :));
+        profile_p_integrated = squeeze(norm_p_integrated(rho, launcher, :));
+        profile_cd_dens = squeeze(norm_cd_dens(rho, launcher, :));
+        profile_cd_integrated = squeeze(norm_cd_integrated(rho, launcher, :));
+        interp_profile_p_dens = interp1(ec_time, profile_p_dens, ec_t_grid);
+        interp_profile_p_integrated = interp1(ec_time, profile_p_integrated, ec_t_grid);
+        interp_profile_cd_dens = interp1(ec_time, profile_cd_dens, ec_t_grid);
+        interp_profile_cd_integrated = interp1(ec_time, profile_cd_integrated, ec_t_grid);
+        interp_norm_p_dens(rho, launcher, :) = interp_profile_p_dens;
+        interp_norm_p_integrated(rho, launcher, :) = interp_profile_p_integrated;
+        interp_norm_cd_dens(rho, launcher, :) = interp_profile_cd_dens;
+        interp_norm_cd_integrated(rho, launcher, :) = interp_profile_cd_integrated;
     end
 end
 
-% normalised & interpolated p_dens profiles * p_ec_injected on ec_t_grid
+% normalised & interpolated profiles * p_ec_injected on ec_t_grid
 interp_p_dens = zeros(size(interp_norm_p_dens, 1), size(interp_norm_p_dens, 2), ec_n_t);
+interp_p_integrated = zeros(size(interp_norm_p_integrated, 1), size(interp_norm_p_integrated, 2), ec_n_t);
+interp_cd_dens = zeros(size(interp_norm_cd_dens, 1), size(interp_norm_cd_dens, 2), ec_n_t);
+interp_cd_integrated = zeros(size(interp_norm_cd_integrated, 1), size(interp_norm_cd_integrated, 2), ec_n_t);
 for t = 1:length(ec_t_grid)
-    unnormalised = zeros(size(p_dens, 1), nb_launchers+1);
+    unnormalised_p_dens = zeros(size(p_dens, 1), nb_launchers+1);
+    unnormalised_p_integrated = zeros(size(p_integrated, 1), nb_launchers+1);
+    unnormalised_cd_dens = zeros(size(cd_dens, 1), nb_launchers+1);
+    unnormalised_cd_integrated = zeros(size(cd_integrated, 1), nb_launchers+1);
     for launcher = 1:nb_launchers+1
-        unnormalised(:,launcher) = interp_norm_p_dens(:,launcher,t).* p_ec_injected(t, launcher);
+        unnormalised_p_dens(:,launcher) = interp_norm_p_dens(:,launcher,t).* p_ec_injected(t, launcher);
+        unnormalised_p_integrated(:,launcher) = interp_norm_p_integrated(:,launcher,t).* p_ec_injected(t, launcher);
+        unnormalised_cd_dens(:,launcher) = interp_norm_cd_dens(:,launcher,t).* p_ec_injected(t, launcher);
+        unnormalised_cd_integrated(:,launcher) = interp_norm_cd_integrated(:,launcher,t).* p_ec_injected(t, launcher);
     end
-    interp_p_dens(:,:,t) = unnormalised;
+    interp_p_dens(:,:,t) = unnormalised_p_dens;
+    interp_p_integrated(:,:,t) = unnormalised_p_integrated;
+    interp_cd_dens(:,:,t) = unnormalised_cd_dens;
+    interp_cd_integrated(:,:,t) = unnormalised_cd_integrated;
 end
 
 for ii = 1:ec_n_t
@@ -175,6 +200,15 @@ for ii = 1:ec_n_t
           ec_data.p_dens.rhotor_norm(1,:);
         ids_core_sources.source{last_index+i}.profiles_1d{ii}.electrons.energy = ...
           interp_p_dens(:,i,ii);
+        ids_core_sources.source{last_index+i}.profiles_1d{ii}.electrons.power_inside = ...
+          interp_p_integrated(:,i,ii);
+      % current density (to adapt to <J.B>/B0)
+        ids_core_sources.source{last_index+i}.profiles_1d{ii}.j_parallel = ...
+          interp_cd_dens(:,i,ii);
+        % integrated current density (to adapt to INTEGRAL(<J.B>/B0)*ds_phi)
+        ids_core_sources.source{last_index+i}.profiles_1d{ii}.current_parallel_inside = ...
+          interp_cd_integrated(:,i,ii); 
+      
     end
 end
 last_index = last_index+nb_launchers;