% ctd_mld_gen.m
% programme calculant la profondeur de la thermocline
% pour tous les fichiers ctd d'une campagne

clear
ici=pwd;

dT=0.01;
dT2=0.1;
dT3=0.2;
drho=0.005;

[file_param_Survey,path_Survey]=uigetfile('../../Survey/*',' Fichier Parametre du Survey ');
path_Survey_file=[path_Survey,'CTD/Data_extraites/asc/'];
d=dir([path_Survey_file,'d*.asc'])
Survey=file_param_Survey(13:18);

st=1;
% recherche du caractere delimiteur utilise 
delimiteur='_';
file=[path_Survey_file,d(st).name];
fichier=file(findstr('stat',file):findstr('_dc',file)-1);
if isempty(findstr('_',fichier));delimiteur='-';end

% boucle sur le fichiers
for st =1:length(d);
    file=[path_Survey_file,d(st).name];
    ctd=load(file);
    
    fichier=file(findstr('stat',file):findstr('_dc',file)-1);
    Position_du_delimiteur=findstr(delimiteur,fichier);
    Station=fichier(5:Position_du_delimiteur(1)-1);
    Numero_Station=str2num(Station);
    Date=fichier(Position_du_delimiteur(1)+1:Position_du_delimiteur(2)-1);
    profil=fichier(Position_du_delimiteur(2)+1:end);
    Numero_profil=str2num(profil);
    
    % on enlève les bad Flags
    [m,n]=size(ctd);
    if n==13
        ind=find(ctd(:,n)==0);
        ctd=ctd(ind,:);
    elseif n==14
        ctd=[ctd(:,1:3) ctd(:,5:14)];
        n=13;
        ind=find(ctd(:,n)==0);
        ctd=ctd(ind,:);
    elseif n==12
        Flag=0*ones(m,1);
        ctd=[ctd Flag];
        n=13;
    end
    
    % critère en température
    for i=1:length(ctd)
        if (ctd(1,n-4)-ctd(i,n-4))>dT
            Numero_Station
            Numero_profil
            eval(['disp(''dt: ',num2str(i),''')'])
            p1=ctd(i,n-7);
            eval(['disp(''',num2str(p1),'m'')'])
            
            figure
            plot(ctd(:,n-4),-ctd(:,n-7))
            hold on
            y=-p1*ones(1,13);
            plot((13:25),y,'r')
            eval(['title(''Température potentielle - CTD n°',profil,' à la station ',Station,' - ',num2str(dT),''')'])
            
            break
        else
            p1=NaN;
        end
    end
    for i=1:length(ctd)
        if (ctd(1,n-4)-ctd(i,n-4))>dT2
            Numero_Station
            Numero_profil
            eval(['disp(''dt2: ',num2str(i),''')'])
            p2=ctd(i,n-7);
            eval(['disp(''',num2str(p2),'m'')'])
            
            y=-p2*ones(1,13);
            plot((13:25),y,'g')  
            break
        else
            p2=NaN;
        end
    end   
    for i=1:length(ctd)
        if (ctd(1,n-4)-ctd(i,n-4))>dT3
            Numero_Station
            Numero_profil
            eval(['disp(''dt3: ',num2str(i),''')'])
            p3=ctd(i,n-7);
            eval(['disp(''',num2str(p3),'m'')'])
            
            y=-p3*ones(1,13);
            plot((13:25),y,'m')
            hold off            
            break
        else
            p3=NaN;
        end
    end       
    % critère en masse volumique
    for i=1:length(ctd)
        if abs(ctd(1,n-3)-ctd(i,n-3))>drho
            Numero_Station
            Numero_profil
            eval(['disp(''drho: ',num2str(i),''')'])
            p4=ctd(i,n-7);
            eval(['disp(''',num2str(p4),'m'')'])
            
            figure
            plot(ctd(:,n-3),-ctd(:,n-7))
            hold on
            y=-p4*ones(1,4);
            plot((27:30),y,'r')
            hold off
            eval(['title(''Anomalie de masse volumique potentielle - CTD n°',profil,' à la station ',Station,''')'])
            
            break
        else
            p4=NaN;
        end
    end
    
    mld(st,1)=Numero_profil;
    mld(st,2)=Numero_Station;
    mld(st,3)=p1;
    mld(st,4)=p2;
    mld(st,5)=p3;
    mld(st,6)=p4;
end

mld=sortrows(mld,1);
cd (ici)
%eval(['save  mld_',Survey,'.txt mld -ascii'])


