function [] = func_plot_soil_scatter(sdf1, sdf2, sdf3, sdf4, slope)

season = 5;

make_it_tight = true;
subplot = @(m,n,p) subtightplot (m, n, p, [0.065 0.055], [0.1 0.045], [0.08 0.05]);
if ~make_it_tight,  clear subplot;  end

figure
set(gcf,'PaperPositionMode', 'auto')
set(gcf,'Position', [100 100 800 400])
x = [-0.25:0.0001:0.25];

%-----------------------------------------------------
subplot(2,2,1)
    
    sdata = sdf1(:,:,2,season);
    [xx, grd_1] = func_calc_slope(slope, sdata); hold on; 
    plot(xx, grd_1, 'r','LineWidth', 1.5);
    sdata = sdf1(:,:,3,season);
    [xx, grd_1] = func_calc_slope(slope, sdata); hold on; 
    plot(xx, grd_1, 'g','LineWidth', 1.5); 
    sdata = sdf1(:,:,4,season);
    [xx, grd_1] = func_calc_slope(slope, sdata); hold on; 
    plot(xx, grd_1, 'b','LineWidth', 1.5); 
    grid on; 
    plot(0:0.01:0.5, 0*(0:0.01:0.5), 'k.');
    ylim([-0.1 0.1])
    legend('routing 100m - routing 250m','routing 100m - routing 500m', 'routing 100m - routing 1000m');
    ylabel('d(SM) / d(topo. slope)')

    title_left('a) SM1')

%-----------------------------------------------------
subplot(2,2,2)
    
    sdata = sdf2(:,:,2,season);
    [xx, grd_1] = func_calc_slope(slope, sdata); hold on; 
    plot(xx, grd_1, 'r','LineWidth', 1.5);
    sdata = sdf2(:,:,3,season);
    [xx, grd_1] = func_calc_slope(slope, sdata); hold on; 
    plot(xx, grd_1, 'g','LineWidth', 1.5); 
    sdata = sdf2(:,:,4,season);
    [xx, grd_1] = func_calc_slope(slope, sdata); hold on; 
    plot(xx, grd_1, 'b','LineWidth', 1.5); 
    grid on; 
    plot(0:0.01:0.5, 0*(0:0.01:0.5), 'k.');
    ylim([-0.1 0.1])
    title_left('b) SM2')
%-----------------------------------------------------
subplot(2,2,3)
    sdata = sdf3(:,:,2,season);
    [xx, grd_1] = func_calc_slope(slope, sdata); hold on; 
    plot(xx, grd_1, 'r','LineWidth', 1.5);
    sdata = sdf3(:,:,3,season);
    [xx, grd_1] = func_calc_slope(slope, sdata); hold on; 
    plot(xx, grd_1, 'g','LineWidth', 1.5); 
    sdata = sdf3(:,:,4,season);
    [xx, grd_1] = func_calc_slope(slope, sdata); hold on; 
    plot(xx, grd_1, 'b','LineWidth', 1.5); 
    grid on; 
    plot(0:0.01:0.5, 0*(0:0.01:0.5), 'k.');
    ylim([-0.1 0.1])
    ylabel('d(SM) / d(topo. slope)')
    xlabel('topo. slope')
    title_left('c) SM3')

%-----------------------------------------------------
subplot(2,2,4)

    sdata = sdf4(:,:,2,season);
    [xx, grd_1] = func_calc_slope(slope, sdata); hold on; 
    plot(xx, grd_1, 'r','LineWidth', 1.5);
    sdata = sdf4(:,:,3,season);
    [xx, grd_1] = func_calc_slope(slope, sdata); hold on; 
    plot(xx, grd_1, 'g','LineWidth', 1.5); 
    sdata = sdf4(:,:,4,season);
    [xx, grd_1] = func_calc_slope(slope, sdata); hold on; 
    plot(xx, grd_1, 'b','LineWidth', 1.5); 
    grid on; 
    plot(0:0.01:0.5, 0*(0:0.01:0.5), 'k.');
    ylim([-0.1 0.1])
%     ylabel('d(SM)/d(topo. slope)')
    xlabel('topo. slope')
    title_left('d) SM4')


end