1 |
mlosch |
1.3 |
C $Header: /u/gcmpack/MITgcm/pkg/ecco/sw_adtg.F,v 1.2 2007/10/09 00:02:51 jmc Exp $ |
2 |
jmc |
1.2 |
C $Name: $ |
3 |
heimbach |
1.1 |
|
4 |
|
|
#include "CPP_OPTIONS.h" |
5 |
|
|
|
6 |
|
|
_RL function SW_ADTG (S,T,P) |
7 |
|
|
|
8 |
|
|
c ================================================================== |
9 |
jmc |
1.2 |
c SUBROUTINE SW_ADTG |
10 |
heimbach |
1.1 |
c ================================================================== |
11 |
|
|
c |
12 |
|
|
c o Calculates adiabatic temperature gradient as per UNESCO 1983 routines. |
13 |
|
|
c |
14 |
jmc |
1.2 |
c started: |
15 |
heimbach |
1.1 |
c |
16 |
|
|
c Armin Koehl akoehl@ucsd.edu |
17 |
|
|
c |
18 |
|
|
c ================================================================== |
19 |
jmc |
1.2 |
c SUBROUTINE SW_ADTG |
20 |
heimbach |
1.1 |
c ================================================================== |
21 |
|
|
|
22 |
|
|
implicit none |
23 |
|
|
_RL a0,a1,a2,a3,b0,b1,c0,c1,c2,c3,d0,d1,e0,e1,e2 |
24 |
|
|
_RL S,T,P |
25 |
|
|
_RL sref |
26 |
|
|
|
27 |
|
|
sref = 35. _d 0 |
28 |
|
|
a0 = 3.5803 _d -5 |
29 |
|
|
a1 = +8.5258 _d -6 |
30 |
|
|
a2 = -6.836 _d -8 |
31 |
|
|
a3 = 6.6228 _d -10 |
32 |
|
|
|
33 |
|
|
b0 = +1.8932 _d -6 |
34 |
|
|
b1 = -4.2393 _d -8 |
35 |
|
|
|
36 |
|
|
c0 = +1.8741 _d -8 |
37 |
|
|
c1 = -6.7795 _d -10 |
38 |
|
|
c2 = +8.733 _d -12 |
39 |
|
|
c3 = -5.4481 _d -14 |
40 |
|
|
|
41 |
|
|
d0 = -1.1351 _d -10 |
42 |
|
|
d1 = 2.7759 _d -12 |
43 |
|
|
|
44 |
|
|
e0 = -4.6206 _d -13 |
45 |
|
|
e1 = +1.8676 _d -14 |
46 |
|
|
e2 = -2.1687 _d -16 |
47 |
|
|
|
48 |
jmc |
1.2 |
SW_ADTG = a0 + (a1 + (a2 + a3*T)*T)*T |
49 |
|
|
& + (b0 + b1*T)*(S-sref) |
50 |
|
|
& + ( (c0 + (c1 + (c2 + c3*T)*T)*T) + (d0 + d1*T)*(S-sref) )*P |
51 |
heimbach |
1.1 |
& + ( e0 + (e1 + e2*T)*T )*P*P |
52 |
|
|
end |