source: trunk/GRAPHICS/ALL_stocks.pro @ 67

Last change on this file since 67 was 4, checked in by vancop, 8 years ago

initial import /Users/ioulianikolskaia/Boulot/CODES/LIM1D/ARCHIVE/TMP/LIM1D_v3.20/

File size: 19.9 KB
Line 
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;
23i_auto = 1             ; 1=use exp_id.dat; 0=use manual mode with sensitivity runs
24plot_type = 'DEFAULT'  ;
25miss_val = -9999.
26;
27;==============================================================================
28; General Options
29;==============================================================================
30;
31
32IF ( 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
50ENDIF
51
52;-------------
53; Manual mode
54;-------------
55IF ( 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
97ENDIF
98
99;
100;==============================================================================
101; Graphic Options
102;==============================================================================
103;
104
105;--------------------------------
106;--- plot_type dependent options
107;--------------------------------
108
109IF ( 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
152ENDIF
153
154file_name = stamp_out+'.ps'
155
156numplot_x = 4       ; number of horizontal plots
157numplot_y = 2       ; number of vertical plots
158
159device = 'PS'       ; 'PS' or 'X'
160
161;--------------------------------
162;--- define output plots
163;--------------------------------
164figuresize_x = numplot_x * x_size ; figure size on x direction
165figuresize_y = numplot_y * y_size ; figure size on y direction
166set_plot, device
167IF ( 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
171ENDIF
172
173IF ( device EQ 'X' ) THEN BEGIN
174   xsize = 1200
175   ysize = 800
176   colorkey    = 'rd'
177   init_graphics_x, xsize, ysize, colorkey
178ENDIF
179
180;
181;==============================================================================
182; DATA COLLECTION / DIAGNOSTICS
183;==============================================================================
184;
185
186;
187;------------------------------------------------------------------------------
188; OBS ...
189;------------------------------------------------------------------------------
190;
191
192; taken from data_ISPOL.pro
193IF ( 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]
199ENDIF
200
201IF ( 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
210ENDIF
211
212IF ( 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 ]
220ENDIF
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
260zsize = SIZE(DAFb)
261nlay = zsize(1)   ; number of layers
262nts  = zsize(2)   ; number of time steps
263
264; define arrays
265Ichla = FLTARR(nruns, nts) & Ichla(*,*) = 0.0
266IN    = FLTARR(nruns, nts) & IN(*,*) = 0.0
267IP    = FLTARR(nruns, nts) & IP(*,*) = 0.0
268ISi   = FLTARR(nruns, nts) & ISi(*,*) = 0.0
269IC    = FLTARR(nruns, nts) & IC(*,*) = 0.0
270IeoC  = FLTARR(nruns, nts) & IeoC(*,*) = 0.0
271Iika  = FLTARR(nruns, nts) & Iika(*,*) = 0.0
272Csyn  = DBLARR(nruns, nts) & Csyn(*,*) = 0.0
273Crsp  = DBLARR(nruns, nts) & Crsp(*,*) = 0.0
274Crem  = DBLARR(nruns, nts) & Crem(*,*) = 0.0
275NPP   = FLTARR(nruns)      & NPP(*) = 0.0
276GPP   = FLTARR(nruns)      & GPP(*) = 0.0
277NCP   = FLTARR(nruns)      & NCP(*) = 0.0
278numt  = FLTARR(nruns, nts) & numt(*,*) = 0.0
279doy   = FLTARR(nruns, nts) & doy(*,*) = 0.0
280ntss  = LONARR(nruns)      & ntss(*) = 0
281
282; diagnostics
283cc2stock, z_ib, chla, zdummy & Ichla(0,*) = zdummy
284cc2stock, z_ib, NO3b, zdummy & IN(0,*) = zdummy
285cc2stock, z_ib, PO4b, zdummy & IP(0,*) = zdummy
286cc2stock, z_ib, DSib, zdummy & ISi(0,*) = zdummy
287cc2stock, z_ib, DAFb, zdummy & IC(0,*) = zdummy
288cc2stock, z_ib, eoCb, zdummy & IeoC(0,*) = zdummy
289cc2stock, z_ib, Ikab, zdummy & Iika(0,*) = zdummy
290cc2stock, z_ib, syn , zdummy & Csyn(0,*) = zdummy * 12.
291cc2stock, z_ib, rsp , zdummy & Crsp(0,*) = - zdummy * 12.
292cc2stock, z_ib, rem , zdummy & Crem(0,*) = - zdummy * 12.
293numt(0,*) = znumt ; time axis
294doy(0,*)  = zdoy  ; time axis
295ntss(0)   = nts   ; number of time steps
296
297; *** sensitivity runs
298FOR 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
324ENDFOR
325
326; *** GPP, NPP, NCP
327FOR 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
331ENDFOR
332
333; *** time axis
334mon = numt / 30.416666666 + 1
335;mon = doy / 30.416666666 + 1
336mon_obs    = doy_obs / 30.467 + 1
337
338;
339;------------------------------------------------------------------------------
340; PLOTS
341;------------------------------------------------------------------------------
342;
343!P.MULTI=[0,numplot_x, numplot_y]
344
345IF ( ( 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
512ENDIF
513
514;
515;------------------------------------------------------------------------------
516; End of the script
517;------------------------------------------------------------------------------
518;
519IF ( device EQ 'PS' ) THEN BEGIN
520   DEVICE, /CLOSE
521   SET_PLOT, "X"
522   !P.MULTI=[0,2,2]
523ENDIF
524
525END
526
Note: See TracBrowser for help on using the repository browser.