diff --git a/matlab/create_gif_1D.m b/matlab/create_gif_1D.m
new file mode 100644
index 0000000000000000000000000000000000000000..d303e286f81ed5876122e48a8fbd987b0bafeb26
--- /dev/null
+++ b/matlab/create_gif_1D.m
@@ -0,0 +1,51 @@
+title1 = GIFNAME;
+FIGDIR = ['../results/',BASIC.SIMID,'/'];
+if ~exist(FIGDIR, 'dir')
+   mkdir(FIGDIR)
+end
+
+GIFNAME = [FIGDIR, GIFNAME,'.gif'];
+
+% Set colormap boundaries
+hmax = max(max(max(FIELD)));
+hmin = min(min(min(FIELD)));
+flag = 0;
+if hmax == hmin 
+    disp('Warning : h = hmin = hmax = const')
+else
+% Setup figure frame
+fig  = figure;
+    plot(X,FIELD(:,1)); % to set up
+    axis tight manual % this ensures that getframe() returns a consistent size
+    xlabel(XNAME); ylabel(FIELDNAME);
+  
+    in      = 1;
+    nbytes = fprintf(2,'frame %d/%d',in,numel(FIELD(1,1,:)));
+    for n = FRAMES % loop over selected frames
+        scale = max(FIELD(:,n));
+        plot(X,FIELD(:,n)/scale);
+        ylim([YMIN,YMAX]); xlim([XMIN,XMAX]);
+        title(['$t \approx$', sprintf('%.3d',ceil(T(n))), ', scaling = ',sprintf('%.1e',scale)]);
+        drawnow 
+        % Capture the plot as an image 
+        frame = getframe(fig); 
+        im = frame2im(frame); 
+        [imind,cm] = rgb2ind(im,64); 
+        % Write to the GIF File 
+        if in == 1 
+          imwrite(imind,cm,GIFNAME,'gif', 'Loopcount',inf); 
+        else 
+          imwrite(imind,cm,GIFNAME,'gif','WriteMode','append', 'DelayTime',DELAY); 
+        end 
+        % terminal info
+        while nbytes > 0
+          fprintf('\b')
+          nbytes = nbytes - 1;
+        end
+        nbytes = fprintf(2,'frame %d/%d',n,numel(FIELD(1,1,:)));
+        in = in + 1;
+    end
+    disp(' ')
+    disp(['Gif saved @ : ',GIFNAME])
+end
+
diff --git a/src/grid_mod.F90 b/src/grid_mod.F90
index 6fee21795b7ca3a969e475edcfaaea035f0ee47a..7845b73babb026e0306136dee38432209354c776 100644
--- a/src/grid_mod.F90
+++ b/src/grid_mod.F90
@@ -94,10 +94,14 @@ CONTAINS
     ENDIF
     ! Discretized r positions ordered as dx*(0 1 2 -3 -2 -1)
     ALLOCATE(rarray(irs:ire))
-    DO ir = irs,ire
-      rarray(ir) = deltar*(MODULO(ir-1,Nr/2)-Nr/2*FLOOR(2.*real(ir-1)/real(Nr)))
-    END DO
-    rarray(Nr/2+1) = -rarray(Nr/2+1)
+    IF (NR .GT. 1) THEN
+      DO ir = irs,ire
+        rarray(ir) = deltar*(MODULO(ir-1,Nr/2)-Nr/2*FLOOR(2.*real(ir-1)/real(Nr)))
+      END DO
+      rarray(Nr/2+1) = -rarray(Nr/2+1)
+    ELSE
+      rarray(1) = 0._dp
+    ENDIF
 
   END SUBROUTINE set_rgrid
 
@@ -134,21 +138,29 @@ CONTAINS
     ikrs = 1
     ikre = Nkr
     ! Grid spacings
-    deltakr = 2._dp*PI/Nr/deltar
-
+    IF ( Nr .GT. 1 ) THEN ! To avoid case with 0 intervals
+      deltakr = 2._dp*PI/Nr/deltar
+    ELSE
+      deltakr = 0;
+    ENDIF
     ! Discretized kr positions ordered as dk*(0 1 2)
     ALLOCATE(krarray(ikrs:ikre))
-    DO ikr = ikrs,ikre
-      ! krarray(ikr) = REAL(ikr-1,dp) * deltakr
-      krarray(ikr) = deltakr*(MODULO(ikr-1,Nkr/2)-Nkr/2*FLOOR(2.*real(ikr-1)/real(Nkr)))
-      if (krarray(ikr) .EQ. 0) THEN
-        ikr_0 = ikr
-      ENDIF
-    END DO
-    krarray(Nr/2+1) = -krarray(Nr/2+1)
+    IF ( Nr .GT. 1 ) THEN
+      DO ikr = ikrs,ikre
+        ! krarray(ikr) = REAL(ikr-1,dp) * deltakr
+        krarray(ikr) = deltakr*(MODULO(ikr-1,Nkr/2)-Nkr/2*FLOOR(2.*real(ikr-1)/real(Nkr)))
+        if (krarray(ikr) .EQ. 0) THEN
+          ikr_0 = ikr
+        ENDIF
+      END DO
+      krarray(Nr/2+1) = -krarray(Nr/2+1)
+    ELSE
+      krarray(1) = 0._dp
+      ikr_0 = 1
+    ENDIF
 
     ! Orszag 2/3 filter
-    two_third_krmax = 2._dp/3._dp*deltakr*Nkr
+    two_third_krmax = 2._dp/3._dp*deltakr*(Nkr/2)
     ALLOCATE(AA_r(ikrs:ikre))
     DO ikr = ikrs,ikre
       IF ( (krarray(ikr) .GT. -two_third_krmax) .AND. (krarray(ikr) .LT. two_third_krmax) ) THEN
@@ -183,7 +195,7 @@ CONTAINS
     ! kzarray(Nz/2+1) = -kzarray(Nz/2+1)
 
     ! Orszag 2/3 filter
-    two_third_kzmax = 2._dp/3._dp*deltakz*(Nkz/2);
+    two_third_kzmax = 2._dp/3._dp*deltakz*Nkz;
     ALLOCATE(AA_z(ikzs:ikze))
     DO ikz = ikzs,ikze
       IF ( (kzarray(ikz) .GT. -two_third_kzmax) .AND. (kzarray(ikz) .LT. two_third_kzmax) ) THEN
diff --git a/wk/analysis_1D.m b/wk/analysis_1D.m
new file mode 100644
index 0000000000000000000000000000000000000000..bcc714c87a234d380b4e23ed8959ce09ec09fd5f
--- /dev/null
+++ b/wk/analysis_1D.m
@@ -0,0 +1,218 @@
+default_plots_options
+%% load results
+JOBNUM = 00;
+filename = [BASIC.SIMID,'_','%.2d.h5'];
+filename = sprintf(filename,JOBNUM); disp(['Analysing ',filename])
+[Nipj, p_, j_, kr, kz, Ts, dt] = load_5D_data(filename, 'moments_i');
+Nepj                           = load_5D_data(filename, 'moments_e');
+Ni      = squeeze(Nipj(1,1,:,:,:));
+Ne      = squeeze(Nepj(1,1,:,:,:));
+PH      = squeeze(load_2D_data(filename, 'phi'));
+Ts      = Ts';
+Ns      = numel(Ts);
+dt_samp = mean(diff(Ts));
+% Build grids
+Nkr = numel(kr); Nkz = numel(kz);
+[KZ,KR] = meshgrid(kz,kr);
+Lkr = max(kr)-min(kr); Lkz = max(kz)-min(kz);
+dkr = Lkr/(Nkr-1); dkz = Lkz/(Nkz-1);
+Lk = max(Lkr,Lkz);
+
+dr = 2*pi/Lk; dz = 2*pi/Lk;
+Nr = max(Nkr,Nkz) * (Nkr > 1) + (Nkr == 1);  Nz = Nkz;
+r = dr*(-Nr/2:(Nr/2-1)); Lr = max(r)-min(r);
+z = dz*(-Nz/2:(Nz/2-1)); Lz = max(z)-min(z);
+[YY,XX] = meshgrid(z,r);
+% Analysis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% IFFT
+ne   = zeros(Nz, Ns);
+ni   = zeros(Nz, Ns);
+phi  = zeros(Nz, Ns);
+
+for it = 1:numel(PH(1,:))
+    NE_ = Ne(:,it); NN_ = Ni(:,it); PH_ = PH(:,it);
+    F_          = (ifft((NE_),Nz));
+    ne(:,it)= real(fftshift(F_));
+    F_          = (ifft((NN_),Nz));
+    ni(:,it)  = real(fftshift(F_));
+    F_          = (ifft((PH_),Nz));
+    phi(:,it) = real(fftshift(F_));
+end
+
+% Post processing
+ne_00    = zeros(1,Ns);    % Time evolution of ne(r,z) at origin
+Ne_gm    = zeros(1,Ns);    % Time evolution of Ne(k) max gamma (max real)
+ni_00    = zeros(1,Ns);    % .
+Ni_gm    = zeros(1,Ns);    % .
+phi_00   = zeros(1,Ns);    % .
+E_pot    = zeros(1,Ns);    % Potential energy n^2
+E_kin    = zeros(1,Ns);    % Kinetic energy grad(phi)^2
+ExB      = zeros(1,Ns);    % ExB drift intensity \propto |\grad \phi|
+CFL      = zeros(1,Ns);    % CFL time step
+Ddz = 1i*kz;
+[~,iz0]  = min(abs(z)); % index of z==0
+[~,ikz1] = min(abs(kz-round(1/dkz)*dkz)); % index of kz==1
+for it = 1:numel(PH(1,:))
+    NE_ = squeeze(Ne(:,it)); NN_ = squeeze(Ni(:,it)); PH_ = squeeze(PH(:,it));
+
+    ne_00(it)      = ne(iz0,it);
+    Ne_gm(it)      = max(real(Ne(:,it)));
+    
+    ni_00(it)      = ni(iz0,it);
+    Ni_gm(it)      = max(real(Ni(:,it)));
+    
+    phi_00(it)     = phi(iz0,it);
+    
+    E_pot(it)   = pi/Lz*sum(abs(NN_).^2)/Nkz; % integrate through Parseval id
+    E_kin(it)   = pi/Lz*sum(abs(Ddz.*PH_).^2)/Nkz;
+    ExB(it)     = max(abs(phi(3:end,it)-phi(1:end-2,it))'/(2*dz));
+end
+E_kin_KZ = abs(Ddz.*PH(:,it)).^2;
+dEdt     = diff(E_pot+E_kin)./diff(Ts);
+
+% Growth rate
+gamma_Ne = zeros(1,Nkz);
+gamma_Ni = zeros(1,Nkz);
+gamma_PH = zeros(1,Nkz);
+for ikz = 1:Nkz
+    gamma_Ne(ikz) = real(LinearFit_s(Ts,Ne(ikz,:)));
+    gamma_Ni(ikz) = real(LinearFit_s(Ts,Ni(ikz,:)));
+    gamma_PH(ikz) = real(LinearFit_s(Ts,PH(ikz,:)));
+end
+
+%% PLOTS
+%% Time evolutions
+fig = figure; FIGNAME = ['t_evolutions',sprintf('_%.2d',JOBNUM)];
+    subplot(221)
+        semilogy(Ts,abs(ne_00),'-','DisplayName','$n_e^{00}$'); hold on;
+        semilogy(Ts,abs(ni_00),'-','DisplayName','$n_i^{00}$');
+        grid on; xlabel('$t$'); ylabel('$|n_a(x=0,y=0)|$');
+    subplot(222)
+        semilogy(Ts,abs(Ni_gm),'-','DisplayName','$\phi$')
+        grid on; xlabel('$t$'); ylabel('$|\tilde n(k_r\approx 1,k_z\approx 1)|$');
+    subplot(223)
+        semilogy(Ts,E_kin+E_pot,'-','DisplayName','$\sum|ik\tilde\phi_i|^2+\sum|\tilde n_i|^2$')
+        hold on;
+        grid on; xlabel('$t$'); ylabel('$E$'); legend('show');
+FMT = '.fig'; save_figure
+
+%% Growth rate
+fig = figure; FIGNAME = ['growth_rate',sprintf('_%.2d',JOBNUM)];
+    subplot(221)
+        plot(kz,gamma_Ne,'-'); hold on;
+        grid on; xlabel('$k_z$'); ylabel('$\gamma(N_e^{00})$');
+    subplot(222)
+        plot(kz,gamma_Ni,'-'); hold on;
+        grid on; xlabel('$k_z$'); ylabel('$\gamma(N_i^{00})$');
+    subplot(223)
+        plot(kz,gamma_PH,'-'); hold on;
+        grid on; xlabel('$k_z$'); ylabel('$\gamma(\tilde\phi)$'); legend('show');
+FMT = '.fig'; save_figure
+
+%% GIFS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+DELAY = 0.07; skip_ = 10;
+FRAMES = 1:skip_:numel(Ts);
+if 0
+%% Density electron
+GIFNAME = ['ne',sprintf('_%.2d',JOBNUM)];
+FIELD = real(ne); X = z; T = Ts;
+FIELDNAME = '$n_e^{00}$'; XNAME = '$z$';
+XMIN = -20; XMAX = 20; YMIN = -0.6; YMAX = 1.1;
+create_gif_1D
+%% Density ion
+GIFNAME = ['ni',sprintf('_%.2d',JOBNUM)]; 
+FIELD = real(ni); X = z; T = Ts;
+FIELDNAME = '$n_i^{00}$'; XNAME = '$z$';
+XMIN = -20; XMAX = 20; YMIN = -0.6; YMAX = 1.1;
+create_gif_1D
+%% Phi
+GIFNAME = ['phi',sprintf('_%.2d',JOBNUM)]; 
+FIELD = real(phi); X = z; T = Ts;
+FIELDNAME = '$\phi$'; XNAME = '$z$';
+XMIN = -20; XMAX = 20; YMIN = -1.1; YMAX = 1.1;
+create_gif_1D
+%% Density electron frequency
+GIFNAME = ['Ni',sprintf('_%.2d',JOBNUM)]; 
+FIELD = fftshift(real(Ni)); X = kr\z; T = Ts;
+FIELDNAME = '$N_i^{00}$'; XNAME = '$k_z$';
+create_gif_1D
+end
+
+if 0
+%% Space-Time diagrams at r = 0
+plt = @(x) real(x);
+fig = figure; FIGNAME = ['z_space_time_diag',sprintf('_%.2d',JOBNUM)];
+    [TY,TX] = meshgrid(Ts,z);
+subplot(221)% density
+    pclr = pcolor(TX,TY,(plt(ne))); set(pclr, 'edgecolor','none'); colorbar;
+    xlabel('$z\,(r=0)$'); ylabel('$t$'); title('$n_e^{00}$');
+subplot(222)% density
+    pclr = pcolor(TX,TY,(plt(ni))); set(pclr, 'edgecolor','none'); colorbar;
+    xlabel('$z\,(r=0)$'); ylabel('$t$'); title('$n_i^{00}$');
+subplot(223)% density
+    pclr = pcolor(TX,TY,(plt(phi))); set(pclr, 'edgecolor','none'); colorbar;
+    xlabel('$z\,(r=0)$'); ylabel('$t$'); title('$\phi$');
+FMT = '.fig'; save_figure
+
+%% Space-Time diagrams at kr=0
+plt = @(x) abs(x);
+fig = figure; FIGNAME = ['kz_space_time_diag',sprintf('_%.2d',JOBNUM)];
+    [TY,TX] = meshgrid(Ts,kz);
+subplot(221)% density
+    pclr = pcolor(TX,TY,(plt(Ne))); set(pclr, 'edgecolor','none'); colorbar;
+    xlabel('$kz$'); ylabel('$t$'); title('$\textrm{Re}(N_e^{00})|_{k_r=0}$');
+subplot(222)% density
+    pclr = pcolor(TX,TY,(plt(Ni))); set(pclr, 'edgecolor','none'); colorbar;
+    xlabel('$kz$'); ylabel('$t$'); title('$\textrm{Re}(N_i^{00})|_{k_r=0}$');
+subplot(223)% density
+    pclr = pcolor(TX,TY,(plt(PH))); set(pclr, 'edgecolor','none'); colorbar;
+    xlabel('$kz$'); ylabel('$t$'); title('$\textrm{Re}(\tilde\phi)|_{k_r=0}$');
+FMT = '.fig'; save_figure 
+end
+
+if 0
+%% Mode time evolution
+[~,ik05] = min(abs(kz-0.50));
+[~,ik10] = min(abs(kz-1.00));
+[~,ik15] = min(abs(kz-1.50));
+[~,ik20] = min(abs(kz-2.00));
+
+fig = figure; FIGNAME = ['frame',sprintf('_%.2d',JOBNUM)];
+    subplot(221); plt = @(x) (abs(x));
+        semilogy(Ts,plt(PH(ik05,:)),'DisplayName', '$k_z = 0.5$'); hold on
+        semilogy(Ts,plt(PH(ik10,:)),'DisplayName', '$k_z = 1.0$')
+        semilogy(Ts,plt(PH(ik15,:)),'DisplayName', '$k_z = 1.5$')
+        semilogy(Ts,plt(PH(ik20,:)),'DisplayName', '$k_z = 2.0$')
+        xlabel('$t$'); ylabel('$\hat\phi$'); legend('show');
+        semilogy(Ts,abs(PH(ik05,end)).*exp(gamma_PH(ik05).*(Ts-Ts(end))),'--k')
+        semilogy(Ts,abs(PH(ik10,end)).*exp(gamma_PH(ik10).*(Ts-Ts(end))),'--k')
+    subplot(222); plt = @(x) (abs(x));
+        semilogy(Ts,plt(Ni(ik05,:)),'DisplayName', '$k_z = 0.5$'); hold on
+        semilogy(Ts,plt(Ni(ik10,:)),'DisplayName', '$k_z = 1.0$')
+        semilogy(Ts,plt(Ni(ik15,:)),'DisplayName', '$k_z = 1.5$')
+        semilogy(Ts,plt(Ni(ik20,:)),'DisplayName', '$k_z = 2.0$')        
+        xlabel('$t$'); ylabel('$\hat n_i^{00}$'); legend('show');
+    subplot(223); plt = @(x) (abs(x));
+        semilogy(Ts,plt(Ne(ik05,:)),'DisplayName', '$k_z = 0.5$'); hold on
+        semilogy(Ts,plt(Ne(ik10,:)),'DisplayName', '$k_z = 1.0$')
+        semilogy(Ts,plt(Ne(ik15,:)),'DisplayName', '$k_z = 1.5$')
+        semilogy(Ts,plt(Ne(ik20,:)),'DisplayName', '$k_z = 2.0$')  
+        xlabel('$t$'); ylabel('$\hat n_e^{00}$'); legend('show');
+FMT = '.fig'; save_figure
+end
+
+if 0
+%% Show frame
+it = min(70,numel(Ts));
+fig = figure; FIGNAME = ['frame',sprintf('_%.2d',JOBNUM)];
+    subplot(221); plt = @(x) (abs(x));
+        plot(kz,plt(PH(:,it)))
+        xlabel('$k_r$'); ylabel('$k_z$'); title(sprintf('t=%.3d',Ts(it))); legend('$\hat\phi$');
+    subplot(222); plt = @(x) (abs(x));
+        plot(kz,plt(Ni(:,it)))
+        xlabel('$k_r$'); ylabel('$k_z$'); title(sprintf('t=%.3d',Ts(it))); legend('$\hat n_i^{00}$');
+    subplot(223); plt = @(x) (abs(x));
+        plot(kz,plt(Ne(:,it)))
+        xlabel('$k_r$'); ylabel('$k_z$'); title(sprintf('t=%.3d',Ts(it))); legend('$\hat n_e^{00}$');
+FMT = '.fig'; save_figure
+end
\ No newline at end of file
diff --git a/wk/analysis_2D.m b/wk/analysis_2D.m
new file mode 100644
index 0000000000000000000000000000000000000000..25ad5d176d24306a498563c0f4a8d8a77a23a3b8
--- /dev/null
+++ b/wk/analysis_2D.m
@@ -0,0 +1,252 @@
+%% load results
+JOBNUM = 00;
+filename = [BASIC.SIMID,'_','%.2d.h5'];
+filename = sprintf(filename,JOBNUM); disp(['Analysing ',filename])
+[Nipj, p_, j_, kr, kz, Ts, dt] = load_5D_data(filename, 'moments_i');
+Nepj                           = load_5D_data(filename, 'moments_e');
+Ni      = squeeze(Nipj(1,1,:,:,:));
+Ne      = squeeze(Nepj(1,1,:,:,:));
+PH      = load_2D_data(filename, 'phi');
+Ts      = Ts';
+Ns      = numel(Ts);
+dt_samp = mean(diff(Ts));
+if strcmp(OUTPUTS.write_non_lin,'.true.')
+    Sipj    = load_5D_data(filename, 'Sipj');
+    Sepj    = load_5D_data(filename, 'Sepj');
+    SNi      = squeeze(Sipj(1,1,:,:,:));
+    SNe      = squeeze(Sepj(1,1,:,:,:));
+end
+% Build grids
+Nkr = numel(kr); Nkz = numel(kz);
+[KZ,KR] = meshgrid(kz,kr);
+Lkr = max(kr)-min(kr); Lkz = max(kz)-min(kz);
+dkr = Lkr/(Nkr-1); dkz = Lkz/(Nkz-1);
+Lk = max(Lkr,Lkz);
+
+dr = 2*pi/Lk; dz = 2*pi/Lk;
+Nr = max(Nkr,Nkz);         Nz = Nr;
+r = dr*(-Nr/2:(Nr/2-1)); Lr = max(r)-min(r);
+z = dz*(-Nz/2:(Nz/2-1)); Lz = max(z)-min(z);
+[YY,XX] = meshgrid(z,r);
+% Analysis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% IFFT
+ne   = zeros(Nr,Nz);
+ni     = zeros(Nr,Nz);
+phi    = zeros(Nr,Nz);
+
+for it = 1:numel(PH(1,1,:))
+    NE_ = Ne(:,:,it); NN_ = Ni(:,:,it); PH_ = PH(:,:,it);
+    F_          = (ifft2((NE_),Nr,Nz));
+    ne(:,:,it)= real(fftshift(F_));
+    F_          = (ifft2((NN_),Nr,Nz));
+    ni(:,:,it)  = real(fftshift(F_));
+    F_          = (ifft2((PH_),Nr,Nz));
+    phi(:,:,it) = real(fftshift(F_));
+end
+
+% Post processing
+Ne_ST_kr = zeros(Nkr,Ns);   % Space-Time of max_kz Ne(k)
+Ne_ST_kz = zeros(Nkz,Ns);   % ''            max_kr Ne(k)
+ne_ST_r  = zeros(Nr,Ns);   % Space-Time of ne(z==0)
+ne_ST_z  = zeros(Nz,Ns);   % ''               r==0
+ne_00    = zeros(1,Ns);    % Time evolution of ne(r,z) at origin
+Ne_gm    = zeros(1,Ns);    % Time evolution of Ne(k) max gamma (max real)
+Ni_ST_kr = zeros(Nkr,Ns);   % same for ions
+Ni_ST_kz = zeros(Nkz,Ns);   % .
+ni_ST_r  = zeros(Nr,Ns);   % . 
+ni_ST_z  = zeros(Nz,Ns);   % .
+ni_00    = zeros(1,Ns);    % .
+Ni_gm    = zeros(1,Ns);    % .
+PH_ST_kr = zeros(Nkr,Ns);   % same for ES-potential
+PH_ST_kz = zeros(Nkz,Ns);   % . 
+phi_ST_r = zeros(Nr,Ns);   % .
+phi_ST_z = zeros(Nz,Ns);   % .
+phi_00   = zeros(1,Ns);    % .
+Sne_norm = zeros(1,Ns);    % Time evolution of the amp of e nonlin term
+Sni_norm = zeros(1,Ns);    % Time evolution of the amp of i nonlin term
+E_pot    = zeros(1,Ns);    % Potential energy n^2
+E_kin    = zeros(1,Ns);    % Kinetic energy grad(phi)^2
+ExB      = zeros(1,Ns);    % ExB drift intensity \propto |\grad \phi|
+CFL      = zeros(1,Ns);    % CFL time step
+Ddr = 1i*KR; Ddz = 1i*KZ; lapl   = Ddr.^2 + Ddz.^2; 
+[~,ir0]  = min(abs(r)); % index of r==0
+[~,iz0]  = min(abs(z)); % index of z==0
+[~,ikr1] = min(abs(kr-round(1/dkr)*dkr)); % index of kr==1 
+[~,ikz1] = min(abs(kz-round(1/dkz)*dkz)); % index of kz==1
+for it = 1:numel(PH(1,1,:))
+    NE_ = Ne(:,:,it); NN_ = Ni(:,:,it); PH_ = PH(:,:,it);
+
+    ne_ST_r  (:,it)= ne(:,iz0,it);  ne_ST_z  (:,it)= ne(ir0,:,it);
+    Ne_ST_kr (:,it)= max(real(Ne(:,:,it)),[],2); 
+    Ne_ST_kz (:,it)= max(real(Ne(:,:,it)),[],1);
+    ne_00(it)      = ne(ir0,iz0,it);
+    Ne_gm(it)      = max(max(real(Ne(:,:,it))));
+    
+    ni_ST_r  (:,it)= ni(:,iz0,it);  ni_ST_z  (:,it)= ni(ir0,:,it);
+    Ni_ST_kr (:,it)= max(real(Ni(:,:,it)),[],2); 
+    Ni_ST_kz (:,it)= max(real(Ni(:,:,it)),[],1);
+    ni_00(it)      = ni(ir0,iz0,it);
+    Ni_gm(it)      = max(max(real(Ni(:,:,it))));
+    
+    phi_ST_r(:,it) = phi(:,iz0,it); phi_ST_z(:,it) = phi(ir0,:,it);
+    PH_ST_kr(:,it) = max(real(PH(:,:,it)),[],2); 
+    PH_ST_kz(:,it) = max(real(PH(:,:,it)),[],1);
+    phi_00(it)     = phi(ir0,iz0,it);
+    
+if strcmp(OUTPUTS.write_non_lin,'.true.')
+    Sni_norm(it) = sum(sum(abs(SNi(:,:,it))));
+    Sne_norm(it) = sum(sum(abs(SNe(:,:,it))));
+end
+    E_pot(it)   = pi/Lr/Lz*sum(sum(abs(NN_).^2))/Nkr/Nkr; % integrate through Parseval id
+    E_kin(it)   = pi/Lr/Lz*sum(sum(abs(Ddr.*PH_).^2+abs(Ddz.*PH_).^2))/Nkr/Nkr;
+    ExB(it)     = max(max(max(abs(phi(3:end,:,it)-phi(1:end-2,:,it))/(2*dr))),max(max(abs(phi(:,3:end,it)-phi(:,1:end-2,it))'/(2*dz))));
+end
+E_kin_KZ = mean(mean(abs(Ddr.*PH(:,:,it)).^2+abs(Ddz.*PH(:,:,it)).^2,3),1);
+E_kin_KR = mean(mean(abs(Ddr.*PH(:,:,it)).^2+abs(Ddz.*PH(:,:,it)).^2,3),2);
+dEdt     = diff(E_pot+E_kin)./diff(Ts);
+%% PLOTS
+%% Time evolutions
+fig = figure; FIGNAME = ['t_evolutions',sprintf('_%.2d',JOBNUM)];
+    subplot(221)
+        semilogy(Ts,abs(ne_00),'-','DisplayName','$n_e^{00}$'); hold on;
+        semilogy(Ts,abs(ni_00),'-','DisplayName','$n_i^{00}$');
+        grid on; xlabel('$t$'); ylabel('$|n_a(x=0,y=0)|$');
+    subplot(222)
+        semilogy(Ts,abs(Ni_gm),'-','DisplayName','$\phi$')
+        grid on; xlabel('$t$'); ylabel('$|\tilde n(k_r\approx 1,k_z\approx 1)|$');
+    subplot(223)
+        semilogy(Ts,E_kin+E_pot,'-','DisplayName','$\sum|ik\tilde\phi_i|^2+\sum|\tilde n_i|^2$')
+        hold on;
+        grid on; xlabel('$t$'); ylabel('$E$'); legend('show');
+if strcmp(OUTPUTS.write_non_lin,'.true.')
+    subplot(224)
+        semilogy(Ts,Sne_norm,'-','DisplayName','$\sum|S_e^{00}|$'); 
+        hold on;
+        semilogy(Ts,Sni_norm,'-','DisplayName','$\sum|S_i^{00}|$');
+        grid on; xlabel('$t$'); ylabel('$S$'); legend('show');
+end
+FMT = '.fig'; save_figure
+
+%% Spectra energy
+% fig = figure; FIGNAME = ['Energy_kin_KZ',sprintf('_%.2d',JOBNUM)];
+%     semilogy(kr(floor(end/2)+1:end),E_kin_KR(floor(end/2)+1:end),'o','DisplayName','$\sum_y\langle|ik\tilde\phi_i|^2\rangle_t$')
+%     hold on;
+%     loglog(kz(floor(end/2)+1:end),E_kin_KZ(floor(end/2)+1:end),'o','DisplayName','$\sum_x\langle|ik\tilde\phi_i|^2\rangle_t$')
+%     grid on; xlabel('$k$');  legend('show');
+% FMT = '.fig'; save_figure
+
+%% CFL condition
+fig = figure; FIGNAME = ['CFL',sprintf('_%.2d',JOBNUM)];
+    semilogy(Ts,dz./ExB,'-','DisplayName','$|\nabla \phi|\Delta y$');
+    hold on;
+    plot(Ts,dt*ones(1,numel(Ts)),'--k','DisplayName','$\Delta t$');
+    grid on; xlabel('$t$'); ylabel('$\Delta t$'); legend('show');
+FMT = '.fig'; save_figure
+
+%% Space-Time diagrams at z = 0
+plt = @(x) real(x);
+fig = figure; FIGNAME = ['r_space_time_diag',sprintf('_%.2d',JOBNUM)];
+    [TY,TX] = meshgrid(Ts,z);
+subplot(221)% density
+    pclr = pcolor(TX,TY,(plt(ne_ST_r))); set(pclr, 'edgecolor','none'); colorbar;
+    xlabel('$r\,(z=0)$'); ylabel('$t$'); title('$n_e^{00}$');
+subplot(222)% density
+    pclr = pcolor(TX,TY,(plt(ni_ST_r))); set(pclr, 'edgecolor','none'); colorbar;
+    xlabel('$r\,(z=0)$'); ylabel('$t$'); title('$n_i^{00}$');
+subplot(223)% density
+    pclr = pcolor(TX,TY,(plt(phi_ST_r))); set(pclr, 'edgecolor','none'); colorbar;
+    xlabel('$r\,(z=0)$'); ylabel('$t$'); title('$\phi$');
+FMT = '.fig'; save_figure
+
+%% Space-Time diagrams at r = 0
+plt = @(x) real(x);
+fig = figure; FIGNAME = ['z_space_time_diag',sprintf('_%.2d',JOBNUM)];
+    [TY,TX] = meshgrid(Ts,r);
+subplot(221)% density
+    pclr = pcolor(TX,TY,(plt(ne_ST_z))); set(pclr, 'edgecolor','none'); colorbar;
+    xlabel('$z\,(r=0)$'); ylabel('$t$'); title('$n_e^{00}$');
+subplot(222)% density
+    pclr = pcolor(TX,TY,(plt(ni_ST_z))); set(pclr, 'edgecolor','none'); colorbar;
+    xlabel('$z\,(r=0)$'); ylabel('$t$'); title('$n_i^{00}$');
+subplot(223)% density
+    pclr = pcolor(TX,TY,(plt(phi_ST_z))); set(pclr, 'edgecolor','none'); colorbar;
+    xlabel('$z\,(r=0)$'); ylabel('$t$'); title('$\phi$');
+FMT = '.fig'; save_figure
+
+%% Space-Time diagrams for max_kz(Real)
+plt = @(x) (x);
+fig = figure; FIGNAME = ['kr_space_time_diag',sprintf('_%.2d',JOBNUM)];
+    [TY,TX] = meshgrid(Ts,kr);
+subplot(221)% density
+    pclr = pcolor(TX,TY,(plt(Ne_ST_kr))); set(pclr, 'edgecolor','none'); colorbar;
+    xlabel('$kr$'); ylabel('$t$'); title('$\max_{k_z}(\textrm{Re}(N_e^{00}))$');
+subplot(222)% density
+    pclr = pcolor(TX,TY,(plt(Ni_ST_kr))); set(pclr, 'edgecolor','none'); colorbar;
+    xlabel('$kr$'); ylabel('$t$'); title('$\max_{k_z}(\textrm{Re}(N_i^{00}))$');
+subplot(223)% density
+    pclr = pcolor(TX,TY,(plt(PH_ST_kr))); set(pclr, 'edgecolor','none'); colorbar;
+    xlabel('$kr$'); ylabel('$t$'); title('$\max_{k_z}(\textrm{Re}(\tilde\phi$))');
+FMT = '.fig'; save_figure
+
+%% Space-Time diagrams at max_kr(Real)
+plt = @(x) (x);
+fig = figure; FIGNAME = ['kz_space_time_diag',sprintf('_%.2d',JOBNUM)];
+    [TY,TX] = meshgrid(Ts,kz);
+subplot(221)% density
+    pclr = pcolor(TX,TY,(plt(Ne_ST_kz))); set(pclr, 'edgecolor','none'); colorbar;
+    xlabel('$kz$'); ylabel('$t$'); title('$\max_{k_r}(\textrm{Re}(N_e^{00}))$');
+subplot(222)% density
+    pclr = pcolor(TX,TY,(plt(Ni_ST_kz))); set(pclr, 'edgecolor','none'); colorbar;
+    xlabel('$kz$'); ylabel('$t$'); title('$\max_{k_r}(\textrm{Re}(N_i^{00}))$');
+subplot(223)% density
+    pclr = pcolor(TX,TY,(plt(PH_ST_kz))); set(pclr, 'edgecolor','none'); colorbar;
+    xlabel('$kz$'); ylabel('$t$'); title('$\max_{k_r}(\textrm{Re}(\tilde\phi))$');
+FMT = '.fig'; save_figure
+
+
+if 0
+%% Show frame
+it = min(250,numel(Ts));
+fig = figure; FIGNAME = ['frame',sprintf('_%.2d',JOBNUM)];
+    subplot(221); plt = @(x) fftshift((abs(x)));
+        pclr = pcolor(fftshift(KR),fftshift(KZ),plt(PH(:,:,it))); set(pclr, 'edgecolor','none'); colorbar;
+        xlabel('$k_r$'); ylabel('$k_z$'); title(sprintf('t=%.3d',Ts(it))); legend('$|\hat\phi|$');
+    subplot(222); plt = @(x) fftshift(abs(x));
+        pclr = pcolor(fftshift(KR),fftshift(KZ),plt(Ni(:,:,it))); set(pclr, 'edgecolor','none'); colorbar;
+        xlabel('$k_r$'); ylabel('$k_z$'); title(sprintf('t=%.3d',Ts(it))); legend('$|\hat n_i^{00}|$');
+    subplot(223); plt = @(x) fftshift(abs(x));
+        pclr = pcolor(fftshift(KR),fftshift(KZ),plt(Ne(:,:,it))); set(pclr, 'edgecolor','none'); colorbar;
+        xlabel('$k_r$'); ylabel('$k_z$'); title(sprintf('t=%.3d',Ts(it))); legend('$|\hat n_e^{00}|$');
+if strcmp(OUTPUTS.write_non_lin,'.true.')
+    subplot(224); plt = @(x) fftshift((abs(x)));
+        pclr = pcolor(fftshift(KR),fftshift(KZ),plt(SNi(:,:,it))); set(pclr, 'edgecolor','none'); colorbar;
+        xlabel('$k_r$'); ylabel('$k_z$');legend('$\hat S_i^{00}$');
+end
+FMT = '.fig'; save_figure
+end
+%%
+DELAY = 0.07; skip_ = 10;
+FRAMES = 1:skip_:numel(Ts);
+if 0
+%% GIFS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Density electron
+GIFNAME = ['ne',sprintf('_%.2d',JOBNUM)];
+FIELD = real(ne); X = XX; Y = YY; T = Ts;
+FIELDNAME = '$n_e^{00}$'; XNAME = '$r$'; YNAME = '$z$';
+create_gif
+%% Density ion
+GIFNAME = ['ni',sprintf('_%.2d',JOBNUM)]; 
+FIELD = real(ni); X = XX; Y = YY; T = Ts;
+FIELDNAME = '$n_i^{00}$'; XNAME = '$r$'; YNAME = '$z$';
+create_gif
+%% Phi
+GIFNAME = ['phi',sprintf('_%.2d',JOBNUM)]; 
+FIELD = real(phi); X = XX; Y = YY; T = Ts;
+FIELDNAME = '$\phi$'; XNAME = '$r$'; YNAME = '$z$';
+create_gif
+%% Density electron frequency
+GIFNAME = ['Ni',sprintf('_%.2d',JOBNUM)]; 
+FIELD = ifftshift(ifftshift(abs(Ni),2),1); X = fftshift(KR); Y = fftshift(KZ); T = Ts;
+FIELDNAME = '$N_i^{00}$'; XNAME = '$k_r$'; YNAME = '$k_z$';
+create_gif
+end
\ No newline at end of file
diff --git a/wk/setup.m b/wk/setup.m
index 80bdb5c783e8975bdcc861bef5fad245885e6847..3a902cfc790efa865171dee1b903cae23b15bd93 100644
--- a/wk/setup.m
+++ b/wk/setup.m
@@ -5,69 +5,44 @@ default_plots_options
 %% Set Up parameters
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %% PHYSICAL PARAMETERS
-NU      = 1e-2;   % Collision frequency
+NU      = 1e-1;   % Collision frequency
 TAU     = 1.0;    % e/i temperature ratio
-ETAB    = 0.1;    % Magnetic gradient
+ETAB    = 0.5;    % Magnetic gradient
 ETAN    = 1.0;    % Density gradient
 ETAT    = 0.0;    % Temperature gradient
-MU      = 1e-2;   % Hyper diffusivity coefficient
+MU      = 1e-1;   % Hyper diffusivity coefficient
 LAMBDAD = 0.0;
 %% GRID PARAMETERS
 N       = 64;     % Frequency gridpoints (Nkr = N/2)
-L       = 10;      % Size of the squared frequency domain
-PMAXE   = 01;     % Highest electron Hermite polynomial degree
-JMAXE   = 00;     % Highest ''       Laguerre ''
-PMAXI   = 01;     % Highest ion      Hermite polynomial degree
-JMAXI   = 00;     % Highest ''       Laguerre ''
+L       = 150;     % Size of the squared frequency domain
+KREQ0   = 0;      % put kr = 0
+PMAXE   = 00;     % Highest electron Hermite polynomial degree
+JMAXE   = 01;     % Highest ''       Laguerre ''
+PMAXI   = 00;     % Highest ion      Hermite polynomial degree
+JMAXI   = 01;     % Highest ''       Laguerre ''
 KPAR    = 0.0;    % Parellel wave vector component
 %% TIME PARAMETERS 
-TMAX    = 10.0;    % Maximal time unit
+TMAX    = 30.0;    % Maximal time unit
 DT      = 1e-2;   % Time step
 SPS     = 10;     % Sampling per time unit
 RESTART = 0;      % To restart from last checkpoint
 JOB2LOAD= 0;
 %% OPTIONS
-SIMID   = 'test_kzpos';  % Name of the simulation
-NON_LIN = 0;   % activate non-linearity (is cancelled if KREQ0 = 1)
+SIMID   = 'Turbulences';  % Name of the simulation
+NON_LIN = 0 *(1-KREQ0);   % activate non-linearity (is cancelled if KREQ0 = 1)
 CO      = -2;  % Collision operator (0 : L.Bernstein, -1 : Full Coulomb, -2 : Dougherty)
 DK      = 0;   % Drift kinetic model (put every kernel to 1)
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 %% ________________________________________________________________________
-% Naming and creating input file
-params   = ['P_',num2str(PMAXE),'_J_',num2str(JMAXE),...
-    '_nB_',num2str(ETAB),'_nN_',num2str(ETAN),'_mu_%0.0e_'];
-params   = sprintf(params,MU);
-if ~NON_LIN; params = ['lin_',params]; end;
-if  DK;      params = ['DK_',params]; end;
-resolution = ['_',num2str(N/2),'x',num2str(N),'_'];
-gridname   = ['L_',num2str(L),'_'];
-BASIC.SIMID = [SIMID,resolution,gridname,params];
-BASIC.nrun       = 1e8;
-BASIC.dt         = DT;   
-BASIC.tmax       = TMAX;    %time normalized to 1/omega_pe
-if RESTART; BASIC.RESTART = '.true.'; else; BASIC.RESTART = '.false.';end;
-OUTPUTS.nsave_0d = 0;
-OUTPUTS.nsave_1d = 0;
-OUTPUTS.nsave_2d = floor(1.0/SPS/DT);
-OUTPUTS.nsave_5d = floor(1.0/SPS/DT);
-OUTPUTS.write_Ni00    = '.true.';
-OUTPUTS.write_moments = '.true.';
-OUTPUTS.write_phi     = '.true.';
-OUTPUTS.write_non_lin = '.true.';
-if NON_LIN == 0; OUTPUTS.write_non_lin = '.false.'; end;
-OUTPUTS.write_doubleprecision = '.true.';
-OUTPUTS.resfile0      = ['''',BASIC.SIMID,''''];
-OUTPUTS.rstfile0      = ['''','../checkpoint/cp_',BASIC.SIMID,''''];
-OUTPUTS.job2load      = JOB2LOAD;
 % Grid parameters
 GRID.pmaxe = PMAXE;  % Electron Hermite moments
 GRID.jmaxe = JMAXE;  % Electron Laguerre moments 
 GRID.pmaxi = PMAXI;  % Ion Hermite moments
 GRID.jmaxi = JMAXI;  % Ion Laguerre moments
-GRID.Nr    = N; % r grid resolution
-GRID.Lr    = L; % r length
+GRID.Nr    = N * (1-KREQ0) + KREQ0; % r grid resolution
+GRID.Lr    = L * (1-KREQ0); % r length
 GRID.Nz    = N; % z ''
 GRID.Lz    = L; % z ''
 GRID.kpar  = KPAR;
@@ -109,7 +84,34 @@ INITIAL.iemat_file = ...
     ['''../iCa/ie_Coll_GKE_0_GKI_0_ITEST_1_IBACK_1_Pmaxe_',num2str(GRID.pmaxe),...
     '_Jmaxe_',num2str(GRID.jmaxe),'_Pmaxi_',num2str(GRID.pmaxi),'_Jmaxi_',...
     num2str(GRID.jmaxi),'_pamaxx_10_tau_1.0000_mu_0.0233.h5'''];
-
+% Naming and creating input file
+params   = ['P_',num2str(PMAXE),'_J_',num2str(JMAXE),...
+    '_nB_',num2str(ETAB),'_nN_',num2str(ETAN),'_nu_%0.0e_',...
+    '_mu_%0.0e_'];
+params   = sprintf(params,[NU,MU]);
+if ~NON_LIN; params = ['lin_',params]; end;
+if  DK;      params = ['DK_',params]; end;
+resolution = ['_',num2str(GRID.Nr),'x',num2str(GRID.Nz/2),'_'];
+gridname   = ['L_',num2str(L),'_'];
+BASIC.SIMID = [SIMID,resolution,gridname,params];
+BASIC.nrun       = 1e8;
+BASIC.dt         = DT;   
+BASIC.tmax       = TMAX;    %time normalized to 1/omega_pe
+% Outputs parameters
+if RESTART; BASIC.RESTART = '.true.'; else; BASIC.RESTART = '.false.';end;
+OUTPUTS.nsave_0d = 0;
+OUTPUTS.nsave_1d = 0;
+OUTPUTS.nsave_2d = floor(1.0/SPS/DT);
+OUTPUTS.nsave_5d = floor(1.0/SPS/DT);
+OUTPUTS.write_Ni00    = '.true.';
+OUTPUTS.write_moments = '.true.';
+OUTPUTS.write_phi     = '.true.';
+OUTPUTS.write_non_lin = '.true.';
+if NON_LIN == 0; OUTPUTS.write_non_lin = '.false.'; end;
+OUTPUTS.write_doubleprecision = '.true.';
+OUTPUTS.resfile0      = ['''',BASIC.SIMID,''''];
+OUTPUTS.rstfile0      = ['''','../checkpoint/cp_',BASIC.SIMID,''''];
+OUTPUTS.job2load      = JOB2LOAD;
 %% Compile and write input file
 INPUT = write_fort90(OUTPUTS,GRID,MODEL,INITIAL,TIME_INTEGRATION,BASIC);
 nproc = 1;