matlab温度平流计算函数

2021-03-24  本文已影响0人  碧海蓝天_BLUE2016

function [sstadv] = Tadv(sst,u10,v10,lat,lon)

% 计算温度平流

%  输入,海温,10米u,v风速 水平温度平流计算公式为 -(udt/dx+vdt/dy)

m=size(sst);

[X,Y] = meshgrid(lat,lon);

for t=1:m(3)

    tt=sst(:,:,t);

    u=u10(:,:,t);

    v=v10(:,:,t);

    dtx = cdiff(tt,1); %359*180

    dty = cdiff(tt,2); %360*179

    dx = cdiff(Y,1)*pi/180;

    dy = cdiff(X,2)*pi/180;

    sstadv(:,:,t)=-1*((u.*dtx)./(cos(X*pi/180).*dx) + v.*dty./dy)./6.371e6;

end

function [yy] = cdiff(x,dim)

%UNTITLED3 中央差分

%  x(m,n)输入一个二维数组

s=size(x);

yy=nan(s(1),s(2));

if dim==1

    x1=x(1:end-2,:);

    x2=x(3:end,:);

    y=x2-x1;

    yy(2:end-1,:)=y;

else if dim==2

        x1=x(:,1:end-2);

    x2=x(:,3:end);

    y=x2-x1;

    yy(:,2:end-1)=y;

    end

end

end

上一篇下一篇

猜你喜欢

热点阅读