clear
% close all

% nom des versions du modele
e3name=[  {'t698ml_amip'} {'t705ml_amip'} {'t788ml_amip'} {'t815ml_amip'} {'default_amip'} {'entppe_amip'}];
% e3namep4k=[  {'t698ml_amip_p4k'} {'t705ml_amip_p4k'} {'t788ml_amip_p4k'} {'t815ml_amip_p4k'} {'default_amip_p4k'} {'entppe_amip_p4k'}];
mod=[ {'tun698ml'} {'tun705'}  {'tun788ml'} {'tun815ml'} {'default'} {'entppe'}];

% latitude et longitude des obs
lat_obs=[-88.75:2.5:88.75]; % le ; evite d afficher le vecteur/la matrice a l'ecran
lon_obs=[1.25:2.5:358.75];

% definition des matrices que l'on va creer (variables modeles interpolees sur la
% grille des obs)
cll(1:length(e3name),1:length(lon_obs),1:length(lat_obs),1:length(time))=nan;
cllliq(1:length(e3name),1:length(lon_obs),1:length(lat_obs),1:length(time))=nan;

cllobs(1:length(lon_obs),1:length(lat_obs),1:length(time))=nan;

% ouvre le fichier observation
ncload5 ~/Downloads/MapLowMidHigh330m_200701-201612_avg_CFMIP2.5_sat_2.9.nc
for t=1:length(time)
  cllobs(:,:,t)=regridmap2(cllcalipso(:,:,t),144);  
end
clear cllcalipso 

for j = 1:length(e3name)  % boucle sur les versions du modele 
j % affiche l 'iteration

% chargement du fichier netcdf pour chaque version du modele
ncload5(['/Volumes/T7_2TB/ModelE3/E3_cosp_F110',mod{j},'/',e3name{j},'/E3.cosp2d.2007-2012.',e3name{j},'.nc']) 

% inteprolation 2D
[xx2 zz2]=meshgrid(lat,lon);
[xx1 zz1]=meshgrid(lat_obs,lon_obs); 

  for t=1:length(time) % boucle sur la dimension temps
     cll(j,:,:,t)=interp2(xx2,zz2,regridmap2(squeeze(cllcalipso(:,:,t)),144),xx1,zz1);
     cllliq(j,:,:,t)=interp2(xx2,zz2,regridmap2(squeeze(cllcalipsoliq(:,:,t)),144),xx1,zz1);
  end
% regridmap2 c est pour reprojeter les coordonnées longitudes du modele sur la grille officielle CMIP
% grille modelE3 = -180 a 180, grille CMIP = 0 a 360

end

%%
% faire une figure
titl=[{'a. '} {'b. '} {'c. '} {'d. '} {'e. '} {'f. '}]; % titres pour les subplots

% tight_subplot c est pour avoir des subplots un peu moins espaces qu'en
% utilisant subplot(3,2,xx)
% la facon traditionelle c'est de faire subplot(3,2,1) subplot(3,2,2)
% etc...
figure
[ha, pos] = tight_subplot(3,2, [0.01 0.01],[.1 .1],[.1 .1]); % 3 lignes, 2 
% colonnes et le reste determine les espaces entre les subplots

for j=1:length(e3name)
axes(ha(j)) % numero de subplot

% on selectionne la low cloud cover pour chaque version du modele et on
% moyenne sur la dimension temps
tmp = squeeze(nanmean(cll(j,:,:,:),4)); % moyenne sur la dimension temps 
% (num 4) et supprime les dimensions en trop (squeeze)

corrtmp=correlnan(squeeze(nanmean(cllobs,3)),tmp);

   pcolor(lon_obs,lat_obs,tmp'); % affiche une map d'isocontour de nuages bas (le prime inverse les dimensions)
   shading flat; % enleve les traits/grilles dans le plot
   grid on % ajoute une grille
   axis([0 360 -90 90]) % determine les axes
   caxis([0 90]) % determine la valeur maximum afficher dans la barre de couleur
   daspect([1 1 1]) % conserve le bon ratio lat/lon pour la projection

   load coast % load les coordonnees des continents
   hold on % permet de rajouter un plot par dessus la figure existant sans l effacer
   plot(long,lati,'black-','linewidth',2); % plot les bordures des continents
   plot(long+360,lati,'black-','linewidth',2); % coordonnees -180 180 donc + 360 pour convertir en coordonnees 0 360
   
   xlabel('Longitude (\circE)','Fontname','times','fontsize',12) % legende pour les axes
   ylabel('Latitude (\circN)','Fontname','times','fontsize',12)
   title([titl{j},mod{j}],'Fontname','times','fontsize',12) % ajoute un titre a chaque subplot avec une lettre
   text(10,80,['r = ',num2str(round(corrtmp,2))],'fontname','times','color'...
       ,'black','backgroundcolor','white','fontsize',12) % rajoute un texte dans le subplot 
   %                                                    (round arrondit, et
   %                                                    num2str transforme
   %                                                    le nb en string)
   set(gcf,'color','white') % met le fond de la figure en blanc

   tmpbar=colorbar('west','ytick',[0:10:90],'fontname','times','fontsize',12);
 % ajouter une colorbar entre 0 et 90 en fonction des valeurs de cll
   ylabel(tmpbar,'LCF (%)','fontname','times','color','black','fontsize',12); % legend de la colorbar

   colormap(ha(j),'jet') % determine la couleur de la colorbar, jet c est les couleurs classiques

set(gca,'xtick',[-180:60:180],'xticklabel','','fontname','times','fontsize',12)
set(gca,'ytick',[-90:30:90],'yticklabel','','fontname','times','fontsize',12)
box on % affiche le cadre de la figure
set(gca,'layer','top') % met en avant la grille affichee par grid on

end

export_fig(1,'~/MATLAB/test.pdf','-pdf') % enregistre la figure en pdf -fig pour le format matlab

%%
% autre projection


% pour les tropiques
figure
[ha4, pos] = tight_subplot(3,2, [0.01 0.01],[.1 .1],[.1 .1]);
for j=1:length(e3name)
axes(ha4(j)) % numero de subplot
tmp = squeeze(nanmean(cll(j,:,:,:),4)); % moyenne sur la dimension temps 
m_proj('robinson','lon',[0 360],'lat',[lat_obs(23) lat_obs(50)]);
m_pcolor(lon_obs,lat_obs,tmp');
tmpbar=colorbar('west','ytick',[0:10:90],'fontname','times','fontsize',12);
ylabel(tmpbar,'LCF (%)','fontname','times','color','black','fontsize',12)

% ticklabels vides
m_grid('xtick',[0:60:360],'ytick',[-30:15:30],'xticklabels','','yticklabels','','fontname','times','linestyle',':','linewidth',0.2,'gridcolor',[.5 .5 .5]);   

% ticklabels remplis
m_grid('xtick',[0:60:360],'ytick',[-30:15:30],'fontname','times','linestyle',':','linewidth',0.2,'gridcolor',[.5 .5 .5]);

m_coast('color','black','linewidth',2) ; % coast
   caxis([0 90]) % determine la valeur maximum afficher dans la barre de couleur
colormap(ha4(j),'jet')

m_text(10,80,['r = ',num2str(round(corrtmp,2))],'fontname','times','fontsize',10,'background','white','edgecolor','black')
daspect([1 1 1])
end
set(gcf,'color','white')


% pour les poles
figure
tmp = squeeze(nanmean(cll(j,:,:,:),4)); % moyenne sur la dimension temps 
m_proj('stereographic','lat',90,'long',0,'radius',30);
m_pcolor(longitude,latitude,tmp')
m_grid('xtick',[-180:90:180],'ytick',[60 70 80],'linest','-');
hold on
m_coast('color','black','linewidth',2) ; % coast


