Projet

Général

Profil

Publication de fichiers » celeriteChen.m

Anonyme, 26/07/2013 13:58

 
% Celerite par le modele de Chen & Millero
% Modele general : C = c0+c1*P+c2*P^2+c3*P^3+a*S+b*S^(3/2)+c*S^2
%
% SYNTAX :
% C = celeriteChen(Z, T, S)
%
% INPUT PARAMETERS
% Z : Profondeur (m) (Z<0)
% T : Temperature (deg)
% S : salinite (0/000)
%
% OUTPUT PARAMETERS :
% [] : Auto-plot activation
% C : Celerite (m/s)
%
% EXAMPLES :
% C = celeriteChen(0:500:6000, 4, 35)
%
% nomFic = getNomFicDatabase('BATHYCEL_North-East_Atlantic_Winter.csv');
% [Z, S, T] = lecCsv(nomFic);
% celeriteChen(Z, T, S);
%
% C = celeriteChen(Z, T, S);
% subplot(1,3,1); plot(T,Z); grid on; title('T')
% subplot(1,3,2); plot(S,Z); grid on; title('S')
% subplot(1,3,3); plot(C,Z); grid on; title('C')
%
% SEE ALSO : lecCsv lecLevitus cli_sound_speed Authors
% AUTHORS : JMA + XL
% VERSION : $Id: celeriteChen.m,v 1.3 2002/06/20 09:52:55 augustin Exp $
%----------------------------------------------------------------------------

function varargout = celeriteChen(Z, T, S)

P = -Z / 10.;
T2 = T .* T;
T3 = T2 .* T;
T4 = T3 .* T;
T5 = T4 .* T;
P2 = P .* P;
P3 = P2 .* P;
S2 = S .* S;
S15= S .* sqrt(S);


c0 = 1402.388 + 5.03711 * T - 5.80852e-2 * T2 + 3.3420e-4 * T3 - 1.47800e-6 * T4 + 3.1464e-9 * T5;
c1 = 0.153563 + 6.8982e-4 * T - 8.1788e-6 * T2 + 1.3621e-7 * T3 - 6.1185e-10 * T4;
c2 = 3.1260e-5 - 1.7107e-6 * T + 2.5974e-8 * T2 - 2.5335e-10 * T3 + 1.0405e-12 * T4;
c3 = - 9.7729e-9 + 3.8504e-10 * T -2.3643e-12 * T2;
a0 = 1.389 - 1.262e-2 * T + 7.164e-5 * T2 + 2.006e-6 * T3 -3.21e-8 * T4 ;
a1 = 9.4742e-5 - 1.2580e-5 * T - 6.4885e-8 * T2 + 1.0507e-8 * T3 - 2.0122e-10 * T4 ;
a2 = - 3.9064e-7 + 9.1041e-9 * T - 1.6002e-10 * T2 + 7.988e-12 * T3;
a3 = 1.100e-10 + 6.649e-12 * T -3.389e-13 * T2 ;
b = -1.922e-2 - 4.42e-5 * T + (7.3637e-5 + 1.7945e-7 * T) .* P;
c = - 7.9836e-6 * P + 1.727e-3;
a = a0 + a1 .* P + a2 .* P2 + a3 .* P3;

C = c0 + c1 .* P + c2 .* P2 + c3 .* P3 + a .* S + b .* S15 + c .* S2;


% ------------------------------------------
% Sortie des parametres ou traces graphiques

if nargout == 0
figure;
subplot(1,3,1); plot(T,Z); grid on; title('T (deg)')
subplot(1,3,2); plot(S,Z); grid on; title('S (0/000)')
subplot(1,3,3); plot(C,Z, 'r'); grid on; title('C (m/s)')
else
varargout{1} = C;
end
(9-9/9)