1 |
|
---|
2 |
function pres = sw_pres(DEPTH,LAT) |
---|
3 |
|
---|
4 |
% SW_PRES Pressure from depth |
---|
5 |
%=========================================================================== |
---|
6 |
% SW_PRES $Id: sw_pres.m,v 1.1 2003/12/12 04:23:22 pen078 Exp $ |
---|
7 |
% Copyright (C) CSIRO, Phil Morgan 1993. |
---|
8 |
% |
---|
9 |
% USAGE: pres = sw_pres(depth,lat) |
---|
10 |
% |
---|
11 |
% DESCRIPTION: |
---|
12 |
% Calculates pressure in dbars from depth in meters. |
---|
13 |
% |
---|
14 |
% INPUT: (all must have same dimensions) |
---|
15 |
% depth = depth [metres] |
---|
16 |
% lat = Latitude in decimal degress north [-90..+90] |
---|
17 |
% (LAT may have dimensions 1x1 or 1xn where depth(mxn) ) |
---|
18 |
% |
---|
19 |
% OUTPUT: |
---|
20 |
% pres = Pressure [db] |
---|
21 |
% |
---|
22 |
% AUTHOR: Phil Morgan 93-06-25 (morgan@ml.csiro.au) |
---|
23 |
% |
---|
24 |
% DISCLAIMER: |
---|
25 |
% This software is provided "as is" without warranty of any kind. |
---|
26 |
% See the file sw_copy.m for conditions of use and licence. |
---|
27 |
% |
---|
28 |
% REFERENCES: |
---|
29 |
% Saunders, P.M. 1981 |
---|
30 |
% "Practical conversion of Pressure to Depth" |
---|
31 |
% Journal of Physical Oceanography, 11, 573-574 |
---|
32 |
% |
---|
33 |
% CHECK VALUE: |
---|
34 |
% P=7500.00 db for LAT=30 deg, depth=7321.45 meters |
---|
35 |
%========================================================================= |
---|
36 |
|
---|
37 |
% Modifications |
---|
38 |
% 99-06-25. Lindsay Pender, Fixed transpose of row vectors. |
---|
39 |
|
---|
40 |
% CALLER: general purpose |
---|
41 |
% CALLEE: none |
---|
42 |
|
---|
43 |
%------------- |
---|
44 |
% CHECK INPUTS |
---|
45 |
%------------- |
---|
46 |
[mD,nD] = size(DEPTH); |
---|
47 |
[mL,nL] = size(LAT); |
---|
48 |
if mL==1 & nL==1 % LAT scalar - fill to size of P |
---|
49 |
LAT = LAT*ones(size(DEPTH)); |
---|
50 |
|
---|
51 |
elseif nD == nL & mL == 1 % LAT is row vector |
---|
52 |
LAT = LAT(ones(1, mD), :); % Coppy down each column |
---|
53 |
|
---|
54 |
elseif mD == mL & nL == 1 % LAT is column vector |
---|
55 |
LAT = LAT(:, ones(1, nD)); % Copy across each row |
---|
56 |
|
---|
57 |
elseif mD == mL & nD == nL |
---|
58 |
% Ok |
---|
59 |
|
---|
60 |
else |
---|
61 |
error('sw_pres.m: Inputs arguments have wrong dimensions') |
---|
62 |
end %if |
---|
63 |
|
---|
64 |
%------------- |
---|
65 |
% BEGIN |
---|
66 |
%------------- |
---|
67 |
|
---|
68 |
DEG2RAD = pi/180; |
---|
69 |
X = sin(abs(LAT)*DEG2RAD); % convert to radians |
---|
70 |
C1 = 5.92E-3+X.^2*5.25E-3; |
---|
71 |
pres = ((1-C1)-sqrt(((1-C1).^2)-(8.84E-6*DEPTH)))/4.42E-6; |
---|
72 |
return |
---|
73 |
%=========================================================================== |
---|
74 |
|
---|