1 | ; |
---|
2 | ; Macros definitions (leave blanks around each code) |
---|
3 | ; |
---|
4 | ; [ ]macro[ = ]sign_1[ ]field_1[ ].... [ ]<legend>[ ][unit] |
---|
5 | ; or |
---|
6 | ; [ ]macro[ =: ]<name of idl function to call>[ ]<legend>[ ][unit] |
---|
7 | |
---|
8 | ; WORK |
---|
9 | |
---|
10 | soellips =: make_work <Ellipse> [-] |
---|
11 | |
---|
12 | ; General macros & stats |
---|
13 | |
---|
14 | ; Linear fit |
---|
15 | |
---|
16 | alpha =: make_linfit <Total HF - SST linear fit> [W.m-2.C-1] \bils, tsol/ |
---|
17 | swalph =: make_linfit <SW - SST linear fit> [W.m-2.C-1] \SWsfc, tsol/ |
---|
18 | lwalph =: make_linfit <LW - SST linear fit> [W.m-2.C-1] \LWsfc, tsol/ |
---|
19 | lhalph =: make_linfit <Latent HF - SST linear fit> [W.m-2.C-1] \lat_oce, tsol/ |
---|
20 | alphera =: make_linfit <Total HF - SST linear fit> [W.m-2.C-1] \bils, ts/ |
---|
21 | swalpera =: make_linfit <SW - SST linear fit> [W.m-2.C-1] \ssr, ts/ |
---|
22 | lwalpera =: make_linfit <LW - SST linear fit> [W.m-2.C-1] \str, ts/ |
---|
23 | lhalpera =: make_linfit <Latent HF - SST linear fit> [W.m-2.C-1] \slhf, ts/ |
---|
24 | alphoa =: make_linfit <Total HF - SST linear fit> [W.m-2.C-1] \qnet, sosstsst/ |
---|
25 | swalpoa =: make_linfit <SW - SST linear fit> [W.m-2.C-1] \SWsfc, sosstsst/ |
---|
26 | lwalpoa =: make_linfit <LW - SST linear fit> [W.m-2.C-1] \oaLWsfc, sosstsst/ |
---|
27 | lhalpoa =: make_linfit <Latent HF - SST linear fit> [W.m-2.C-1] \slhf, sosstsst/ |
---|
28 | |
---|
29 | ; Correlations |
---|
30 | |
---|
31 | tauxn3corr =: make_correldomain <Taux-nino3 SST correl.> [ ] \taux_oce, nino3_sst/ |
---|
32 | txn3corr =: make_correldomain <Taux-nino3 SST correl.> [ ] \taux, nino3_sst/ |
---|
33 | ufxn3corr =: make_correldomain <Taux-nino3 SST correl.> [ ] \uflx, nino3_sst/ |
---|
34 | bilsn3corr =: make_correldomain <Heat flux-nino3 SST correl.> [ ] \bils, nino3_sst/ |
---|
35 | pcorrsst =: make_correlation <Precipitation-SST correlation> [ ] \precip, tsol/ |
---|
36 | lhcorrsst =: make_correlation <Latent HF-SST correlation> [ ] \lat_oce, tsol/ |
---|
37 | swcorrsst =: make_correlation <SW-SST correlation> [ ] \SWsfc, tsol/ |
---|
38 | lwcorrsst =: make_correlation <LW-SST correlation> [ ] \LWsfc, tsol/ |
---|
39 | hfcorrsst =: make_correlation <Total HF-SST correlation> [ ] \bils, tsol/ |
---|
40 | |
---|
41 | ; Standard deviations |
---|
42 | ; for stats, add a \field/ = base field to work on |
---|
43 | |
---|
44 | sosstdev =: make_stddev <SST Std Dev> [C] \sosstsst/ |
---|
45 | sstdev =: make_stddev <SST Std Dev> [C] \sst/ |
---|
46 | votdev =: make_stddev <Votemper Std Dev> [C] \votemper/ |
---|
47 | tempdev =: make_stddev <SST Std Dev> [C] \temp/ |
---|
48 | tosdev =: make_stddev <SST Std Dev> [C] \tos/ |
---|
49 | tasdev =: make_stddev <TAS Std Dev> [C] \tas/ |
---|
50 | sotoxdev =: make_stddev <Taux Std Dev> [Nm-2] \sozotaux/ |
---|
51 | sotoydev =: make_stddev <Tauy Std Dev> [Nm-2] \sometauy/ |
---|
52 | tempdev =: make_stddev <SST Std Dev> [C] \temp/ |
---|
53 | tsdev =: make_stddev <Surface Temp. Std Dev> [C] \ts/ |
---|
54 | tadev =: make_stddev <TA Std Dev> [C] \ta/ |
---|
55 | stmpdev =: make_stddev <Surface Temp. Std Dev> [C] \stmp/ |
---|
56 | tsoldev =: make_stddev <Surface Temp. Std Dev> [C] \tsol/ |
---|
57 | tsolocedev =: make_stddev <Surface Temp. Std Dev> [C] \tsol_oce/ |
---|
58 | tasdev =: make_stddev <TAS Std Dev> [C] \tas/ |
---|
59 | tauudev =: make_stddev <Taux Std Dev> [Pa] \tauu/ |
---|
60 | toxdev =: make_stddev <Taux Std Dev> [Pa] \taux/ |
---|
61 | toydev =: make_stddev <Tauy Atm Std Dev> [Nm-2] \tauy/ |
---|
62 | tauxdev =: make_stddev <Taux Std Dev> [Pa] \taux_oce/ |
---|
63 | tauvdev =: make_stddev <Tauy Std Dev> [Pa] \tauv/ |
---|
64 | tauydev =: make_stddev <Tauy Std Dev> [Pa] \tauy_oce/ |
---|
65 | srftdev =: make_stddev <Surf. Temp. Std Dev.> [K] \srft/ |
---|
66 | airdev =: make_stddev <Air Temp Std Dev> [C] \air/ |
---|
67 | uflxdev =: make_stddev <Taux Std Dev> [Nm-2] \uflx/ |
---|
68 | vflxdev =: make_stddev <Tauy Std Dev> [Nm-2] \vflx/ |
---|
69 | precdev =: make_stddev <Precip. Std Dev> [mm.day-1] \precip/ |
---|
70 | bilsdev =: make_stddev <SFC Heat Flux Std Dev> [Wm-2] \bils/ |
---|
71 | sohefdev =: make_stddev <SFC Heat Flux Std Dev> [Wm-2] \sohefldo/ |
---|
72 | cldtdev =: make_stddev <Mean Cloud Std Dev> [%] \cldt/ |
---|
73 | olrdev =: make_stddev <OLR Std Dev> [Wm-2] \olr/ |
---|
74 | topldev =: make_stddev <OLR Std Dev> [Wm-2] \topl/ |
---|
75 | cfrlwdev =: make_stddev <LW CRF Std Dev> [Wm-2] \crflw/ |
---|
76 | cfrswdev =: make_stddev <SW CRF Std Dev> [Wm-2] \crfsw/ |
---|
77 | cfrtotdev =: make_stddev <Total CRF Std Dev> [Wm-2] \crftot/ |
---|
78 | q2mdev =: make_stddev <Q2m Std Dev> [kg.kg-1] \q2m/ |
---|
79 | oaq2mdev =: make_stddev <Q2m Std Dev> [g.kg-1] \oaq2m/ |
---|
80 | wostd =: make_stddev <Vertical velocity stddev> [m.day-1] \wo/ |
---|
81 | ztxdev =: make_stddev <Taux Oce Std Dev> [Nm-2] \ztx/ |
---|
82 | mtydev =: make_stddev <Tauy Oce Std Dev> [Nm-2] \mty/ |
---|
83 | nshfsdev =: make_stddev <Net Down Non Solar Heat Flx Std Dev> [Wm-2] \nshfs/ |
---|
84 | shfsdev =: make_stddev <Net Down Solar Heat Flx Std Dev> [Wm-2] \shfs/ |
---|
85 | swdev =: make_stddev <SW net SFC Std Dev> [Wm-2] \SWsfc/ |
---|
86 | lwdev =: make_stddev <LW net SFC Std Dev> [Wm-2] \LWsfc/ |
---|
87 | thfsdev =: make_stddev <Net Down Total Heat Flx Std Dev> [Wm-2] \thfs/ |
---|
88 | sohefldodev =: make_stddev <Net Downwd Heat Flx Std Dev> [Wm-2] \sohefldo/ |
---|
89 | sonsfldodev =: make_stddev <Non Solar Heat Flx Std Dev> [Wm-2] \sonsfldo/ |
---|
90 | soshfldodev =: make_stddev <Solar Heat Flx Std Dev> [Wm-2] \soshfldo/ |
---|
91 | precipdev =: make_stddev <Precip Std Dev> [mm(day-1)] \precip/ |
---|
92 | pcpdev =: make_stddev <Precipitations Std Dev> [mm(day-1)] \pcp/ |
---|
93 | topldev =: make_stddev <OLR Std Dev> [Wm-2] \topl/ |
---|
94 | |
---|
95 | tsA =: make_anomaly < Skin temperature anomaly > [Kelvin] \ts/ |
---|
96 | |
---|
97 | ; GRADIENTS |
---|
98 | |
---|
99 | sosstgrady =: make_grad <Meridional SST Gradients> [C.(100km)-1] \sosstsst, y/ |
---|
100 | sosstgradx =: make_grad <Zonal SST Gradients> [C.(100km)-1] \sosstsst, x/ |
---|
101 | tauxgradx =: make_grad <Zonal Taux Gradients> [Pa.(m)-1] \sozotaux, x/ |
---|
102 | tauxgrady =: make_grad <Meridional Taux Gradients> [Pa.(m)-1] \sozotaux, y/ |
---|
103 | tsolgrady =: make_grad <Meridional TSOL Gradients> [C.(100km)-1] \tsol, y/ |
---|
104 | tsolgradx =: make_grad <Zonal TSOL Gradients> [C.(100km)-1] \tsol, x/ |
---|
105 | icecovgrady =: make_grad <Zonal ICECOV Gradients> [No units] \soicecov, y/ |
---|
106 | |
---|
107 | ; RATIO |
---|
108 | |
---|
109 | ratiotaux =: make_ratio <Ratio> [no units] \taux, ztauxx_SCi, ztemp_taux, ztauxx_SCi/ |
---|
110 | ratiotauy =: make_ratio <Ratio> [no units] \tauy, ztauyy_SCi, ztemp_tauy, ztauyy_SCi/ |
---|
111 | ratiosflx =: make_ratio <Ratio> [no units] \soshfoce_m, soshfoce_SCi, temp_soshfoce, soshfoce_SCi/ |
---|
112 | rationsflx =: make_ratio <Ratio> [no units] \sonsfoce_m, sonsfoce_SCi, temp_sonsfoce, sonsfoce_SCi/ |
---|
113 | |
---|
114 | ; LINEAR INTERP |
---|
115 | |
---|
116 | tauxSCi =: make_interp <Interp> [Nm-2] \ztauxx_SCa, 0.533333, ztauxx_SCb, 0.466667/ |
---|
117 | tauySCi =: make_interp <Interp> [Nm-2] \ztauyy_SCa, 0.533333, ztauyy_SCb, 0.466667/ |
---|
118 | sohefoce-f-m =: make_interp <Interp> [Wm-2] \sohefldo_f, 1.0, sonsfoce_m, -1.0, soshfoce_m, -1.0/ |
---|
119 | sonsfoce-f-m =: make_interp <Interp> [Wm-2] \sohefldo_f, 1.0, soshfldo_f, -1.0, sonsfoce_m, -1.0/ |
---|
120 | soshfoce-f-m =: make_interp <Interp> [Wm-2] \soshfldo_f, 1.0, soshfoce_m, -1.0/ |
---|
121 | |
---|
122 | new_var := make_interp <...> [units] \var1, coef1, var2, coef2/ |
---|
123 | |
---|
124 | ; CDH4 HEAT FLUX |
---|
125 | nshfs = soll + lat_oce + sens <Net Down Non Solar Heat Flux at Surf> [Wm-2] |
---|
126 | shfs = sols <Net Down Solar Heat Flux at Surf> [W/m2] |
---|
127 | thfs = soll + lat_oce + sens + sols <Net Down Total Heat Flux at Surf> [Wm-2] |
---|
128 | |
---|
129 | ; ERA40 HEAT FLUX |
---|
130 | nshfs = str + slhf + sshf <Net Down Non Solar Heat Flux at Surf> [Wm-2] |
---|
131 | shfs = ssr <Net Down Solar Heat Flux at Surf> [W/m2] |
---|
132 | thfs = ssr + str + slhf + sshf <Net Down Total Heat Flux at Surf> [Wm-2] |
---|
133 | |
---|
134 | ; NCEP HEAT FLUX |
---|
135 | nshf# = nlwrs + lhtfl + shtfl <Net Down Non Solar Heat Flux at Surf> [W/m2] |
---|
136 | shf# = nswrs <Net Down Solar Heat Flux at Surf> [W/m2] |
---|
137 | thf# = nswrs + nlwrs + lhtfl + shtfl <Net Down Total Heat Flux at Surf> [W/m2] |
---|
138 | |
---|
139 | ; Kurtosis et Skewness |
---|
140 | sosstskew =: make_skewness <SST Skewness> [C] \sosstsst/ |
---|
141 | sosstkurt =: make_kurtosis <SST Kurtosis> [C] \sosstsst/ |
---|
142 | tsskew =: make_skewness <SST Skewness> [C] \ts/ |
---|
143 | tasskew =: make_skewness <SST Skewness> [C] \tas/ |
---|
144 | tauuskew =: make_skewness <TAUX Atm Skewness> [C] \tauu/ |
---|
145 | tauvskew =: make_skewness <TAUY Atm Skewness> [C] \tauv/ |
---|
146 | tauxskew =: make_skewness <TAUX Oce Skewness> [C] \sozotaux/ |
---|
147 | tauyskew =: make_skewness <TAUY Oce Skewness> [C] \sometauy/ |
---|
148 | |
---|
149 | ; Ocean |
---|
150 | |
---|
151 | ; OPA |
---|
152 | vozonbsf =: make_msf2 <Meridional Stream Function> [Sv] |
---|
153 | vodenpot =: make_eos <Potential Density> [kg/m3] |
---|
154 | vocrtmod =: make_crtm <Current Module> [m/s] |
---|
155 | |
---|
156 | voenergy =: make_energetics <field> [unit] |
---|
157 | |
---|
158 | vodeptht =: make_depth <Depth> [m] |
---|
159 | vosigthi =: make_depth <Sigma Thickness> [m] |
---|
160 | vosigvol =: make_depth <Sigma Volume> [m3] |
---|
161 | |
---|
162 | vozotrax =: make_xtran <Zonal Transport> [Sv] |
---|
163 | vometray =: make_ytran <Meridional Transport> [Sv] |
---|
164 | vovetraz =: make_ztran <Vertical Transport> [Sv] |
---|
165 | |
---|
166 | sowincur =: make_wcurl <Wind Stress Curl> [N/m] |
---|
167 | sowindiv =: make_wdiv <Wind Stress Divergence> [N/m] |
---|
168 | sowinmod =: make_wm <Wind Stress Module> [N/m2] |
---|
169 | so20cdep =: make_thdepth <Depth of 20C Isotherm> [m] |
---|
170 | sobarstf =: make_bsf <Barotropic Stream Function> [Sv] |
---|
171 | |
---|
172 | sodenflx =: make_denflx <Density Flux> [kg/m2/s] |
---|
173 | sodenflw =: make_denflw <Fresh Water Density Flux> [kg/m2/s] |
---|
174 | |
---|
175 | sonsfldo = sohefldo - soshfldo <Non Solar Heat Flux> [W/m2] |
---|
176 | sohefatm = sohefldo - sohefldp <Downward Heat Flux Atmos> [W/m2] |
---|
177 | sowatatm = sowaflup - sowafldp <Upward Water Flux Atmos> [Kg/m2/s] |
---|
178 | sohefcmp = q - qrp <Net Downward Heat Flux> [W/M2] |
---|
179 | |
---|
180 | sozonfht = sozonfha + sozonfhd <Total Heat Transport> [PW] |
---|
181 | sozanfht = sozanfha + sozanfhd <Atlantic Total Heat Transport> [PW] |
---|
182 | sozonfst = sozonfsa + sozonfsd <Total Salt Transport> [Giga.g/s] |
---|
183 | sozanfst = sozanfsa + sozanfsd <Atlantic Total Salt Transport> [Giga.g/s] |
---|
184 | sozdnfht = sozonfha + sozonfhd - sozanfha - sozanfhd <Indopac Total Heat Transport> [PW] |
---|
185 | sozdnfhg = sozonfhg - sozanfhg <Indopac Gyre Heat Transport> [PW] |
---|
186 | sozdnfho = sozonfho - sozanfho <Indopac Overturning Heat Transport> [PW] |
---|
187 | sozdnfhd = sozonfhd - sozanfhd <Indopac Diffusive Heat Transport> [PW] |
---|
188 | sozdnfst = sozonfsa + sozonfsd - sozanfsa - sozanfsd <Indopac Total Salt Transport> [Giga.g/s] |
---|
189 | sozdnfsg = sozonfsg - sozanfsg <Indopac Gyre Salt Transport> [PW] |
---|
190 | sozdnfso = sozonfso - sozanfso <Indopac Overturning Salt Transport> [PW] |
---|
191 | sozdnfsd = sozonfsd - sozanfsd <Indopac Diffusive Salt Transport> [PW] |
---|
192 | |
---|
193 | somltten = somlbtdz + somlbtdt + somlbtdv <T Total Vertical Entrainment> [C/s] |
---|
194 | somlttis = somlttdh + somlbtdv <T Total Isopycnal Diffusion> [C/s] |
---|
195 | somlttah = somlttax + somlttay <T Horizontal Advection> [C/s] |
---|
196 | somlttad = somlttax + somlttay + somlttaz <T Total Advection> [C/s] |
---|
197 | somltsen = somlbsdz + somlbsdt + somlbsdv <S Total Vertical Entrainment> [PSU/s] |
---|
198 | somltsis = somltsdh + somlbsdv <T Total Isopycnal Diffusion> [PSU/s] |
---|
199 | somltsah = somltsax + somltsay <S Horizontal Advection> [PSU/s] |
---|
200 | somltsad = somltsax + somltsay + somltsaz <S Total Advection> [PSU/s] |
---|
201 | |
---|
202 | ; HADAM |
---|
203 | totprep = lsrain + lssnow + cvrain + cvsnow <E-P> [kg m-2 s-1] |
---|
204 | -e-mp = evap - lsrain - lssnow - cvrain - cvsnow <E-P> [kg m-2 s-1] |
---|
205 | nrads = solar + longwave - sh - 2.501e6 * evap <Net surface heat flux> [W m-2] |
---|
206 | toabud = field200 - field201 - olr <Net Radiation at TOA> [W m-2] |
---|
207 | totcld = field31 + field32 + field33 <Total Could Amount> [ ] |
---|
208 | |
---|
209 | ; ECHAM4 |
---|
210 | -e-mp = - evap - tprep <E-P> [m/s] |
---|
211 | e-mp = - qevap - aprl - aprc - aprs <E-P> [m/s] |
---|
212 | emp = - evap - tprc <E-P> [m/s] |
---|
213 | -n-rads = ahfs + ahfl + srads + trads <Net surface heat flux> [W/m**2] |
---|
214 | curltau =: make_curltau <Wind Stress Curl> [N/m] |
---|
215 | |
---|
216 | ; NCEP |
---|
217 | nshfs = - nlwrs - lhtfl - shtfl <Non Solar Heat Flux at Surf> [W/m^2] |
---|
218 | ntrs = - nswrs - nlwrs - lhtfl - shtfl <Net Downward Heat Flux at Surf> [W/m^2] |
---|
219 | |
---|
220 | ; Other obs |
---|
221 | oarnet = oaLWsfc + SWsfc <Net SFC radiative flux> [W/m^2] |
---|
222 | |
---|