38
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
1 |
#======================================================================
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
2 |
# L I B T E O S 1 0 . P L
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
3 |
# doc: Fri Jan 18 11:09:22 2019
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
4 |
# dlm: Fri Jan 18 23:23:27 2019
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
5 |
# (c) 2019 A.M. Thurnherr
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
6 |
# uE-Info: 144 30 NIL 0 0 72 2 2 4 NIL ofnI
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
7 |
#======================================================================
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
8 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
9 |
# perl wrapper for GSW TEOS-10 libary
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
10 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
11 |
# Notes:
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
12 |
# - requires GSW shared library (currently GSW-C-3.05.0-4)
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
13 |
# - requires home-grown perl-interface, implementing GSW::
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
14 |
# - small subset of functions implemented
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
15 |
# - no temperature scale assumed; set PARAM ITS=90|68
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
16 |
# - T90*1.00024=T68
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
17 |
# - check values calculated with T68
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
18 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
19 |
# HISTORY:
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
20 |
# Jan 18, 2019: - created
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
21 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
22 |
require "$ANTS/libvec.pl";
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
23 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
24 |
use strict;
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
25 |
use GSW;
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
26 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
27 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
28 |
# ITS-68/-90 conversion
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
29 |
# - call once return conversion factor
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
30 |
# - divide input temperatures by conversion factor to turn into ITS-90
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
31 |
# - multiply output temperatures by conv factor to return to original ITS
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
32 |
# - optimized for repeat calls
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
33 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
34 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
35 |
{ # BEGIN STATIC SCOPE
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
36 |
my($TCONV);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
37 |
sub TCONV90()
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
38 |
{
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
39 |
return $TCONV if defined($TCONV);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
40 |
my($ITS) = &antsRequireParam('ITS');
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
41 |
if ($ITS == 68) { $TCONV = 1.00024;
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
42 |
} elsif ($ITS == 90) { $TCONV = 1;
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
43 |
} else {
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
44 |
croak("$0: illegal PARAM-value ITS=$ITS\n");
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
45 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
46 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
47 |
} # END STATIC SCOPE
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
48 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
49 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
50 |
# practical salinity
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
51 |
# - input: cond temp press
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
52 |
# - use units from %cond.unit
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
53 |
# - IDENTICAL TO EOS83 VERIFIED
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
54 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
55 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
56 |
{ my(@fc,$cscale);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
57 |
sub salin(@)
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
58 |
{
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
59 |
my($C,$T,$P) = &antsFunUsage(3,'...','[cond, temp, press]',
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
60 |
\@fc,'cond','temp','press',@_);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
61 |
unless (defined($cscale)) {
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
62 |
my($cu) = &antsRequireParam('cond.unit');
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
63 |
if ($cu eq 'S/m') { $cscale = 10; }
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
64 |
elsif ($cu eq 'mS/cm') { $cscale = 1; }
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
65 |
else { croak("$0: illegal PARAM-value cond.unit=$cu\n"); }
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
66 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
67 |
return numbersp($C,$T,$P) ?
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
68 |
GSW::gsw_sp_from_c($C*$cscale,$T,$P) :
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
69 |
'nan';
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
70 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
71 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
72 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
73 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
74 |
# conductivity
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
75 |
# - input: salin temp press
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
76 |
# - take units from %cond.unit
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
77 |
# - COND(SALIN(COND)) = COND VERIFIED
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
78 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
79 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
80 |
{ my(@fc,$cscale);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
81 |
sub cond(@)
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
82 |
{
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
83 |
my($S,$T,$P) = &antsFunUsage(3,'...','[salin, temp, press]',
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
84 |
\@fc,'salin','temp','press',@_);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
85 |
unless (defined($cscale)) {
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
86 |
my($cu) = &antsRequireParam('cond.unit');
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
87 |
if ($cu eq 'S/m') { $cscale = 10; }
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
88 |
elsif ($cu eq 'mS/cm') { $cscale = 1; }
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
89 |
else { croak("$0: illegal PARAM-value cond.unit=$cu\n"); }
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
90 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
91 |
return numbersp($S,$T,$P) ?
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
92 |
GSW::gsw_c_from_sp($S,$T,$P)/$cscale :
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
93 |
'nan';
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
94 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
95 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
96 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
97 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
98 |
# absolute salinity
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
99 |
# - input salin, press, lon, lat
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
100 |
# - if %lat/%lon are available, they are used
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
101 |
# - otherwise, they must be supplied as arguments
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
102 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
103 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
104 |
{ my(@fc);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
105 |
sub asalin(@)
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
106 |
{
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
107 |
my($LON,$LAT,$SP,$P);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
108 |
$LON = &antsParam('lon');
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
109 |
$LAT = &antsParam('lat');
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
110 |
if (numbersp($LON,$LAT)) {
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
111 |
($SP,$P) = &antsFunUsage(2,'..','[salin, press]',
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
112 |
\@fc,'salin','press',@_);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
113 |
} else {
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
114 |
($SP,$P,$LON,$LAT) =
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
115 |
&antsFunUsage(4,'....','[salin, press, lon, lat]',
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
116 |
\@fc,'salin','press','lon','lat',@_);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
117 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
118 |
return numbersp($LON,$LAT,$SP,$P) ?
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
119 |
GSW::gsw_sa_from_sp($SP,$P,$LON,$LAT) :
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
120 |
'nan';
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
121 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
122 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
123 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
124 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
125 |
# potential temperature
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
126 |
# - DIFFERENCES < 0.0005 degC IN FULL DEPTH PROFILE VIZ [libEOS83.pl]
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
127 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
128 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
129 |
{ my(@fc);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
130 |
sub theta(@)
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
131 |
{
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
132 |
my($SA,$T,$P,$Pref) =
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
133 |
&antsFunUsage(4,'....','[asalin, temp, press,] refpress',
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
134 |
\@fc,'asalin','temp','press',undef,@_);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
135 |
return 'nan' unless numbersp($SA,$T,$P,$Pref);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
136 |
return $T if ($P == $Pref);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
137 |
my($TCONV) = &TCONV90(); # library uses ITS90
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
138 |
return GSW::gsw_pt_from_t($SA,$T/$TCONV,$P,$Pref)*$TCONV;
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
139 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
140 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
141 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
142 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
143 |
# conservative temperature
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
144 |
# - input: asalin temp press
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
145 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
146 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
147 |
{ my(@fc);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
148 |
sub ctemp(@)
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
149 |
{
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
150 |
my($SA,$T,$P) =
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
151 |
&antsFunUsage(3,'...','[asalin, temp, press]',
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
152 |
\@fc,'asalin','temp','press',@_);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
153 |
return 'nan' unless numbersp($SA,$T,$P);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
154 |
my($TCONV) = &TCONV90(); # library uses ITS90
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
155 |
return GSW::gsw_ct_from_t($SA,$T/$TCONV,$P)*$TCONV;
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
156 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
157 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
158 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
159 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
160 |
# depth
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
161 |
# - input: press lat
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
162 |
# - if %lat is available, it is used
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
163 |
# - CHECKED AGAINS [libEOS83.pl] => DIFF < 0.12m FOR FULL DEPTH PROF
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
164 |
# - PRESS(DEPTH(PRESS)) = PRESS VERIFIED
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
165 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
166 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
167 |
{ my(@fc);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
168 |
sub depth(@)
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
169 |
{
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
170 |
my($P,$LAT);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
171 |
$LAT = &antsParam('lat');
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
172 |
if (numberp($LAT)) {
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
173 |
($P) = &antsFunUsage(1,'.','[press]',\@fc,'press',@_);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
174 |
} else {
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
175 |
($P,$LAT) = &antsFunUsage(2,'..','[press, lat]',\@fc,'press','lat',@_);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
176 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
177 |
return numbersp($P,$LAT) ? -1*GSW::gsw_z_from_p($P,$LAT) : 'nan';
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
178 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
179 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
180 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
181 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
182 |
# press
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
183 |
# - input: depth lat
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
184 |
# - if %lat is available, it is used
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
185 |
# - PRESS(DEPTH(PRESS)) = PRESS VERIFIED
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
186 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
187 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
188 |
{ my(@fc);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
189 |
sub press(@)
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
190 |
{
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
191 |
my($D,$LAT);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
192 |
$LAT = &antsParam('lat');
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
193 |
if (numberp($LAT)) {
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
194 |
($D) = &antsFunUsage(1,'.','[depth]',\@fc,'depth',@_);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
195 |
} else {
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
196 |
($D,$LAT) = &antsFunUsage(2,'..','[depth, lat]',\@fc,'depth','lat',@_);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
197 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
198 |
return numbersp($D,$LAT) ? GSW::gsw_p_from_z(-1*$D,$LAT) : 'nan';
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
199 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
200 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
201 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
202 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
203 |
# thermal expansion coefficient
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
204 |
# - input: asalin ctemp press
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
205 |
# - ~ 1% higher than homegrown approximation in [libEOS83.pl]
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
206 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
207 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
208 |
{ my(@fc);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
209 |
sub alpha(@)
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
210 |
{
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
211 |
my($SA,$TC,$P) =
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
212 |
&antsFunUsage(3,'...','[asalin, ctemp, press]',
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
213 |
\@fc,'asalin','ctemp','press',@_);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
214 |
return 'nan' unless numbersp($SA,$TC,$P);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
215 |
my($TCONV) = &TCONV90(); # library uses ITS90
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
216 |
return GSW::gsw_alpha($SA,$TC/$TCONV,$P);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
217 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
218 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
219 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
220 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
221 |
# haline contraction coefficient
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
222 |
# - input: asalin ctemp press
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
223 |
# - ~ 0.6% lower than homegrown approximation in [libEOS83.pl]
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
224 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
225 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
226 |
{ my(@fc);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
227 |
sub beta(@)
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
228 |
{
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
229 |
my($SA,$TC,$P) =
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
230 |
&antsFunUsage(3,'...','[asalin, ctemp, press]',
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
231 |
\@fc,'asalin','ctemp','press',@_);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
232 |
return 'nan' unless numbersp($SA,$TC,$P);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
233 |
my($TCONV) = &TCONV90(); # library uses ITS90
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
234 |
return GSW::gsw_beta($SA,$TC/$TCONV,$P);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
235 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
236 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
237 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
238 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
239 |
# in situ density
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
240 |
# - input: asalin ctemp press
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
241 |
# - CHECKED RHO & ALL SIGMA AGAINST [libEOS83.pl] => CONSISTENT PATTERN
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
242 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
243 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
244 |
{ my(@fc);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
245 |
sub rho(@)
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
246 |
{
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
247 |
my($SA,$TC,$P) =
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
248 |
&antsFunUsage(3,'...','[asalin, ctemp, press]',
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
249 |
\@fc,'asalin','ctemp','press',@_);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
250 |
return 'nan' unless numbersp($SA,$TC,$P);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
251 |
my($TCONV) = &TCONV90(); # library uses ITS90
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
252 |
return GSW::gsw_rho($SA,$TC/$TCONV,$P);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
253 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
254 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
255 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
256 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
257 |
# potential density
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
258 |
# - input: asalin ctemp
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
259 |
# - CHECKED RHO & ALL SIGMA AGAINST [libEOS83.pl] => CONSISTENT PATTERN
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
260 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
261 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
262 |
{ my(@fc);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
263 |
sub sigma0(@)
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
264 |
{
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
265 |
my($SA,$TC) = &antsFunUsage(2,'..','[asalin, ctemp]',\@fc,'asalin','ctemp',@_);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
266 |
return 'nan' unless numbersp($SA,$TC);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
267 |
my($TCONV) = &TCONV90(); # library uses ITS90
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
268 |
return GSW::gsw_sigma0($SA,$TC/$TCONV);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
269 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
270 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
271 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
272 |
{ my(@fc);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
273 |
sub sigma1(@)
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
274 |
{
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
275 |
my($SA,$TC) = &antsFunUsage(2,'..','[asalin, ctemp]',\@fc,'asalin','ctemp',@_);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
276 |
return 'nan' unless numbersp($SA,$TC);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
277 |
my($TCONV) = &TCONV90(); # library uses ITS90
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
278 |
return GSW::gsw_sigma1($SA,$TC/$TCONV);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
279 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
280 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
281 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
282 |
{ my(@fc);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
283 |
sub sigma2(@)
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
284 |
{
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
285 |
my($SA,$TC) = &antsFunUsage(2,'..','[asalin, ctemp]',\@fc,'asalin','ctemp',@_);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
286 |
return 'nan' unless numbersp($SA,$TC);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
287 |
my($TCONV) = &TCONV90(); # library uses ITS90
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
288 |
return GSW::gsw_sigma2($SA,$TC/$TCONV);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
289 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
290 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
291 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
292 |
{ my(@fc);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
293 |
sub sigma3(@)
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
294 |
{
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
295 |
my($SA,$TC) = &antsFunUsage(2,'..','[asalin, ctemp]',\@fc,'asalin','ctemp',@_);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
296 |
return 'nan' unless numbersp($SA,$TC);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
297 |
my($TCONV) = &TCONV90(); # library uses ITS90
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
298 |
return GSW::gsw_sigma3($SA,$TC/$TCONV);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
299 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
300 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
301 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
302 |
{ my(@fc);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
303 |
sub sigma4(@)
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
304 |
{
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
305 |
my($SA,$TC) = &antsFunUsage(2,'..','[asalin, ctemp]',\@fc,'asalin','ctemp',@_);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
306 |
return 'nan' unless numbersp($SA,$TC);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
307 |
my($TCONV) = &TCONV90(); # library uses ITS90
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
308 |
return GSW::gsw_sigma4($SA,$TC/$TCONV);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
309 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
310 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
311 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
312 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
313 |
# sound speed
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
314 |
# - input: asalin ctemp press
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
315 |
# - VERIFIED AGAINST [libEOS83.pl]
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
316 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
317 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
318 |
{ my(@fc);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
319 |
sub sound_speed(@)
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
320 |
{
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
321 |
my($SA,$TC,$P) =
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
322 |
&antsFunUsage(3,'...','[asalin, ctemp, press]',
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
323 |
\@fc,'asalin','ctemp','press',@_);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
324 |
return 'nan' unless numbersp($SA,$TC,$P);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
325 |
my($TCONV) = &TCONV90(); # library uses ITS90
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
326 |
return GSW::gsw_sound_speed($SA,$TC/$TCONV,$P);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
327 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
328 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
329 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
330 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
331 |
# Coriolis parameter
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
332 |
# - input: lat
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
333 |
# - copied from [libEOS83.pl]
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
334 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
335 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
336 |
{ my(@fc);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
337 |
sub f(@)
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
338 |
{
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
339 |
my($lat) = &antsFunUsage(1,'f','[lat]',\@fc,'%lat',@_);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
340 |
my($Omega) = 7.292e-5; # Gill (1982)
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
341 |
return 2 * $Omega * sin(rad($lat));
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
342 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
343 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
344 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
345 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
346 |
# acceleration due to gravity
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
347 |
# - input: press lat
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
348 |
# - if %lat is available, it is used
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
349 |
# - CHECKED AGAINST [libEOS83.pl] => DIFFERENCES LESS THAN 0.1%
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
350 |
#----------------------------------------------------------------------
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
351 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
352 |
{ my(@fc);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
353 |
sub g(@)
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
354 |
{
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
355 |
my($P,$LAT);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
356 |
$LAT = &antsParam('lat');
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
357 |
if (numberp($LAT)) {
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
358 |
($P) = &antsFunUsage(1,'.','[press]',\@fc,'press',@_);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
359 |
} else {
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
360 |
($P,$LAT) = &antsFunUsage(2,'..','[press, lat]',\@fc,'press','lat',@_);
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
361 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
362 |
return numbersp($P,$LAT) ? GSW::gsw_grav($LAT,$P) : 'nan';
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
363 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
364 |
}
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
365 |
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
366 |
1;
|
Andreas Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
367 |
|