diff --git a/crpptbx/AUG/gdat_aug.m b/crpptbx/AUG/gdat_aug.m
index 7aa23ce63764640242aec7e436484d084acf158c..84c95934de357e1581152fcf0e028391b51b94a8 100644
--- a/crpptbx/AUG/gdat_aug.m
+++ b/crpptbx/AUG/gdat_aug.m
@@ -1185,9 +1185,10 @@ elseif strcmp(mapping_for_aug.method,'switchcase')
     gdat_data.fit.te.drhotornorm = [];
     gdat_data.fit.ne.data = [];
     gdat_data.fit.ne.drhotornorm = [];
-    gdat_data.fit.raw.rhotornorm = [];
     gdat_data.fit.raw.te.data = [];
+    gdat_data.fit.raw.te.rhotornorm = [];
     gdat_data.fit.raw.ne.data = [];
+    gdat_data.fit.raw.ne.rhotornorm = [];
     fit_tension_default = -0.1;
     if isfield(gdat_data.gdat_params,'fit_tension')
       fit_tension = gdat_data.gdat_params.fit_tension;
@@ -1213,48 +1214,65 @@ elseif strcmp(mapping_for_aug.method,'switchcase')
     if gdat_data.gdat_params.fit==1
       % add fits
       gdat_data.fit.t = gdat_data.t;
-      gdat_data.fit.raw.rhotornorm = NaN*ones(size(gdat_data.te.data));
-      gdat_data.fit.raw.te.data = NaN*ones(size(gdat_data.te.data));
-      gdat_data.fit.raw.te.error_bar = NaN*ones(size(gdat_data.te.data));
-      gdat_data.fit.raw.ne.data = NaN*ones(size(gdat_data.ne.data));
-      gdat_data.fit.raw.ne.error_bar = NaN*ones(size(gdat_data.te.data));
       rhotornormfit = linspace(0,1,fit_nb_rho_points)';
       gdat_data.fit.rhotornorm = rhotornormfit;
       gdat_data.fit.rhopolnorm = NaN*ones(length(rhotornormfit),length(gdat_data.fit.t));
-      gdat_data.fit.te.data = gdat_data.fit.rhopolnorm;
-      gdat_data.fit.te.drhotornorm = gdat_data.fit.rhopolnorm;
-      gdat_data.fit.ne.data =gdat_data.fit.rhopolnorm;
-      gdat_data.fit.ne.drhotornorm = gdat_data.fit.rhopolnorm;
+      if any(strfind(data_request_eff,'te'))
+	gdat_data.fit.raw.te.data = NaN*ones(size(gdat_data.te.data));
+	gdat_data.fit.raw.te.error_bar = NaN*ones(size(gdat_data.te.data));
+	gdat_data.fit.raw.te.rhotornorm = NaN*ones(size(gdat_data.te.data));
+	gdat_data.fit.te.data = gdat_data.fit.rhopolnorm;
+	gdat_data.fit.te.drhotornorm = gdat_data.fit.rhopolnorm;
+      end
+      if any(strfind(data_request_eff,'ne'))
+	gdat_data.fit.raw.ne.data = NaN*ones(size(gdat_data.ne.data));
+	gdat_data.fit.raw.ne.error_bar = NaN*ones(size(gdat_data.ne.data));
+	gdat_data.fit.raw.ne.rhotornorm = NaN*ones(size(gdat_data.ne.data));
+	gdat_data.fit.ne.data =gdat_data.fit.rhopolnorm;
+	gdat_data.fit.ne.drhotornorm = gdat_data.fit.rhopolnorm;
+      end
       for it=1:length(gdat_data.t)
 	% make rhotor->rhopol transformation for each time since equilibrium might have changed
 	irhook=find(gdat_data.grids_1d.rhotornorm(:,it)>0 & gdat_data.grids_1d.rhotornorm(:,it)<1); % no need for ~isnan
 	[rhoeff isort]=sort(gdat_data.grids_1d.rhotornorm(irhook,it));
 	gdat_data.fit.rhopolnorm(:,it)=interpos([0; rhoeff; 1],[0; gdat_data.grids_1d.rhopolnorm(irhook(isort),it); 1],rhotornormfit,-0.1,[2 2],[0 1]);
-	idata = find(gdat_data.te.data(:,it)>0 & gdat_data.grids_1d.rhotornorm(:,it)<=1.05);
-	if length(idata)>0
-	  gdat_data.fit.raw.rhotornorm(idata,it) = gdat_data.grids_1d.rhotornorm(idata,it);
-	  gdat_data.fit.raw.te.data(idata,it) = gdat_data.te.data(idata,it);
-	  gdat_data.fit.raw.te.error_bar(idata,it) = gdat_data.te.error_bar(idata,it);
-	  gdat_data.fit.raw.ne.data(idata,it) = gdat_data.ne.data(idata,it);
-	  gdat_data.fit.raw.ne.error_bar(idata,it) = gdat_data.ne.error_bar(idata,it);
-	  [rhoeff,irhoeff] = sort(gdat_data.grids_1d.rhotornorm(idata,it));
-	  rhoeff = [0; rhoeff];
-	  teeff = gdat_data.te.data(idata(irhoeff),it);
-	  te_err_eff = gdat_data.te.error_bar(idata(irhoeff),it);
-	  % they are some strange low error_bars, so remove these by max(Te/error_bar)<=10; and changing it to large error bar
-	  ij=find(teeff./te_err_eff>10.);
-	  if ~isempty(ij); te_err_eff(ij) = teeff(ij)./0.1; end
-	  neeff = gdat_data.ne.data(idata(irhoeff),it);
-	  ne_err_eff = gdat_data.ne.error_bar(idata(irhoeff),it);
-	  ij=find(neeff./ne_err_eff>10.);
-	  if ~isempty(ij); ne_err_eff(ij) = neeff(ij)./0.1; end
-	  %
-	  teeff =  [teeff(1); teeff];
-	  te_err_eff =  [1e4; te_err_eff];
-	  neeff =  [neeff(1); neeff];
-	  ne_err_eff =  [1e21; ne_err_eff];
-	  [gdat_data.fit.te.data(:,it), gdat_data.fit.te.drhotornorm(:,it)] = interpos(rhoeff,teeff,rhotornormfit,fit_tension.te,[1 0],[0 0],te_err_eff);
-	  [gdat_data.fit.ne.data(:,it), gdat_data.fit.ne.drhotornorm(:,it)] = interpos(rhoeff,neeff,rhotornormfit,fit_tension.ne,[1 0],[0 0],ne_err_eff);
+	if any(strfind(data_request_eff,'te'))
+	  idatate = find(gdat_data.te.data(:,it)>0 & gdat_data.grids_1d.rhotornorm(:,it)<=1.05);
+	  if length(idatate)>0
+	    gdat_data.fit.raw.te.rhotornorm(idatate,it) = gdat_data.grids_1d.rhotornorm(idatate,it);
+	    gdat_data.fit.raw.te.data(idatate,it) = gdat_data.te.data(idatate,it);
+	    gdat_data.fit.raw.te.error_bar(idatate,it) = gdat_data.te.error_bar(idatate,it);
+	    [rhoeff,irhoeff] = sort(gdat_data.grids_1d.rhotornorm(idatate,it));
+	    rhoeff = [0; rhoeff];
+	    teeff = gdat_data.te.data(idatate(irhoeff),it);
+	    te_err_eff = gdat_data.te.error_bar(idatate(irhoeff),it);
+	    % they are some strange low error_bars, so remove these by max(Te/error_bar)<=10; and changing it to large error bar
+	    ij=find(teeff./te_err_eff>10.);
+	    if ~isempty(ij); te_err_eff(ij) = teeff(ij)./0.1; end
+	    %
+	    teeff =  [teeff(1); teeff];
+	    te_err_eff =  [1e4; te_err_eff];
+	    [gdat_data.fit.te.data(:,it), gdat_data.fit.te.drhotornorm(:,it)] = interpos(rhoeff,teeff,rhotornormfit,fit_tension.te,[1 0],[0 0],te_err_eff);
+	  end
+	end
+	if any(strfind(data_request_eff,'ne'))
+	  idatane = find(gdat_data.ne.data(:,it)>0 & gdat_data.grids_1d.rhotornorm(:,it)<=1.05);
+	  if length(idatane)>0
+	    gdat_data.fit.raw.ne.rhotornorm(idatane,it) = gdat_data.grids_1d.rhotornorm(idatane,it);
+	    gdat_data.fit.raw.ne.data(idatane,it) = gdat_data.ne.data(idatane,it);
+	    gdat_data.fit.raw.ne.error_bar(idatane,it) = gdat_data.ne.error_bar(idatane,it);
+	    [rhoeff,irhoeff] = sort(gdat_data.grids_1d.rhotornorm(idatane,it));
+	    rhoeff = [0; rhoeff];
+	    % they are some strange low error_bars, so remove these by max(Te/error_bar)<=10; and changing it to large error bar
+	    neeff = gdat_data.ne.data(idatane(irhoeff),it);
+	    ne_err_eff = gdat_data.ne.error_bar(idatane(irhoeff),it);
+	    ij=find(neeff./ne_err_eff>10.);
+	    if ~isempty(ij); ne_err_eff(ij) = neeff(ij)./0.1; end
+	    %
+	    neeff =  [neeff(1); neeff];
+	    ne_err_eff =  [1e21; ne_err_eff];
+	    [gdat_data.fit.ne.data(:,it), gdat_data.fit.ne.drhotornorm(:,it)] = interpos(rhoeff,neeff,rhotornormfit,fit_tension.ne,[1 0],[0 0],ne_err_eff);
+	  end
 	end
       end
     end