function [FWHMdat, err, TESTRUN] = FWHM_Calculation(Isum,wav, TESTRUN)
global DEBUG
err = 'ok';
[m, ~] = max(Isum);
mini = min(Isum);
if mini < 0,
mini = 0;
end
ind = find(Isum>=mini+(m-mini)/2);
nl = min(ind);
nr = max(ind);
dips = find(Isum(nl:nr)<=mini+(m-mini)/2);
if numel(dips)> 100
err = 'Uncontinuous spectrum!';
end
wavl = wav(nl);
wavr = wav(nr);
FWHM = abs(wavr-wavl);
bandwidth=2*FWHM/(wavr+wavl);
FWHM_f=abs(6e17*pi/wavl-6e17*pi/wavr);
if TESTRUN
nl = 100;
nr = 500;
wavl = wav(nl);
wavr = wav(nr);
FWHM = abs(wavr-wavl);
bandwidth=2*FWHM/(wavr+wavl);
FWHM_f=abs(6e17*pi/wavl-6e17*pi/wavr);
end
UsedSpectrum = [zeros(nl -1 ,1);Isum(nl:nr,1);zeros((length(Isum)-nr),1)];
FWHMdat = struct('FWHM',FWHM,'bandwidth',bandwidth,'FWHM_f',FWHM_f,'wavl',wavl,'wavr',wavr,'nr',nr,'nl',nl,'UsedSpectrum',UsedSpectrum);
if DEBUG==5, fprintf('FWHM width: %f Left index: %f Right Index: %f', FWHM, nl,nr), end
end