[4] | 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 | |
---|