diff --git a/crpptbx/AUG/aug_help_parameters.m b/crpptbx/AUG/aug_help_parameters.m
index fef32e4125a0f3822d7ac048216e646b183d9587..6d4c02bbcd234fd731eced94f7048be1e58b7adc 100644
--- a/crpptbx/AUG/aug_help_parameters.m
+++ b/crpptbx/AUG/aug_help_parameters.m
@@ -27,16 +27,16 @@ help_struct_all = struct(...
 % $$$ help_struct_all.time_interval = ['if provided sets a specific time interval [tstart tend].' ...
 % $$$                     char(10) 'cxrs: (time_interval can have several nbs) take data and average over time interval(s) only, plots from CXRS_get_profiles are then provided' ...
 % $$$                     ' as well'];
-% $$$ help_struct_all.fit_tension = ['smoothing value used in interpos fitting routine, -30 means ''30 times default value'', thus -1 often a' ...
-% $$$                     ' good value' char(10) ...
-% $$$                    'cxrs: if numeric, default for all cases, if structure, default for non given fields'];
+help_struct_all.fit_tension = ['smoothing value used in interpos fitting routine, -30 means ''30 times default value'', thus -1 often a' ...
+                    ' good value' char(10) ...
+		    'cxrs, nete: if numeric, default for all cases, if structure, default for non given fields'];
 help_struct_all.time = 'time(s) value(s) if relevant, for example eqdsk is provided by default only for time=1.0s';
 % $$$ help_struct_all.zshift = 'vertical shift of equilibrium, either for eqdsk (1 to shift to zaxis=0) or for mapping measurements on to rho surfaces [m]';
 help_struct_all.cocos = ['cocos value desired in output, uses eqdsk_cocos_transform. Note should use latter if a specific Ip and/or B0 sign' ...
                     'is wanted. See O. Sauter et al Comput. Phys. Commun. 184 (2013) 293'];
 % $$$ help_struct_all.edge = '0 (default), 1 to get edge Thomson values';
-% $$$ help_struct_all.fit = '0, no fit profiles, 1 (default) if fit profiles desired as well, relevant for _rho profiles. See also fit_type';
-% $$$ help_struct_all.fit_type = 'provenance of fitted profiles ''conf'' (default) from conf nodes, ''avg'' or ''local'' for resp. proffit: nodes';
+help_struct_all.fit = '0, no fit profiles, 1 (default) if fit profiles desired as well, relevant for _rho profiles. See also fit_type';
+help_struct_all.fit_type = 'type of fits ''std'' (default) uses diagnostic error bars, ''pedestal'', uses manual error bars with smaller values outside 0.8';
 help_struct_all.source = 'sxr: ''G'' (default, with ssx), camera name ''J'', ''G'', ...[[F-M], case insensitive;; cxrs: ''CEZ'' (default), ''CMZ''';
 help_struct_all.camera = ['[] (default, all), [i1 i2 ...] chord nbs ([1 3 5] if only chords 1, 3 and 5 are desired), ''central'' uses J_049'];
 help_struct_all.freq = '''slow'', default (means ssx, 500kHz), lower sampling; ''fast'' full samples 2MHz; integer value nn for downsampling every nn''th points';
diff --git a/crpptbx/AUG/gdat_aug.m b/crpptbx/AUG/gdat_aug.m
index b2c205afbc06d128c88460ab1f153db6a21f136d..60e0ccad5c3eacd2d4c1833385813491a4586928 100644
--- a/crpptbx/AUG/gdat_aug.m
+++ b/crpptbx/AUG/gdat_aug.m
@@ -524,7 +524,7 @@ elseif strcmp(mapping_for_aug.method,'switchcase')
       gdat_data.fit.raw.rhotornorm = [];
       gdat_data.fit.raw.ti.data = [];
       gdat_data.fit.raw.vrot.data = [];
-      fit_tension_default = -1.;
+      fit_tension_default = -1;
       if isfield(gdat_data.gdat_params,'fit_tension')
 	fit_tension = gdat_data.gdat_params.fit_tension;
       else
@@ -536,7 +536,7 @@ elseif strcmp(mapping_for_aug.method,'switchcase')
 	fit_tension = fit_tension_eff;
       else
 	if ~isfield(fit_tension,'ti'); fit_tension.ti = fit_tension_default; end
-	if ~isfield(fit_tension,'vrot '); fit_tension.vi = fit_tension_default; end
+	if ~isfield(fit_tension,'vrot '); fit_tension.vrot = fit_tension_default; end
       end
       gdat_data.gdat_params.fit_tension = fit_tension;
       %
@@ -547,6 +547,7 @@ elseif strcmp(mapping_for_aug.method,'switchcase')
 	gdat_data.fit.raw.vrot.data = NaN*ones(size(gdat_data.vrot.data));
 	rhotornormfit = linspace(0,1,161)';
 	gdat_data.fit.rhotornorm = rhotornormfit;
+	gdat_data.fit.t = gdat_data.t;
 	for it=1:length(gdat_data.t)
 	  % make rhotor->rhopol transformation for each time since equilibrium might have changed
 	  irhook=find(gdat_data.rhotornorm(:,it)>0 & gdat_data.rhotornorm(:,it)<1); % no need for ~isnan
@@ -1037,6 +1038,9 @@ elseif strcmp(mapping_for_aug.method,'switchcase')
     
     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    case {'ne_rho', 'te_rho', 'nete_rho'}
+    if ~isfield(gdat_data.gdat_params,'fit') || isempty(gdat_data.gdat_params.fit) || ~isnumeric(gdat_data.gdat_params.fit)
+      gdat_data.gdat_params.fit = 0;
+    end
     params_eff = gdat_data.gdat_params;
     params_eff.data_request=data_request_eff(1:2); % start with ne if nete_rho
     % get raw data
@@ -1165,6 +1169,77 @@ elseif strcmp(mapping_for_aug.method,'switchcase')
       gdat_data.data_fullpath=['pe=1.6e-19*ne*Te in data, .ne, .te ' gdat_data.data_fullpath(3:end)];
       gdat_data.label = 'pe';
     end
+
+    % defaults for fits, so user always gets std structure
+    gdat_data.fit.rhotornorm = []; % same for both ne and te
+    gdat_data.fit.rhopolnorm = [];
+    gdat_data.fit.t = [];
+    gdat_data.fit.te.data = [];
+    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.ne.data = [];
+    fit_tension_default = -0.1;
+    if isfield(gdat_data.gdat_params,'fit_tension')
+      fit_tension = gdat_data.gdat_params.fit_tension;
+    else
+      fit_tension = fit_tension_default;
+    end
+    if ~isstruct(fit_tension)
+      fit_tension_eff.te = fit_tension;
+      fit_tension_eff.ne = fit_tension;
+      fit_tension = fit_tension_eff;
+    else
+      if ~isfield(fit_tension,'te'); fit_tension.te = fit_tension_default; end
+      if ~isfield(fit_tension,'ne '); fit_tension.ne = fit_tension_default; end
+    end
+    gdat_data.gdat_params.fit_tension = fit_tension;
+    %
+    if gdat_data.gdat_params.fit==1
+      % add fits
+      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.ne.data = NaN*ones(size(gdat_data.ne.data));
+      rhotornormfit = linspace(0,1,161)';
+      gdat_data.fit.rhotornorm = rhotornormfit;
+      gdat_data.fit.t = gdat_data.t;
+      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.te.raw.rhotornorm(idata,it) = gdat_data.grids_1d.rhotornorm(idata,it);
+	  gdat_data.fit.te.raw.data(idata,it) = gdat_data.te.data(idata,it);
+	  gdat_data.fit.te.raw.error_bar(idata,it) = gdat_data.te.error_bar(idata,it);
+	  gdat_data.fit.ne.raw.rhotornorm(idata,it) = gdat_data.grids_1d.rhotornorm(idata,it);
+	  gdat_data.fit.ne.raw.data(idata,it) = gdat_data.ne.data(idata,it);
+	  gdat_data.fit.ne.raw.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);
+	end
+      end
+    end
+    
     
     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    case {'pgyro'}