function profiles=CXRS_fit_profies(V,Times,param_prof,param_plot);
% Fit profiles with "interpos" function
% Call profiles=CXRS_fit_profies(V,Times,param_prof,param_plot);

%sel=find((V.t+V.dt/2>=Times(1))&(V.t-V.dt/2<=Times(2)));
sel=find((V.t>=Times(1))&(V.t<=Times(2)));
x    = V.x(sel); dx   = V.dx(sel); y    = V.y(sel); dy   = V.dy(sel); t    = V.t(sel); dt   = V.dt(sel); sys  = V.sys(sel);

% shift of duplicated points in rho 
Xb=x;
for ip=1:length(Xb)
      sss=1:length(Xb); sss=find(sss~=ip);
      iff=(find(Xb(ip)==Xb(sss)));
      if length(iff)>0, Xb(iff(1))=Xb(iff(1))+1.e-8; end
end 
% sort points in rho
[x,iii]   = sort(Xb); 
if length(iii)==0 % No data
   profiles.t_lim=Times;
   profiles.x_prof=[];
   %profiles.x_prof= NaN(1,101)
   profiles.y_prof=[];
   profiles.dy_prof=[];
   profiles.use.x=[]; profiles.use.dx=[]; profiles.use.y=[]; profiles.use.dy=[]; profiles.use.t=[]; profiles.use.dt=[];profiles.use.sys=[];
   profiles.param_prof = param_prof;
   profiles.param_plot = param_plot;
   if param_plot.ON,
      if param_plot.clear, clf; end
      hve(1)=plot(0,NaN,'ok'); hold on
      set(hve(1),'Color',param_plot.color,'LineStyle','none','LineWidth',param_plot.lnwidth,'Marker',param_plot.typemk,'MarkerSize',param_plot.sizemk);
      profiles.plot_handle=hve(1);
   end
   return;
end
dx=dx(iii); y=y(iii); dy=dy(iii); t=t(iii); dt=dt(iii);sys=sys(iii); 
if isempty(param_prof.xout), param_prof.xout=linspace(min(x)*0.98,max(x)*1.02,101); end 
if ((min(x)-min(param_prof.xout))>0.45), 
   param_prof.xout=linspace(min(x)*0.85,max(param_prof.xout),length(param_prof.xout));
   %disp(sprintf('Redefine rho for %4.4f-%4.4fsec',Times)); 
end 
x_prof    = param_prof.xout;
XXmax=max([max(x)+0.01 1.3]);
if length(iii)>=10,
  %y_prof    = interpos(param_prof.kopt,x,y,x_prof,param_prof.taus,param_prof.nbc,param_prof.ybc,abs(dy)+param_prof.err_min);
  %disp('...before')
  y_prof    = interpos(param_prof.kopt,[0; x; XXmax],[y(1); y; 0],x_prof,param_prof.taus,param_prof.nbc,param_prof.ybc,[abs(y(1))+abs(dy(1))*10.; abs(dy); 0]+param_prof.err_min );
  %disp('...after')
else
  y_prof    = x_prof'*NaN;
end
y_prof=y_prof';
for ip=1:length(x_prof)
    W=1./dy.*1./(1.+((x-x_prof(ip))./dx).^2); W=W/sum(W);
    Wn=sum(1./(1.+((x-x_prof(ip))./dx).^2));
    dy_prof(ip) = sqrt(sum(W.*dy.^2))./sqrt(Wn);
end


profiles.t_lim=[min(t-dt/2.) max(t+dt/2.)];
profiles.x_prof=x_prof;
profiles.y_prof=y_prof;
profiles.dy_prof=dy_prof;
profiles.use.x=x; profiles.use.dx=dx; profiles.use.y=y; profiles.use.dy=dy; profiles.use.t=t; profiles.use.dt=dt;profiles.use.sys=sys;
profiles.param_prof = param_prof;
profiles.param_plot = param_plot;

if param_plot.ON,
   if param_plot.clear, clf; end
   % matlab version
   [v, ~] = version;
   mat_ver = str2double(v(1:3));
   hve=CXRS_errorbar(mat_ver, x,y,dx,dy); set(hve,'Color',param_plot.color); C=get(hve(1),'Color'); hold on
   set(hve(1),'Color',max(C-0.2,[0 0 0]),'LineStyle','none','LineWidth',1.0,'Marker',param_plot.typemk,'MarkerSize',param_plot.sizemk);
   set(hve(2),'Color',C); set(hve(1),'MarkerFaceColor',min(C+0.5,[1 1 1]),'MarkerEdgeColor',max(C-0.3,[0 0 0]));
   if param_plot.clear, grid on; if ~isnan(max(x_prof)), set(gca,'Xlim',[min(x_prof) max(x_prof)]); else, set(gca,'Xlim',[0 1.1]); end, end
   hh=plot(x_prof,y_prof,'-r');
   set(hh,'Color',max(C-0.1,[0 0 0]),'LineStyle','-','LineWidth',param_plot.lnwidth);
   if (size(y_prof,2)~=size(dy_prof,2)), y_prof=y_prof'; end
   % whos x_prof y_prof dy_prof
   hh=plot(x_prof,y_prof+dy_prof,'-r');
   set(hh,'Color',min(C+0.2,[1 1 1]),'LineStyle','--','LineWidth',1.);
   hh=plot(x_prof,y_prof-dy_prof,'-r');
   set(hh,'Color',min(C+0.2,[1 1 1]),'LineStyle','--','LineWidth',1.);
   profiles.plot_handle=hve(1);
end

return