; ;------------------------------------------------------------------------------ ; ; This script makes plots of biological simulations ; ; works at BARROW, ISPOL, YROSIAE ; ; STOCKS (./m2) ; ; organic carbon ; stock ; NO3 stock ; PO4 stock ; DSi ; ; (c) Martin Vancoppenolle, UCL-ASTR, june 2007 ; reviewed may 2008 ; reviewed feb 2010, for biological model ; reviewed aug-oct 2014, Helsinki/Lille ; ;------------------------------------------------------------------------------ ; i_auto = 1 ; 1=use exp_id.dat; 0=use manual mode with sensitivity runs plot_type = 'DEFAULT' ; miss_val = -9999. ; ;============================================================================== ; General Options ;============================================================================== ; IF ( i_auto EQ 1 ) THEN BEGIN ; automatic mode i_ylog = 0 nruns = 1 control_run = 'E001' & indir = '' & outdir = '' & dt = 86400 & c_bio_model = 'BFMSI' & site = 'TOURNAI' OPENR, 11, 'exp_id.dat' READF, 11, control_run & READF, 11, indir & READF, 11, outdir READF, 11, dt & READF, 11, c_bio_model & READF, 11, site CLOSE, 11 PRINT, control_run PRINT, indir PRINT, outdir PRINT, dt PRINT, c_bio_model PRINT, site ENDIF ;------------- ; Manual mode ;------------- IF ( i_auto EQ 0 ) THEN BEGIN c_bio_model = 'KRILL' site = 'ISPOL' indir_base = '/Users/ioulianikolskaia/Boulot/CODES/BFMLIM_2013/BFM-LIM-2506_2014/LIM/RUN/' outdir = '/Users/ioulianikolskaia/Boulot/SCIENCE/PLOT_SCRIPTS/LIM1D_BIO/IDL/plots/' dt = 3600. ; time step control_run = 'ISPOL_CTL_LONG_01' ; limitations processes 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' ] i_ylog = 1 ; log axis for carbon ; limitations processes - version 2 control_run = 'ISPOL_CHL_LONG_001' sensiti_run = [ 'ISPOL_PCS_LONG_001', 'ISPOL_PCS_LONG_008', 'ISPOL_PCS_LONG_009', 'ISPOL_PCS_LONG_010' ] i_ylog = 1 ; log axis for carbon ; #3 parameter values control_run = 'ISPOL_CTL_LONG_05' sensiti_run = [ 'ISPOL_PCS_LONG_012','ISPOL_PCS_LONG_013','ISPOL_PCS_LONG_014','ISPOL_PCS_LONG_015','ISPOL_PCS_LONG_016', $ 'ISPOL_PCS_LONG_017','ISPOL_PCS_LONG_018','ISPOL_PCS_LONG_019','ISPOL_PCS_LONG_020','ISPOL_PCS_LONG_021', $ 'ISPOL_PCS_LONG_022','ISPOL_PCS_LONG_023', $ 'ISPOL_PCS_LONG_024','ISPOL_PCS_LONG_025','ISPOL_PCS_LONG_026','ISPOL_PCS_LONG_027','ISPOL_PCS_LONG_028', $ 'ISPOL_PCS_LONG_029','ISPOL_PCS_LONG_030','ISPOL_PCS_LONG_031','ISPOL_PCS_LONG_032','ISPOL_PCS_LONG_033', $ 'ISPOL_PCS_LONG_034','ISPOL_PCS_LONG_035' ] i_ylog = 0 ; log axis for carbon ; ; long run vs short run ; sensiti_run = [ 'ISPOL_PCS_LONG_001', 'ISPOL_CTL_SUMMER_01', 'ISPOL_PCS_SUMMER_001' ] ; i_ylog = 0 ; no log axis for carbon dummy = SIZE(sensiti_run) nruns = dummy(1) + 1 ; sensitivity runs + 1 control run print, 'nruns ', nruns indir = STRARR(nruns) indir(0) = indir_base+control_run+'/' FOR i = 1, nruns-1 DO BEGIN indir(i) = indir_base+sensiti_run(i-1)+'/' ENDFOR ENDIF ; ;============================================================================== ; Graphic Options ;============================================================================== ; ;-------------------------------- ;--- plot_type dependent options ;-------------------------------- IF ( plot_type EQ 'DEFAULT' ) THEN BEGIN IF ( i_auto EQ 1 ) THEN stamp_out = control_run+'_stocks' ; limitations processes IF ( i_auto EQ 0 ) THEN stamp_out = control_run+'_stocks_PCS' ct = 13 ; version 1 colors = [ 0, 0 , 50 , 255 , 100 , 50 , 255 , 155 ] linestyle = [ 0, 2 , 1 , 1 , 1 , 0 , 0 , 0 ] thick = [ 5, 5. , 2 , 2 , 2 , 2 , 2 , 2 ] ; version 2 IF ( i_auto EQ 0 ) THEN stamp_out = control_run+'_stocks_PCS2' ct = 8 colors = [ 150, 0 , 0 , 0 , 150 ] linestyle = [ 0, 0 , 2 , 0 , 0 ] thick = [ 5, 5 , 5 , 2 , 2 ] ; long run vs short runs, with and without bio ; IF ( i_auto EQ 0 ) THEN stamp_out = control_run+'_stocks_LNG' ; ct = 8 ; colors = [ 100, 0 , 100, 0 ] ; linestyle = [ 0, 0, 0, 0 ] ; thick = [ 5, 5, 2, 2 ] ; #3 1050% parameters IF ( i_auto EQ 0 ) THEN stamp_out = control_run+'_stocks_param10pct' ct = 11 colors = [ 0, 250 , 250 , 250 , 250 , 250 , 250 , 250 , 250 , 250 , 250 , 250 , 250, $ 100 , 100 , 100 , 100 , 100 , 100 , 100 , 100 , 100 , 100 , 100 , 100 ] linestyle = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, $ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] thick = [ 05, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, $ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] cs = 2.0 ; charsize !X.MARGIN = [11,3] !Y.MARGIN = [3,3] x_size = 8. y_size = 8. add_obs = 'YES' ENDIF file_name = stamp_out+'.ps' numplot_x = 4 ; number of horizontal plots numplot_y = 2 ; number of vertical plots device = 'PS' ; 'PS' or 'X' ;-------------------------------- ;--- define output plots ;-------------------------------- figuresize_x = numplot_x * x_size ; figure size on x direction figuresize_y = numplot_y * y_size ; figure size on y direction set_plot, device IF ( device EQ 'PS' ) THEN BEGIN device, /COLOR, /LANDSCAPE, filename=outdir+file_name, $ XSIZE=figuresize_x,YSIZE=figuresize_y,FONT_SIZE=9.0 loadct, ct ENDIF IF ( device EQ 'X' ) THEN BEGIN xsize = 1200 ysize = 800 colorkey = 'rd' init_graphics_x, xsize, ysize, colorkey ENDIF ; ;============================================================================== ; DATA COLLECTION / DIAGNOSTICS ;============================================================================== ; ; ;------------------------------------------------------------------------------ ; OBS ... ;------------------------------------------------------------------------------ ; ; taken from data_ISPOL.pro IF ( site EQ 'ISPOL' ) THEN BEGIN doy_obs = [ 334 , 339 , 344 , 349 , 354 , 360 , 365 ] Ichla_obs = [ 2.29791 , 2.59326 , 2.59555 , 1.96935 , 3.52818 , 3.39265 , 2.25618 ] ISi_obs = [ 2.59932 , 1.41743 , 1.93791, 1.61004, 1.48831, 2.32319 , 1.47295 ] IN_obs = [ 0.872224, 0.990353, 1.24385, 1.54099, 1.59959, 0.644944, miss_val] IP_obs = [ 0.663441, 0.329396, 0.265860, 0.525806, 0.609341, 0.280607, miss_val] ENDIF IF ( site EQ 'BARROW' ) THEN BEGIN doy_obs = [ 29, 34 , 86 , 89 , 94 , 97 , 100 , 128 , 132 , 156 ] Ichla_obs = [ 0.409588 , 0.369906 , 2.61920 , 0.914727 , 2.98023 , 4.03025 , 9.07010 , 0.812893, 4.69713 , 9.04900 ] ; replace first IN (./m2) value by 1.48*initial thickness, otherwise it is screwed ; IN value from data = 0.9842 (h=0.65) hence we replace by 1.48*0.7505 = 0.36024 IN_obs = [ 9999.99, 1.110740 , 9999.99 , 9999.99 , 9999.99 , 9999.99 , 1.53789 , 1.02420 , 9999.99 , 0.539000 ] ; same for IP, replace 0.119700 by 0.18*0.7505 = 0.13509 IP_obs = [ 9999.99 , 0.135090 , 9999.99 , 9999.99 , 9999.99 , 9999.99 , 0.236833 , 0.253800 , 9999.99 , 0.251000 ] ISi_obs = REPLICATE(1,10) * miss_val ENDIF IF ( site EQ 'YROSIAE' ) THEN BEGIN ; YROSIAE ; taken from yrosiae ASPECT log sheets (Fripiat et al, oct 2015) doy_obs = [ 263 , 299, 318 , 279 , 306 , 327, 292 , 312 ,335 ] Ichla_obs = [ 1.4683 , 4.6038 ,45.4413, 128.0884, 44.5830 ,219.1416 ,208.6254 ,108.0657 , 87.9038 ] ISi_obs = [ 22.6631 , 21.1690 , 19.2174, 18.8949 , 18.9943, 18.9517, 20.5963, 16.6855, 13.8374 ] IN_obs = [ 9.0613 , 5.6130 , 9.4723, 10.0763, 11.4708 , 14.6193 , 14.4107 , 4.7585 , 2.1876 ] IP_obs = [ 0.4976 , 0.4067 , 1.1311, 1.8459, 2.3452 , 3.7857 , 3.6948 , 1.3270 , 1.2602 ] ENDIF IF ( site EQ 'N_ICE_RL' ) THEN BEGIN ; N_ICE_RL ; ALLLLLL WRONG !!! doy_obs = [ 263 , 299, 318 , 279 , 306 , 327, 292 , 312 ,335 ] Ichla_obs = [ 1.4683 , 4.6038 ,45.4413, 128.0884, 44.5830 ,219.1416 ,208.6254 ,108.0657 , 87.9038 ] ISi_obs = [ 22.6631 , 21.1690 , 19.2174, 18.8949 , 18.9943, 18.9517, 20.5963, 16.6855, 13.8374 ] IN_obs = [ 9.0613 , 5.6130 , 9.4723, 10.0763, 11.4708 , 14.6193 , 14.4107 , 4.7585 , 2.1876 ] IP_obs = [ 0.4976 , 0.4067 , 1.1311, 1.8459, 2.3452 , 3.7857 , 3.6948 , 1.3270 , 1.2602 ] ENDIF ; ;------------------------------------------------------------------------------ ; MODEL DIAGNOSTICS ;------------------------------------------------------------------------------ ; ; *** control run open_fields_v7, indir(0), control_run, c_bio_model, $ znumt, zdoy, ts_d, ts_m, $ h_i, h_s, z_ip, z_ib, s_i, t_i, e_i, PAR, Ra, $ dhib, dhisu, dhisi, $ DAFb, NO3b, PO4b, DSib, chla, eoCb, $ Argb, Argbub, $ Oxyb, Oxybub, $ DICb, Alkb, CO2b, CO2bub, $ CO2aq, HCO3m, CO32m, pH, pCO2, Ikab, $ dFeb, aFeb, eFeb, $ DAFt, NO3t, PO4t, DSit, eoCt, Argt, $ DICt, Alkt, CO2t, Ikat, $ dFet, aFet, eFet, $ FDAbd, FDAbpos, FDAsi, $ FNO3, FNO3bpos, FNO3si, $ FCO2_atm, FCO2_bub, $ syn, rsp, lys, rem, $ lim_lig, lim_no3, lim_po4, lim_dsi, lim_tem, lim_sal ;open_fields_v6, indir(0), control_run, c_bio_model, $ ; znumt, zdoy, ts_d, ts_m, $ ; h_i, h_s, z_ip, z_ib, s_i, t_i, e_i, PAR, Ra, $ ; dhib, dhisu, dhisi, $ ; DAFb, NO3b, PO4b, DSib, chla, $ ; DAFt, NO3t, PO4t, DSit, $ ; FDAbd, FDAbpos, FDAsi, $ ; FNO3, FNO3bpos, FNO3si, $ ; syn, lys, rem, $ ; lim_lig, lim_no3, lim_po4, lim_dsi, lim_tem, lim_sal zsize = SIZE(DAFb) nlay = zsize(1) ; number of layers nts = zsize(2) ; number of time steps ; define arrays Ichla = FLTARR(nruns, nts) & Ichla(*,*) = 0.0 IN = FLTARR(nruns, nts) & IN(*,*) = 0.0 IP = FLTARR(nruns, nts) & IP(*,*) = 0.0 ISi = FLTARR(nruns, nts) & ISi(*,*) = 0.0 IC = FLTARR(nruns, nts) & IC(*,*) = 0.0 IeoC = FLTARR(nruns, nts) & IeoC(*,*) = 0.0 Iika = FLTARR(nruns, nts) & Iika(*,*) = 0.0 Csyn = DBLARR(nruns, nts) & Csyn(*,*) = 0.0 Crsp = DBLARR(nruns, nts) & Crsp(*,*) = 0.0 Crem = DBLARR(nruns, nts) & Crem(*,*) = 0.0 NPP = FLTARR(nruns) & NPP(*) = 0.0 GPP = FLTARR(nruns) & GPP(*) = 0.0 NCP = FLTARR(nruns) & NCP(*) = 0.0 numt = FLTARR(nruns, nts) & numt(*,*) = 0.0 doy = FLTARR(nruns, nts) & doy(*,*) = 0.0 ntss = LONARR(nruns) & ntss(*) = 0 ; diagnostics cc2stock, z_ib, chla, zdummy & Ichla(0,*) = zdummy cc2stock, z_ib, NO3b, zdummy & IN(0,*) = zdummy cc2stock, z_ib, PO4b, zdummy & IP(0,*) = zdummy cc2stock, z_ib, DSib, zdummy & ISi(0,*) = zdummy cc2stock, z_ib, DAFb, zdummy & IC(0,*) = zdummy cc2stock, z_ib, eoCb, zdummy & IeoC(0,*) = zdummy cc2stock, z_ib, Ikab, zdummy & Iika(0,*) = zdummy cc2stock, z_ib, syn , zdummy & Csyn(0,*) = zdummy * 12. cc2stock, z_ib, rsp , zdummy & Crsp(0,*) = - zdummy * 12. cc2stock, z_ib, rem , zdummy & Crem(0,*) = - zdummy * 12. numt(0,*) = znumt ; time axis doy(0,*) = zdoy ; time axis ntss(0) = nts ; number of time steps ; *** sensitivity runs FOR i_run = 1, nruns - 1 DO BEGIN open_fields_v7, indir(i_run), sensiti_run(i_run-1), c_bio_model, $ znumt, zdoy, ts_d, ts_m, $ h_i, h_s, z_ip, z_ib, s_i, t_i, e_i, PAR, Ra, $ dhib, dhisu, dhisi, $ DAFb, NO3b, PO4b, DSib, chla, eoCb, $ DAFt, NO3t, PO4t, DSit, eoCt, $ FDAbd, FDAbpos, FDAsi, $ FNO3, FNO3bpos, FNO3si, $ syn, lys, rem, $ lim_lig, lim_no3, lim_po4, lim_dsi, lim_tem, lim_sal zsize = SIZE(znumt) ntss(i_run) = zsize(1) numt(i_run,0:ntss(i_run)-1) = znumt doy (i_run,0:ntss(i_run)-1) = zdoy cc2stock, z_ib, chla, zdummy & Ichla(i_run,0:ntss(i_run)-1) = zdummy cc2stock, z_ib, NO3b, zdummy & IN(i_run,0:ntss(i_run)-1) = zdummy cc2stock, z_ib, PO4b, zdummy & IP(i_run,0:ntss(i_run)-1) = zdummy cc2stock, z_ib, DSib, zdummy & ISi(i_run,0:ntss(i_run)-1) = zdummy cc2stock, z_ib, DAFb, zdummy & IC(i_run,0:ntss(i_run)-1) = zdummy cc2stock, z_ib, eoCb, zdummy & IeoC(i_run,0:ntss(i_run)-1) = zdummy cc2stock, z_ib, syn , zdummy & Csyn(i_run,0:ntss(i_run)-1) = zdummy * 12. cc2stock, z_ib, rsp , zdummy & Crsp(i_run,0:ntss(i_run)-1) = zdummy * 12. cc2stock, z_ib, rem , zdummy & Crem(i_run,0:ntss(i_run)-1) = zdummy * 12. ENDFOR ; *** GPP, NPP, NCP FOR i_run = 0, nruns - 1 DO BEGIN GPP(i_run) = TOTAL(Csyn(i_run,*)) * dt NPP(i_run) = TOTAL(Csyn(i_run,*)+Crsp(i_run,*)) * dt NCP(i_run) = TOTAL(Csyn(i_run,*)+Crsp(i_run,*)+Crem(i_run,*)) * dt ENDFOR ; *** time axis mon = numt / 30.416666666 + 1 ;mon = doy / 30.416666666 + 1 mon_obs = doy_obs / 30.467 + 1 ; ;------------------------------------------------------------------------------ ; PLOTS ;------------------------------------------------------------------------------ ; !P.MULTI=[0,numplot_x, numplot_y] IF ( ( plot_type EQ 'DEFAULT' ) ) THEN BEGIN ;--- Integrated organic carbon ymin = 0.0000 & ymax = MAX(IeoC)*12. ymax = MAX(IC)*12. xmin = LONG(MIN(mon)) & xmax = LONG( MAX(mon) ) + 0.5 ; xmin = 11. IF ( i_ylog EQ 0 ) THEN BEGIN PLOT, [xmin, xmax], [ ymin, ymax ], /NODATA, charsize = cs, $ XTITLE = 'mon', YTITLE = 'IC (mgC/m2)', XSTYLE = 1 ENDIF IF ( i_ylog EQ 1 ) THEN BEGIN ymin = 1.0e-2 PLOT, [xmin, xmax], [ ymin, ymax ], /NODATA, charsize = cs, $ XTITLE = 'mon', YTITLE = 'IC (mgC/m2)', XSTYLE = 1, /YLOG ENDIF IF ( i_auto EQ 1 ) THEN BEGIN ztitle = 'GPP: '+STRCOMPRESS(STRING(GPP/1000., FORMAT='(F5.2)'),/REMOVE_ALL)+' gC/m2' XYOUTS, xmin+ (xmax-xmin)*0.25, ymax*0.85, ztitle ztitle = 'NPP: '+STRCOMPRESS(STRING(NPP/1000., FORMAT='(F5.2)'),/REMOVE_ALL)+' gC/m2' XYOUTS, xmin+ (xmax-xmin)*0.25, ymax*0.75, ztitle ztitle = 'NCP: '+STRCOMPRESS(STRING(NCP/1000., FORMAT='(F5.2)'),/REMOVE_ALL)+' gC/m2' XYOUTS, xmin+ (xmax-xmin)*0.25, ymax*0.65, ztitle ENDIF FOR i_run = nruns - 1, 0, -1 DO BEGIN LOADCT, ct 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) 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 ENDFOR LOADCT, 0 ;--- Integrated chlorophyll ymin = 0.0000 & ymax = 10. IF ( i_auto EQ 0 ) THEN ymax = MAX(Ichla) IF ( i_ylog EQ 0 ) THEN BEGIN PLOT, [xmin, xmax], [ ymin, ymax ], /NODATA, charsize = cs, $ XTITLE = 'mon', YTITLE = 'Ichla (mg/m2)', XSTYLE = 1 ENDIF IF ( i_ylog EQ 1 ) THEN BEGIN ymin = 1.0e-4 PLOT, [xmin, xmax], [ ymin, ymax ], /NODATA, charsize = cs, $ XTITLE = 'mon', YTITLE = 'Ichla (mg/m2)', XSTYLE = 1, /YLOG ENDIF FOR i_run = nruns - 1, 0, -1 DO BEGIN LOADCT, ct 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) ENDFOR LOADCT, 0 IF ( add_obs EQ 'YES' ) THEN BEGIN LOADCT, 8 OPLOT, mon_obs, Ichla_obs, PSYM = 1, THICK = 5, SYMSIZE = 1, COLOR = 150 LOADCT, 0 ENDIF ; Integrated nitrogen ymin = 0.0000 & ymax = MAX(IN) ; ymin = 0.05 & ymax = 30. PLOT, [xmin, xmax], [ ymin, ymax ], /NODATA, charsize = cs, $ XTITLE = 'mon', YTITLE = 'IN (mmol/m2)', XSTYLE = 1;, /YLOG, YSTYLE = 1 FOR i_run = nruns - 1, 0, -1 DO BEGIN LOADCT, ct 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) ENDFOR LOADCT, 0 IF ( add_obs EQ 'YES' ) THEN BEGIN LOADCT, 1 OPLOT, mon_obs, IN_obs, PSYM = 1, THICK = 5, COLOR = 150 ENDIF ; Integrated phosphorus ymin = 0.0000 & ymax = MAX(IP) PLOT, [xmin, xmax], [ ymin, ymax ], /NODATA, charsize = cs, $ XTITLE = 'mon', YTITLE = 'IP (mmol/m2)', XSTYLE = 1 FOR i_run = nruns - 1, 0, -1 DO BEGIN LOADCT, ct 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) ENDFOR LOADCT, 0 IF ( add_obs EQ 'YES' ) THEN BEGIN LOADCT, 1 OPLOT, mon_obs, IP_obs, PSYM = 1, THICK = 3, SYMSIZE = 1, COLOR = 150 LOADCT, 0 ENDIF ; Integrated silicon ymin = 0.0000 & ymax = MAX(ISi) PLOT, [xmin, xmax], [ ymin, ymax ], /NODATA, charsize = cs, $ XTITLE = 'mon', YTITLE = 'ISi (mmol/m2)', XSTYLE = 1 FOR i_run = nruns - 1, 0, -1 DO BEGIN LOADCT, ct 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) ENDFOR LOADCT, 0 IF ( add_obs EQ 'YES' ) THEN BEGIN LOADCT, 1 OPLOT, mon_obs, ISi_obs, PSYM = 1, THICK = 5, COLOR = 150 LOADCT, 0 ENDIF ; Integrated ikaite ymin = 0.0000 & ymax = MAX(Ikat)*1.2 PLOT, [xmin, xmax], [ ymin, ymax ], /NODATA, charsize = cs, $ XTITLE = 'mon', YTITLE = 'Iika (mmol/m2)', XSTYLE = 1 FOR i_run = nruns - 1, 0, -1 DO BEGIN LOADCT, ct 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) ENDFOR LOADCT, 0 ztitle = 'Max Ikaite Stock: '+STRCOMPRESS(STRING(MAX(Ikat), FORMAT='(F6.2)'),/REMOVE_ALL)+' mmol/m2' XYOUTS, xmin+ (xmax-xmin)*0.10, ymax*0.90, ztitle ; CO2 flux ; ymin = MIN(FCO2_atm+FCO2_bub) * 1.2 * 86400. & ymax = MAX(FCO2_atm + FCO2_bub)*1.2 * 86400. ymin = -1.0 & ymax = 1.0 PLOT, [xmin, xmax], [ ymin, ymax ], /NODATA, charsize = cs, $ XTITLE = 'mon', YTITLE = 'FCO2 (mmol/m2/d)', XSTYLE = 1, YSTYLE = 1 FOR i_run = nruns - 1, 0, -1 DO BEGIN LOADCT, ct OPLOT, mon, (FCO2_atm+FCO2_bub)*86400., thick = 3 OPLOT, mon, FCO2_atm*86400., linestyle = 0, color = 150, thick = 2 OPLOT, mon, FCO2_bub*86400., linestyle = 0, color = 250, thick = 2 ENDFOR LOADCT, 0 ztitle = 'Max FCO2 mag: '+STRCOMPRESS(STRING(MAX(ABS(FCO2_atm+FCO2_bub)*86400.), FORMAT='(F5.2)'),/REMOVE_ALL)+' mmol/m2/d' XYOUTS, xmin+ (xmax-xmin)*0.10, ymax*0.80, ztitle ; ; Iron stocks ; ymin = 0.0000 & ymax = 500. ;ymax = MAX(dFet)*1.2 ; PLOT, [xmin, xmax], [ ymin, ymax ], /NODATA, charsize = cs, $ ; XTITLE = 'mon', YTITLE = 'Iron (mumol/m2)', XSTYLE = 1, YSTYLE = 1 ; FOR i_run = nruns - 1, 0, -1 DO BEGIN ; LOADCT, ct ; OPLOT, mon(i_run,0:ntss(i_run)-1), dFet(0:ntss(i_run)-1), color = 150, thick = 2 ; OPLOT, mon(i_run,0:ntss(i_run)-1), aFet(0:ntss(i_run)-1), color = 0, thick = 2 ; OPLOT, mon(i_run,0:ntss(i_run)-1), eFet(0:ntss(i_run)-1), color = 0, thick = 1 ; ENDFOR ; LOADCT, 0 ; ztitle = 'Max dFe stock: '+STRCOMPRESS(STRING(MAX(dFet), FORMAT='(F6.2)'),/REMOVE_ALL)+' mumol/m2' ; XYOUTS, xmin+ (xmax-xmin)*0.10, ymax*0.90, ztitle ENDIF ; ;------------------------------------------------------------------------------ ; End of the script ;------------------------------------------------------------------------------ ; IF ( device EQ 'PS' ) THEN BEGIN DEVICE, /CLOSE SET_PLOT, "X" !P.MULTI=[0,2,2] ENDIF END