1 | ; |
---|
2 | ;------------------------------------------------------------------------------ |
---|
3 | ; |
---|
4 | ; This script makes plots of biological simulations |
---|
5 | ; |
---|
6 | ; works at BARROW, ISPOL, YROSIAE |
---|
7 | ; |
---|
8 | ; STOCKS (./m2) |
---|
9 | ; |
---|
10 | ; organic carbon |
---|
11 | ; stock |
---|
12 | ; NO3 stock |
---|
13 | ; PO4 stock |
---|
14 | ; DSi |
---|
15 | ; |
---|
16 | ; (c) Martin Vancoppenolle, UCL-ASTR, june 2007 |
---|
17 | ; reviewed may 2008 |
---|
18 | ; reviewed feb 2010, for biological model |
---|
19 | ; reviewed aug-oct 2014, Helsinki/Lille |
---|
20 | ; |
---|
21 | ;------------------------------------------------------------------------------ |
---|
22 | ; |
---|
23 | i_auto = 1 ; 1=use exp_id.dat; 0=use manual mode with sensitivity runs |
---|
24 | plot_type = 'DEFAULT' ; |
---|
25 | miss_val = -9999. |
---|
26 | ; |
---|
27 | ;============================================================================== |
---|
28 | ; General Options |
---|
29 | ;============================================================================== |
---|
30 | ; |
---|
31 | |
---|
32 | IF ( i_auto EQ 1 ) THEN BEGIN ; automatic mode |
---|
33 | |
---|
34 | i_ylog = 0 |
---|
35 | nruns = 1 |
---|
36 | control_run = 'E001' & indir = '' & outdir = '' & dt = 86400 & c_bio_model = 'BFMSI' & site = 'TOURNAI' |
---|
37 | |
---|
38 | OPENR, 11, 'exp_id.dat' |
---|
39 | READF, 11, control_run & READF, 11, indir & READF, 11, outdir |
---|
40 | READF, 11, dt & READF, 11, c_bio_model & READF, 11, site |
---|
41 | CLOSE, 11 |
---|
42 | |
---|
43 | PRINT, control_run |
---|
44 | PRINT, indir |
---|
45 | PRINT, outdir |
---|
46 | PRINT, dt |
---|
47 | PRINT, c_bio_model |
---|
48 | PRINT, site |
---|
49 | |
---|
50 | ENDIF |
---|
51 | |
---|
52 | ;------------- |
---|
53 | ; Manual mode |
---|
54 | ;------------- |
---|
55 | IF ( i_auto EQ 0 ) THEN BEGIN |
---|
56 | |
---|
57 | c_bio_model = 'KRILL' |
---|
58 | site = 'ISPOL' |
---|
59 | indir_base = '/Users/ioulianikolskaia/Boulot/CODES/BFMLIM_2013/BFM-LIM-2506_2014/LIM/RUN/' |
---|
60 | outdir = '/Users/ioulianikolskaia/Boulot/SCIENCE/PLOT_SCRIPTS/LIM1D_BIO/IDL/plots/' |
---|
61 | dt = 3600. ; time step |
---|
62 | control_run = 'ISPOL_CTL_LONG_01' |
---|
63 | |
---|
64 | ; limitations processes |
---|
65 | sensiti_run = [ 'ISPOL_PCS_LONG_001', 'ISPOL_PCS_LONG_002', 'ISPOL_PCS_LONG_003', 'ISPOL_PCS_LONG_004', 'ISPOL_PCS_LONG_005', 'ISPOL_PCS_LONG_006', 'ISPOL_PCS_LONG_007' ] |
---|
66 | i_ylog = 1 ; log axis for carbon |
---|
67 | |
---|
68 | ; limitations processes - version 2 |
---|
69 | control_run = 'ISPOL_CHL_LONG_001' |
---|
70 | sensiti_run = [ 'ISPOL_PCS_LONG_001', 'ISPOL_PCS_LONG_008', 'ISPOL_PCS_LONG_009', 'ISPOL_PCS_LONG_010' ] |
---|
71 | i_ylog = 1 ; log axis for carbon |
---|
72 | |
---|
73 | ; #3 parameter values |
---|
74 | control_run = 'ISPOL_CTL_LONG_05' |
---|
75 | sensiti_run = [ 'ISPOL_PCS_LONG_012','ISPOL_PCS_LONG_013','ISPOL_PCS_LONG_014','ISPOL_PCS_LONG_015','ISPOL_PCS_LONG_016', $ |
---|
76 | 'ISPOL_PCS_LONG_017','ISPOL_PCS_LONG_018','ISPOL_PCS_LONG_019','ISPOL_PCS_LONG_020','ISPOL_PCS_LONG_021', $ |
---|
77 | 'ISPOL_PCS_LONG_022','ISPOL_PCS_LONG_023', $ |
---|
78 | 'ISPOL_PCS_LONG_024','ISPOL_PCS_LONG_025','ISPOL_PCS_LONG_026','ISPOL_PCS_LONG_027','ISPOL_PCS_LONG_028', $ |
---|
79 | 'ISPOL_PCS_LONG_029','ISPOL_PCS_LONG_030','ISPOL_PCS_LONG_031','ISPOL_PCS_LONG_032','ISPOL_PCS_LONG_033', $ |
---|
80 | 'ISPOL_PCS_LONG_034','ISPOL_PCS_LONG_035' ] |
---|
81 | i_ylog = 0 ; log axis for carbon |
---|
82 | |
---|
83 | ; ; long run vs short run |
---|
84 | ; sensiti_run = [ 'ISPOL_PCS_LONG_001', 'ISPOL_CTL_SUMMER_01', 'ISPOL_PCS_SUMMER_001' ] |
---|
85 | ; i_ylog = 0 ; no log axis for carbon |
---|
86 | |
---|
87 | dummy = SIZE(sensiti_run) |
---|
88 | nruns = dummy(1) + 1 ; sensitivity runs + 1 control run |
---|
89 | print, 'nruns ', nruns |
---|
90 | |
---|
91 | indir = STRARR(nruns) |
---|
92 | indir(0) = indir_base+control_run+'/' |
---|
93 | FOR i = 1, nruns-1 DO BEGIN |
---|
94 | indir(i) = indir_base+sensiti_run(i-1)+'/' |
---|
95 | ENDFOR |
---|
96 | |
---|
97 | ENDIF |
---|
98 | |
---|
99 | ; |
---|
100 | ;============================================================================== |
---|
101 | ; Graphic Options |
---|
102 | ;============================================================================== |
---|
103 | ; |
---|
104 | |
---|
105 | ;-------------------------------- |
---|
106 | ;--- plot_type dependent options |
---|
107 | ;-------------------------------- |
---|
108 | |
---|
109 | IF ( plot_type EQ 'DEFAULT' ) THEN BEGIN |
---|
110 | |
---|
111 | IF ( i_auto EQ 1 ) THEN stamp_out = control_run+'_stocks' |
---|
112 | |
---|
113 | ; limitations processes |
---|
114 | IF ( i_auto EQ 0 ) THEN stamp_out = control_run+'_stocks_PCS' |
---|
115 | ct = 13 |
---|
116 | ; version 1 |
---|
117 | colors = [ 0, 0 , 50 , 255 , 100 , 50 , 255 , 155 ] |
---|
118 | linestyle = [ 0, 2 , 1 , 1 , 1 , 0 , 0 , 0 ] |
---|
119 | thick = [ 5, 5. , 2 , 2 , 2 , 2 , 2 , 2 ] |
---|
120 | |
---|
121 | ; version 2 |
---|
122 | IF ( i_auto EQ 0 ) THEN stamp_out = control_run+'_stocks_PCS2' |
---|
123 | ct = 8 |
---|
124 | colors = [ 150, 0 , 0 , 0 , 150 ] |
---|
125 | linestyle = [ 0, 0 , 2 , 0 , 0 ] |
---|
126 | thick = [ 5, 5 , 5 , 2 , 2 ] |
---|
127 | |
---|
128 | ; long run vs short runs, with and without bio |
---|
129 | ; IF ( i_auto EQ 0 ) THEN stamp_out = control_run+'_stocks_LNG' |
---|
130 | ; ct = 8 |
---|
131 | ; colors = [ 100, 0 , 100, 0 ] |
---|
132 | ; linestyle = [ 0, 0, 0, 0 ] |
---|
133 | ; thick = [ 5, 5, 2, 2 ] |
---|
134 | |
---|
135 | ; #3 1050% parameters |
---|
136 | IF ( i_auto EQ 0 ) THEN stamp_out = control_run+'_stocks_param10pct' |
---|
137 | ct = 11 |
---|
138 | colors = [ 0, 250 , 250 , 250 , 250 , 250 , 250 , 250 , 250 , 250 , 250 , 250 , 250, $ |
---|
139 | 100 , 100 , 100 , 100 , 100 , 100 , 100 , 100 , 100 , 100 , 100 , 100 ] |
---|
140 | linestyle = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, $ |
---|
141 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] |
---|
142 | thick = [ 05, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, $ |
---|
143 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] |
---|
144 | |
---|
145 | cs = 2.0 ; charsize |
---|
146 | !X.MARGIN = [11,3] |
---|
147 | !Y.MARGIN = [3,3] |
---|
148 | x_size = 8. |
---|
149 | y_size = 8. |
---|
150 | add_obs = 'YES' |
---|
151 | |
---|
152 | ENDIF |
---|
153 | |
---|
154 | file_name = stamp_out+'.ps' |
---|
155 | |
---|
156 | numplot_x = 4 ; number of horizontal plots |
---|
157 | numplot_y = 2 ; number of vertical plots |
---|
158 | |
---|
159 | device = 'PS' ; 'PS' or 'X' |
---|
160 | |
---|
161 | ;-------------------------------- |
---|
162 | ;--- define output plots |
---|
163 | ;-------------------------------- |
---|
164 | figuresize_x = numplot_x * x_size ; figure size on x direction |
---|
165 | figuresize_y = numplot_y * y_size ; figure size on y direction |
---|
166 | set_plot, device |
---|
167 | IF ( device EQ 'PS' ) THEN BEGIN |
---|
168 | device, /COLOR, /LANDSCAPE, filename=outdir+file_name, $ |
---|
169 | XSIZE=figuresize_x,YSIZE=figuresize_y,FONT_SIZE=9.0 |
---|
170 | loadct, ct |
---|
171 | ENDIF |
---|
172 | |
---|
173 | IF ( device EQ 'X' ) THEN BEGIN |
---|
174 | xsize = 1200 |
---|
175 | ysize = 800 |
---|
176 | colorkey = 'rd' |
---|
177 | init_graphics_x, xsize, ysize, colorkey |
---|
178 | ENDIF |
---|
179 | |
---|
180 | ; |
---|
181 | ;============================================================================== |
---|
182 | ; DATA COLLECTION / DIAGNOSTICS |
---|
183 | ;============================================================================== |
---|
184 | ; |
---|
185 | |
---|
186 | ; |
---|
187 | ;------------------------------------------------------------------------------ |
---|
188 | ; OBS ... |
---|
189 | ;------------------------------------------------------------------------------ |
---|
190 | ; |
---|
191 | |
---|
192 | ; taken from data_ISPOL.pro |
---|
193 | IF ( site EQ 'ISPOL' ) THEN BEGIN |
---|
194 | doy_obs = [ 334 , 339 , 344 , 349 , 354 , 360 , 365 ] |
---|
195 | Ichla_obs = [ 2.29791 , 2.59326 , 2.59555 , 1.96935 , 3.52818 , 3.39265 , 2.25618 ] |
---|
196 | ISi_obs = [ 2.59932 , 1.41743 , 1.93791, 1.61004, 1.48831, 2.32319 , 1.47295 ] |
---|
197 | IN_obs = [ 0.872224, 0.990353, 1.24385, 1.54099, 1.59959, 0.644944, miss_val] |
---|
198 | IP_obs = [ 0.663441, 0.329396, 0.265860, 0.525806, 0.609341, 0.280607, miss_val] |
---|
199 | ENDIF |
---|
200 | |
---|
201 | IF ( site EQ 'BARROW' ) THEN BEGIN |
---|
202 | doy_obs = [ 29, 34 , 86 , 89 , 94 , 97 , 100 , 128 , 132 , 156 ] |
---|
203 | Ichla_obs = [ 0.409588 , 0.369906 , 2.61920 , 0.914727 , 2.98023 , 4.03025 , 9.07010 , 0.812893, 4.69713 , 9.04900 ] |
---|
204 | ; replace first IN (./m2) value by 1.48*initial thickness, otherwise it is screwed |
---|
205 | ; IN value from data = 0.9842 (h=0.65) hence we replace by 1.48*0.7505 = 0.36024 |
---|
206 | IN_obs = [ 9999.99, 1.110740 , 9999.99 , 9999.99 , 9999.99 , 9999.99 , 1.53789 , 1.02420 , 9999.99 , 0.539000 ] |
---|
207 | ; same for IP, replace 0.119700 by 0.18*0.7505 = 0.13509 |
---|
208 | IP_obs = [ 9999.99 , 0.135090 , 9999.99 , 9999.99 , 9999.99 , 9999.99 , 0.236833 , 0.253800 , 9999.99 , 0.251000 ] |
---|
209 | ISi_obs = REPLICATE(1,10) * miss_val |
---|
210 | ENDIF |
---|
211 | |
---|
212 | IF ( site EQ 'YROSIAE' ) THEN BEGIN |
---|
213 | ; YROSIAE |
---|
214 | ; taken from yrosiae ASPECT log sheets (Fripiat et al, oct 2015) |
---|
215 | doy_obs = [ 263 , 299, 318 , 279 , 306 , 327, 292 , 312 ,335 ] |
---|
216 | Ichla_obs = [ 1.4683 , 4.6038 ,45.4413, 128.0884, 44.5830 ,219.1416 ,208.6254 ,108.0657 , 87.9038 ] |
---|
217 | ISi_obs = [ 22.6631 , 21.1690 , 19.2174, 18.8949 , 18.9943, 18.9517, 20.5963, 16.6855, 13.8374 ] |
---|
218 | IN_obs = [ 9.0613 , 5.6130 , 9.4723, 10.0763, 11.4708 , 14.6193 , 14.4107 , 4.7585 , 2.1876 ] |
---|
219 | IP_obs = [ 0.4976 , 0.4067 , 1.1311, 1.8459, 2.3452 , 3.7857 , 3.6948 , 1.3270 , 1.2602 ] |
---|
220 | ENDIF |
---|
221 | |
---|
222 | ; |
---|
223 | ;------------------------------------------------------------------------------ |
---|
224 | ; MODEL DIAGNOSTICS |
---|
225 | ;------------------------------------------------------------------------------ |
---|
226 | ; |
---|
227 | |
---|
228 | ; *** control run |
---|
229 | open_fields_v7, indir(0), control_run, c_bio_model, $ |
---|
230 | znumt, zdoy, ts_d, ts_m, $ |
---|
231 | h_i, h_s, z_ip, z_ib, s_i, t_i, e_i, PAR, Ra, $ |
---|
232 | dhib, dhisu, dhisi, $ |
---|
233 | DAFb, NO3b, PO4b, DSib, chla, eoCb, $ |
---|
234 | Argb, Argbub, $ |
---|
235 | Oxyb, Oxybub, $ |
---|
236 | DICb, Alkb, CO2b, CO2bub, $ |
---|
237 | CO2aq, HCO3m, CO32m, pH, pCO2, Ikab, $ |
---|
238 | dFeb, aFeb, eFeb, $ |
---|
239 | DAFt, NO3t, PO4t, DSit, eoCt, Argt, $ |
---|
240 | DICt, Alkt, CO2t, Ikat, $ |
---|
241 | dFet, aFet, eFet, $ |
---|
242 | FDAbd, FDAbpos, FDAsi, $ |
---|
243 | FNO3, FNO3bpos, FNO3si, $ |
---|
244 | FCO2_atm, FCO2_bub, $ |
---|
245 | syn, rsp, lys, rem, $ |
---|
246 | lim_lig, lim_no3, lim_po4, lim_dsi, lim_tem, lim_sal |
---|
247 | |
---|
248 | ;open_fields_v6, indir(0), control_run, c_bio_model, $ |
---|
249 | ; znumt, zdoy, ts_d, ts_m, $ |
---|
250 | ; h_i, h_s, z_ip, z_ib, s_i, t_i, e_i, PAR, Ra, $ |
---|
251 | ; dhib, dhisu, dhisi, $ |
---|
252 | ; DAFb, NO3b, PO4b, DSib, chla, $ |
---|
253 | ; DAFt, NO3t, PO4t, DSit, $ |
---|
254 | ; FDAbd, FDAbpos, FDAsi, $ |
---|
255 | ; FNO3, FNO3bpos, FNO3si, $ |
---|
256 | ; syn, lys, rem, $ |
---|
257 | ; lim_lig, lim_no3, lim_po4, lim_dsi, lim_tem, lim_sal |
---|
258 | |
---|
259 | |
---|
260 | zsize = SIZE(DAFb) |
---|
261 | nlay = zsize(1) ; number of layers |
---|
262 | nts = zsize(2) ; number of time steps |
---|
263 | |
---|
264 | ; define arrays |
---|
265 | Ichla = FLTARR(nruns, nts) & Ichla(*,*) = 0.0 |
---|
266 | IN = FLTARR(nruns, nts) & IN(*,*) = 0.0 |
---|
267 | IP = FLTARR(nruns, nts) & IP(*,*) = 0.0 |
---|
268 | ISi = FLTARR(nruns, nts) & ISi(*,*) = 0.0 |
---|
269 | IC = FLTARR(nruns, nts) & IC(*,*) = 0.0 |
---|
270 | IeoC = FLTARR(nruns, nts) & IeoC(*,*) = 0.0 |
---|
271 | Iika = FLTARR(nruns, nts) & Iika(*,*) = 0.0 |
---|
272 | Csyn = DBLARR(nruns, nts) & Csyn(*,*) = 0.0 |
---|
273 | Crsp = DBLARR(nruns, nts) & Crsp(*,*) = 0.0 |
---|
274 | Crem = DBLARR(nruns, nts) & Crem(*,*) = 0.0 |
---|
275 | NPP = FLTARR(nruns) & NPP(*) = 0.0 |
---|
276 | GPP = FLTARR(nruns) & GPP(*) = 0.0 |
---|
277 | NCP = FLTARR(nruns) & NCP(*) = 0.0 |
---|
278 | numt = FLTARR(nruns, nts) & numt(*,*) = 0.0 |
---|
279 | doy = FLTARR(nruns, nts) & doy(*,*) = 0.0 |
---|
280 | ntss = LONARR(nruns) & ntss(*) = 0 |
---|
281 | |
---|
282 | ; diagnostics |
---|
283 | cc2stock, z_ib, chla, zdummy & Ichla(0,*) = zdummy |
---|
284 | cc2stock, z_ib, NO3b, zdummy & IN(0,*) = zdummy |
---|
285 | cc2stock, z_ib, PO4b, zdummy & IP(0,*) = zdummy |
---|
286 | cc2stock, z_ib, DSib, zdummy & ISi(0,*) = zdummy |
---|
287 | cc2stock, z_ib, DAFb, zdummy & IC(0,*) = zdummy |
---|
288 | cc2stock, z_ib, eoCb, zdummy & IeoC(0,*) = zdummy |
---|
289 | cc2stock, z_ib, Ikab, zdummy & Iika(0,*) = zdummy |
---|
290 | cc2stock, z_ib, syn , zdummy & Csyn(0,*) = zdummy * 12. |
---|
291 | cc2stock, z_ib, rsp , zdummy & Crsp(0,*) = - zdummy * 12. |
---|
292 | cc2stock, z_ib, rem , zdummy & Crem(0,*) = - zdummy * 12. |
---|
293 | numt(0,*) = znumt ; time axis |
---|
294 | doy(0,*) = zdoy ; time axis |
---|
295 | ntss(0) = nts ; number of time steps |
---|
296 | |
---|
297 | ; *** sensitivity runs |
---|
298 | FOR i_run = 1, nruns - 1 DO BEGIN |
---|
299 | open_fields_v7, indir(i_run), sensiti_run(i_run-1), c_bio_model, $ |
---|
300 | znumt, zdoy, ts_d, ts_m, $ |
---|
301 | h_i, h_s, z_ip, z_ib, s_i, t_i, e_i, PAR, Ra, $ |
---|
302 | dhib, dhisu, dhisi, $ |
---|
303 | DAFb, NO3b, PO4b, DSib, chla, eoCb, $ |
---|
304 | DAFt, NO3t, PO4t, DSit, eoCt, $ |
---|
305 | FDAbd, FDAbpos, FDAsi, $ |
---|
306 | FNO3, FNO3bpos, FNO3si, $ |
---|
307 | syn, lys, rem, $ |
---|
308 | lim_lig, lim_no3, lim_po4, lim_dsi, lim_tem, lim_sal |
---|
309 | |
---|
310 | zsize = SIZE(znumt) |
---|
311 | ntss(i_run) = zsize(1) |
---|
312 | numt(i_run,0:ntss(i_run)-1) = znumt |
---|
313 | doy (i_run,0:ntss(i_run)-1) = zdoy |
---|
314 | cc2stock, z_ib, chla, zdummy & Ichla(i_run,0:ntss(i_run)-1) = zdummy |
---|
315 | cc2stock, z_ib, NO3b, zdummy & IN(i_run,0:ntss(i_run)-1) = zdummy |
---|
316 | cc2stock, z_ib, PO4b, zdummy & IP(i_run,0:ntss(i_run)-1) = zdummy |
---|
317 | cc2stock, z_ib, DSib, zdummy & ISi(i_run,0:ntss(i_run)-1) = zdummy |
---|
318 | cc2stock, z_ib, DAFb, zdummy & IC(i_run,0:ntss(i_run)-1) = zdummy |
---|
319 | cc2stock, z_ib, eoCb, zdummy & IeoC(i_run,0:ntss(i_run)-1) = zdummy |
---|
320 | cc2stock, z_ib, syn , zdummy & Csyn(i_run,0:ntss(i_run)-1) = zdummy * 12. |
---|
321 | cc2stock, z_ib, rsp , zdummy & Crsp(i_run,0:ntss(i_run)-1) = zdummy * 12. |
---|
322 | cc2stock, z_ib, rem , zdummy & Crem(i_run,0:ntss(i_run)-1) = zdummy * 12. |
---|
323 | |
---|
324 | ENDFOR |
---|
325 | |
---|
326 | ; *** GPP, NPP, NCP |
---|
327 | FOR i_run = 0, nruns - 1 DO BEGIN |
---|
328 | GPP(i_run) = TOTAL(Csyn(i_run,*)) * dt |
---|
329 | NPP(i_run) = TOTAL(Csyn(i_run,*)+Crsp(i_run,*)) * dt |
---|
330 | NCP(i_run) = TOTAL(Csyn(i_run,*)+Crsp(i_run,*)+Crem(i_run,*)) * dt |
---|
331 | ENDFOR |
---|
332 | |
---|
333 | ; *** time axis |
---|
334 | mon = numt / 30.416666666 + 1 |
---|
335 | ;mon = doy / 30.416666666 + 1 |
---|
336 | mon_obs = doy_obs / 30.467 + 1 |
---|
337 | |
---|
338 | ; |
---|
339 | ;------------------------------------------------------------------------------ |
---|
340 | ; PLOTS |
---|
341 | ;------------------------------------------------------------------------------ |
---|
342 | ; |
---|
343 | !P.MULTI=[0,numplot_x, numplot_y] |
---|
344 | |
---|
345 | IF ( ( plot_type EQ 'DEFAULT' ) ) THEN BEGIN |
---|
346 | |
---|
347 | ;--- Integrated organic carbon |
---|
348 | ymin = 0.0000 & ymax = MAX(IeoC)*12. |
---|
349 | ymax = MAX(IC)*12. |
---|
350 | xmin = LONG(MIN(mon)) & xmax = LONG( MAX(mon) ) + 0.5 |
---|
351 | |
---|
352 | ; xmin = 11. |
---|
353 | |
---|
354 | IF ( i_ylog EQ 0 ) THEN BEGIN |
---|
355 | PLOT, [xmin, xmax], [ ymin, ymax ], /NODATA, charsize = cs, $ |
---|
356 | XTITLE = 'mon', YTITLE = 'IC (mgC/m2)', XSTYLE = 1 |
---|
357 | ENDIF |
---|
358 | IF ( i_ylog EQ 1 ) THEN BEGIN |
---|
359 | ymin = 1.0e-2 |
---|
360 | PLOT, [xmin, xmax], [ ymin, ymax ], /NODATA, charsize = cs, $ |
---|
361 | XTITLE = 'mon', YTITLE = 'IC (mgC/m2)', XSTYLE = 1, /YLOG |
---|
362 | ENDIF |
---|
363 | |
---|
364 | IF ( i_auto EQ 1 ) THEN BEGIN |
---|
365 | ztitle = 'GPP: '+STRCOMPRESS(STRING(GPP/1000., FORMAT='(F5.2)'),/REMOVE_ALL)+' gC/m2' |
---|
366 | XYOUTS, xmin+ (xmax-xmin)*0.25, ymax*0.85, ztitle |
---|
367 | ztitle = 'NPP: '+STRCOMPRESS(STRING(NPP/1000., FORMAT='(F5.2)'),/REMOVE_ALL)+' gC/m2' |
---|
368 | XYOUTS, xmin+ (xmax-xmin)*0.25, ymax*0.75, ztitle |
---|
369 | ztitle = 'NCP: '+STRCOMPRESS(STRING(NCP/1000., FORMAT='(F5.2)'),/REMOVE_ALL)+' gC/m2' |
---|
370 | XYOUTS, xmin+ (xmax-xmin)*0.25, ymax*0.65, ztitle |
---|
371 | ENDIF |
---|
372 | |
---|
373 | FOR i_run = nruns - 1, 0, -1 DO BEGIN |
---|
374 | LOADCT, ct |
---|
375 | OPLOT, mon(i_run,0:ntss(i_run)-1), IC(i_run,0:ntss(i_run)-1)*12., color = colors(i_run), linestyle = linestyle(i_run), thick = thick(i_run) |
---|
376 | OPLOT, mon(i_run,0:ntss(i_run)-1), IeoC(i_run,0:ntss(i_run)-1)*12., color = colors(i_run), linestyle = linestyle(i_run), thick = 0.5 |
---|
377 | ENDFOR |
---|
378 | LOADCT, 0 |
---|
379 | |
---|
380 | ;--- Integrated chlorophyll |
---|
381 | ymin = 0.0000 & ymax = 10. |
---|
382 | IF ( i_auto EQ 0 ) THEN ymax = MAX(Ichla) |
---|
383 | |
---|
384 | IF ( i_ylog EQ 0 ) THEN BEGIN |
---|
385 | PLOT, [xmin, xmax], [ ymin, ymax ], /NODATA, charsize = cs, $ |
---|
386 | XTITLE = 'mon', YTITLE = 'Ichla (mg/m2)', XSTYLE = 1 |
---|
387 | ENDIF |
---|
388 | |
---|
389 | IF ( i_ylog EQ 1 ) THEN BEGIN |
---|
390 | ymin = 1.0e-4 |
---|
391 | PLOT, [xmin, xmax], [ ymin, ymax ], /NODATA, charsize = cs, $ |
---|
392 | XTITLE = 'mon', YTITLE = 'Ichla (mg/m2)', XSTYLE = 1, /YLOG |
---|
393 | ENDIF |
---|
394 | |
---|
395 | FOR i_run = nruns - 1, 0, -1 DO BEGIN |
---|
396 | LOADCT, ct |
---|
397 | OPLOT, mon(i_run,0:ntss(i_run)-1), Ichla(i_run,0:ntss(i_run)-1), color = colors(i_run), linestyle = linestyle(i_run), thick = thick(i_run) |
---|
398 | ENDFOR |
---|
399 | LOADCT, 0 |
---|
400 | |
---|
401 | IF ( add_obs EQ 'YES' ) THEN BEGIN |
---|
402 | LOADCT, 8 |
---|
403 | OPLOT, mon_obs, Ichla_obs, PSYM = 1, THICK = 5, SYMSIZE = 1, COLOR = 150 |
---|
404 | LOADCT, 0 |
---|
405 | ENDIF |
---|
406 | |
---|
407 | ; Integrated nitrogen |
---|
408 | ymin = 0.0000 & ymax = MAX(IN) |
---|
409 | ; ymin = 0.05 & ymax = 30. |
---|
410 | |
---|
411 | PLOT, [xmin, xmax], [ ymin, ymax ], /NODATA, charsize = cs, $ |
---|
412 | XTITLE = 'mon', YTITLE = 'IN (mmol/m2)', XSTYLE = 1;, /YLOG, YSTYLE = 1 |
---|
413 | |
---|
414 | FOR i_run = nruns - 1, 0, -1 DO BEGIN |
---|
415 | LOADCT, ct |
---|
416 | OPLOT, mon(i_run,0:ntss(i_run)-1), IN(i_run,0:ntss(i_run)-1), color = colors(i_run), linestyle = linestyle(i_run), thick = thick(i_run) |
---|
417 | ENDFOR |
---|
418 | LOADCT, 0 |
---|
419 | |
---|
420 | IF ( add_obs EQ 'YES' ) THEN BEGIN |
---|
421 | LOADCT, 1 |
---|
422 | OPLOT, mon_obs, IN_obs, PSYM = 1, THICK = 5, COLOR = 150 |
---|
423 | ENDIF |
---|
424 | |
---|
425 | ; Integrated phosphorus |
---|
426 | ymin = 0.0000 & ymax = MAX(IP) |
---|
427 | |
---|
428 | PLOT, [xmin, xmax], [ ymin, ymax ], /NODATA, charsize = cs, $ |
---|
429 | XTITLE = 'mon', YTITLE = 'IP (mmol/m2)', XSTYLE = 1 |
---|
430 | |
---|
431 | FOR i_run = nruns - 1, 0, -1 DO BEGIN |
---|
432 | LOADCT, ct |
---|
433 | OPLOT, mon(i_run,0:ntss(i_run)-1), IP(i_run,0:ntss(i_run)-1), color = colors(i_run), linestyle = linestyle(i_run), thick = thick(i_run) |
---|
434 | ENDFOR |
---|
435 | LOADCT, 0 |
---|
436 | |
---|
437 | IF ( add_obs EQ 'YES' ) THEN BEGIN |
---|
438 | LOADCT, 1 |
---|
439 | OPLOT, mon_obs, IP_obs, PSYM = 1, THICK = 3, SYMSIZE = 1, COLOR = 150 |
---|
440 | LOADCT, 0 |
---|
441 | ENDIF |
---|
442 | |
---|
443 | ; Integrated silicon |
---|
444 | ymin = 0.0000 & ymax = MAX(ISi) |
---|
445 | |
---|
446 | PLOT, [xmin, xmax], [ ymin, ymax ], /NODATA, charsize = cs, $ |
---|
447 | XTITLE = 'mon', YTITLE = 'ISi (mmol/m2)', XSTYLE = 1 |
---|
448 | |
---|
449 | FOR i_run = nruns - 1, 0, -1 DO BEGIN |
---|
450 | LOADCT, ct |
---|
451 | OPLOT, mon(i_run,0:ntss(i_run)-1), ISi(i_run,0:ntss(i_run)-1), color = colors(i_run), linestyle = linestyle(i_run), thick = thick(i_run) |
---|
452 | ENDFOR |
---|
453 | LOADCT, 0 |
---|
454 | |
---|
455 | IF ( add_obs EQ 'YES' ) THEN BEGIN |
---|
456 | LOADCT, 1 |
---|
457 | OPLOT, mon_obs, ISi_obs, PSYM = 1, THICK = 5, COLOR = 150 |
---|
458 | LOADCT, 0 |
---|
459 | ENDIF |
---|
460 | |
---|
461 | ; Integrated ikaite |
---|
462 | ymin = 0.0000 & ymax = MAX(Ikat)*1.2 |
---|
463 | |
---|
464 | PLOT, [xmin, xmax], [ ymin, ymax ], /NODATA, charsize = cs, $ |
---|
465 | XTITLE = 'mon', YTITLE = 'Iika (mmol/m2)', XSTYLE = 1 |
---|
466 | |
---|
467 | FOR i_run = nruns - 1, 0, -1 DO BEGIN |
---|
468 | LOADCT, ct |
---|
469 | OPLOT, mon(i_run,0:ntss(i_run)-1), Iika(i_run,0:ntss(i_run)-1), color = colors(i_run), linestyle = linestyle(i_run), thick = thick(i_run) |
---|
470 | ENDFOR |
---|
471 | LOADCT, 0 |
---|
472 | |
---|
473 | ztitle = 'Max Ikaite Stock: '+STRCOMPRESS(STRING(MAX(Ikat), FORMAT='(F6.2)'),/REMOVE_ALL)+' mmol/m2' |
---|
474 | XYOUTS, xmin+ (xmax-xmin)*0.10, ymax*0.90, ztitle |
---|
475 | |
---|
476 | ; CO2 flux |
---|
477 | ; ymin = MIN(FCO2_atm+FCO2_bub) * 1.2 * 86400. & ymax = MAX(FCO2_atm + FCO2_bub)*1.2 * 86400. |
---|
478 | ymin = -1.0 & ymax = 1.0 |
---|
479 | |
---|
480 | PLOT, [xmin, xmax], [ ymin, ymax ], /NODATA, charsize = cs, $ |
---|
481 | XTITLE = 'mon', YTITLE = 'FCO2 (mmol/m2/d)', XSTYLE = 1, YSTYLE = 1 |
---|
482 | |
---|
483 | FOR i_run = nruns - 1, 0, -1 DO BEGIN |
---|
484 | LOADCT, ct |
---|
485 | OPLOT, mon, (FCO2_atm+FCO2_bub)*86400., thick = 3 |
---|
486 | OPLOT, mon, FCO2_atm*86400., linestyle = 0, color = 150, thick = 2 |
---|
487 | OPLOT, mon, FCO2_bub*86400., linestyle = 0, color = 250, thick = 2 |
---|
488 | ENDFOR |
---|
489 | LOADCT, 0 |
---|
490 | |
---|
491 | ztitle = 'Max FCO2 mag: '+STRCOMPRESS(STRING(MAX(ABS(FCO2_atm+FCO2_bub)*86400.), FORMAT='(F5.2)'),/REMOVE_ALL)+' mmol/m2/d' |
---|
492 | XYOUTS, xmin+ (xmax-xmin)*0.10, ymax*0.80, ztitle |
---|
493 | |
---|
494 | ; Iron stocks |
---|
495 | ymin = 0.0000 & ymax = MAX(dFet)*1.2 |
---|
496 | |
---|
497 | PLOT, [xmin, xmax], [ ymin, ymax ], /NODATA, charsize = cs, $ |
---|
498 | XTITLE = 'mon', YTITLE = 'Iron (mumol/m2)', XSTYLE = 1, YSTYLE = 1 |
---|
499 | |
---|
500 | FOR i_run = nruns - 1, 0, -1 DO BEGIN |
---|
501 | LOADCT, ct |
---|
502 | OPLOT, mon(i_run,0:ntss(i_run)-1), dFet(0:ntss(i_run)-1), color = 150, thick = 2 |
---|
503 | OPLOT, mon(i_run,0:ntss(i_run)-1), aFet(0:ntss(i_run)-1), color = 0, thick = 2 |
---|
504 | OPLOT, mon(i_run,0:ntss(i_run)-1), eFet(0:ntss(i_run)-1), color = 0, thick = 1 |
---|
505 | ENDFOR |
---|
506 | LOADCT, 0 |
---|
507 | |
---|
508 | ztitle = 'Max dFe stock: '+STRCOMPRESS(STRING(MAX(dFet), FORMAT='(F6.2)'),/REMOVE_ALL)+' mumol/m2' |
---|
509 | XYOUTS, xmin+ (xmax-xmin)*0.10, ymax*0.90, ztitle |
---|
510 | |
---|
511 | |
---|
512 | ENDIF |
---|
513 | |
---|
514 | ; |
---|
515 | ;------------------------------------------------------------------------------ |
---|
516 | ; End of the script |
---|
517 | ;------------------------------------------------------------------------------ |
---|
518 | ; |
---|
519 | IF ( device EQ 'PS' ) THEN BEGIN |
---|
520 | DEVICE, /CLOSE |
---|
521 | SET_PLOT, "X" |
---|
522 | !P.MULTI=[0,2,2] |
---|
523 | ENDIF |
---|
524 | |
---|
525 | END |
---|
526 | |
---|