title1 = GIFNAME;
FIGDIR = BASIC.RESDIR;
if ~exist(FIGDIR, 'dir')
   mkdir(FIGDIR)
end

GIFNAME = [FIGDIR, GIFNAME,'.gif'];

% Set colormap boundaries
hmax = max(max(max(FIELD)));
hmin = min(min(min(FIELD)));
fieldabsmin = min(min(abs(FIELD(:,:))));
fieldabsmax = max(max(abs(FIELD(:,:))));
flag = 0;
if hmax == hmin 
    disp('Warning : h = hmin = hmax = const')
else
% Setup figure frame
fig  = figure;
subplot(211)
    plot(X,FIELD(:,1)); % to set up
    axis tight manual % this ensures that getframe() returns a consistent size
    in      = 1;
    nbytes = fprintf(2,'frame %d/%d',in,numel(FIELD(1,1,:)));
    for n = FRAMES % loop over selected frames
        scale = max(FIELD(:,n))*SCALING + (1-SCALING);
        
        subplot(211)
        plot(X,FIELD(:,n)/scale,linestyle);
        if (YMIN ~= YMAX && XMIN ~= XMAX)
        ylim([YMIN,YMAX]); xlim([XMIN,XMAX]);
        end
        title(['$t \approx$', sprintf('%.3d',ceil(T(n))), ', scaling = ',sprintf('%.1e',scale)]);
        xlabel(XNAME); ylabel(FIELDNAME);
        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;
        
        subplot(212)
        ylim([fieldabsmin,fieldabsmax]); xlim([T(FRAMES(1)),T(FRAMES(end))]); hold on;
        plot(T(n),abs(max(FIELD(:,n))),'.k'); xlabel('$\rho_s/c_s$')

    end
    disp(' ')
    disp(['Gif saved @ : ',GIFNAME])
end