Skip to content
Snippets Groups Projects
Commit a1a67dd9 authored by gael.alory_legos.obs-mip.fr's avatar gael.alory_legos.obs-mip.fr
Browse files

bug dans le module de correction pour un TSG calibre

parent 926225a1
No related branches found
No related tags found
No related merge requests found
......@@ -71,7 +71,7 @@ VALUE_CHANGED = tsg.qc.hash.VALUE_CHANGED.code;
% BE CAREFUL:
% netcdf toolbox failed with assertion when we write NaN to ncbyte variable
% -------------------------------------------------------------------------
if isempty( tsg.([PARA{1} '_ADJUSTED']) )
if isempty( tsg.([PARA{1} '_ADJUSTED_ERROR']) )
tsg.([PARA{1} '_ADJUSTED']) = NaN*ones(size(tsg.(PARA{1})));
tsg.([PARA{1} '_ADJUSTED_QC']) = zeros(size(tsg.([PARA{1} '_QC'])));
tsg.([PARA{1} '_ADJUSTED_ERROR']) = NaN*ones(size(tsg.(PARA{1})));
......
......@@ -49,69 +49,71 @@ if strcmp( PARA, 'SSPS')
else
T = tsg.SSJT(dtTsg);
end
if ~isempty( tsg.CNDC_CAL)
C = tsg.CNDC_CAL(dtTsg);
else
if ~isempty( tsg.CNDC)
C = tsg.CNDC(dtTsg);
% salinity error is computed from temperature/conductivity errors
% by error propagation in the salinity equation
% see Emery and Thomson, Data analysis methods in phys. oceano., p.273
R=C/sw_c3515();
rt = sw_salrt(T);
Rt=R./rt;
%Rt is a function of C,T
%error on Rt : err(Rt)^2=(d(Rt)/dC*errC)^2+(d(Rt)/dT*errT)^2
dRtdC=1./(rt*sw_c3515());
c68 = 1.00024;
c0 = 0.6766097;
c1 = 2.00564e-2;
c2 = 1.104259e-4;
c3 = -6.9698e-7;
c4 = 1.0031e-9;
dRtdT=c68*R.*(c1+(2*c2+(3*c3+4*c4*T).*T*c68).*T*c68)./(rt.^2);
errRt=sqrt((dRtdC*errC).^2+(dRtdT*errT).^2);
%S is a function of Rt,T
%error on S: err(S)^2=(dS/dRt*errRt)^2+(dS/dT*errT)^2
del_T68 = T * 1.00024 - 15;
Rtx = sqrt(Rt);
a0 = 0.0080;
a1 = -0.1692;
a2 = 25.3851;
a3 = 14.0941;
a4 = -7.0261;
a5 = 2.7081;
b0 = 0.0005;
b1 = -0.0056;
b2 = -0.0066;
b3 = -0.0375;
b4 = 0.0636;
b5 = -0.0144;
k = 0.0162;
dSdRt=(a1+(2*a2+(3*a3+(4*a4+5*a5*Rtx).*Rtx).*Rtx).*Rtx)./(2*Rtx)...
+(del_T68./(1+k*del_T68)).*(b1+(2*b2+(3*b3+(4*b4+5*b5*Rtx).*Rtx).*Rtx).*Rtx)./(2*Rtx);
dSdT=(b0+(b1+(b2+(b3+(b4+b5.*Rtx).*Rtx).*Rtx).*Rtx).*Rtx)./((1+k*del_T68).^2);
errS=sqrt((dSdRt.*errRt).^2+(dSdT.*errT).^2);
minerror=errS;
else
minerror=0.02*ones(length(dtTsg),1);
end
C = tsg.CNDC(dtTsg);
end
if (~isempty( T) & ~isempty( C))
% salinity error is computed from temperature/conductivity errors
% by error propagation in the salinity equation
% see Emery and Thomson, Data analysis methods in phys. oceano., p.273
R=C/sw_c3515();
rt = sw_salrt(T);
Rt=R./rt;
%Rt is a function of C,T
%error on Rt : err(Rt)^2=(d(Rt)/dC*errC)^2+(d(Rt)/dT*errT)^2
dRtdC=1./(rt*sw_c3515());
c68 = 1.00024;
c0 = 0.6766097;
c1 = 2.00564e-2;
c2 = 1.104259e-4;
c3 = -6.9698e-7;
c4 = 1.0031e-9;
dRtdT=c68*R.*(c1+(2*c2+(3*c3+4*c4*T).*T*c68).*T*c68)./(rt.^2);
errRt=sqrt((dRtdC*errC).^2+(dRtdT*errT).^2);
%S is a function of Rt,T
%error on S: err(S)^2=(dS/dRt*errRt)^2+(dS/dT*errT)^2
del_T68 = T * 1.00024 - 15;
Rtx = sqrt(Rt);
a0 = 0.0080;
a1 = -0.1692;
a2 = 25.3851;
a3 = 14.0941;
a4 = -7.0261;
a5 = 2.7081;
b0 = 0.0005;
b1 = -0.0056;
b2 = -0.0066;
b3 = -0.0375;
b4 = 0.0636;
b5 = -0.0144;
k = 0.0162;
dSdRt=(a1+(2*a2+(3*a3+(4*a4+5*a5*Rtx).*Rtx).*Rtx).*Rtx)./(2*Rtx)...
+(del_T68./(1+k*del_T68)).*(b1+(2*b2+(3*b3+(4*b4+5*b5*Rtx).*Rtx).*Rtx).*Rtx)./(2*Rtx);
dSdT=(b0+(b1+(b2+(b3+(b4+b5.*Rtx).*Rtx).*Rtx).*Rtx).*Rtx)./((1+k*del_T68).^2);
errS=sqrt((dSdRt.*errRt).^2+(dSdT.*errT).^2);
minerror=errS;
else
minerror=0.02*ones(length(dtTsg),1);
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment