; ;------------------------------------------------------------------------------ ; ; This script makes plots of biological simulations ; ; chla stock ; NO3 stock ; PO4 stock ; ; (c) Martin Vancoppenolle, UCL-ASTR, june 2007 ; reviewed may 2008 ; reviewed feb 2010, for biological model ; reviewed aug 2014, helsinki ; ;------------------------------------------------------------------------------ ; i_auto = 1 ; 1=use exp_id.dat; 2=use manual mode with sensitivity runs plot_type = 'DEFAULT' ; miss_val = -9999. ; ;============================================================================== ; General Options ;============================================================================== ; IF ( i_auto EQ 1 ) THEN BEGIN ; automatic mode 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 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 = 'LIM_KR_ML' sensiti_run = [ ] ; sensiti_run = [ 'LIM_KR_SL', 'LIM_KR_BA' ] 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 colors = [ 0, 200 , 100 , 240 , 240 , 120 , 120 ] linestyle = [ 0,0 , 0 , 1 , 2 , 2 , 1 ] thick = [ 5, 5. , 5.0 , 2.0 , 2.0 , 2.0 , 2.0 ] stamp_out = control_run+'_profiles' cs = 1.8 ; charsize colorkey = 'rd' ct = 0 !X.MARGIN = [8,3] !Y.MARGIN = [3,3] x_size = 4. y_size = 6. add_obs = 'YES' ENDIF file_name = stamp_out+'.ps' numplot_x = 5 ; 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 init_graphics_x, xsize, ysize, colorkey ENDIF ; ;============================================================================== ; EXTRACT DATA ;============================================================================== ; ;open_fields_v6, indir(0), control_run, c_bio_model, $ ; numt, doy, 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 open_fields_v7, indir(0), control_run, c_bio_model, $ numt, doy, 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, 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 ; ;------------------------------------------------------------------------------ ; OBS ... ;------------------------------------------------------------------------------ ; ; ; observed normalized profiles from Zhou et al. ; interpolated in data_BARROW.pro ; doy_obs = [ 29, 34 , 86 , 89 , 94 , 97 , 100 , 128 , 132 , 156 ] depth_obs = [ 5., 15., 25., 35., 45., 55., 65., 75., 85., 95. ] / 100. chla_obs = FLTARR(10,10) chla_obs[0,*] = [ 0.108100 , 0.0643000 , 0.0400000 , 0.0422000 , 0.0714000 , 0.162400 , 0.254700 , 0.298500 , 0.737100 , 1.84438 ] chla_obs[1,*] = [ 0.0813250 , 0.0739750 , 0.0632500 , 0.0478250 , 0.0257750 , 0.188175 , 0.377175 , 0.509625 , 1.07558 , 1.75818 ] chla_obs[2,*] = [ 0.0242000 , 0.130550 , 0.0465000 , 0.0937001 , 0.315200 , 0.412000 , 0.386727 , 0.332500 , 0.950450, 10.9683 ] chla_obs[3,*] = [ 0.0788000 , 0.0500000 , 0.0940000 , 0.233600 , 0.147200 , 0.327200 , 0.675200 , 1.05043 , 2.62113 , 3.09060 ] chla_obs[4,*] = [ 0.00150000, 0.0285000 , 0.0400000 , 0.0790000 , 0.109000 , 0.271500 , 0.313500 , 0.385000 , 0.923001 , 12.6240 ] chla_obs[5,*] = [ 0.261100 , 0.0646000 , 0.108500 , 0.142200 , 0.136200 , 0.545385 , 0.450000 , 0.525500 , 0.529700 , 16.3075 ] chla_obs[6,*] = [ 0.37075 , 0.597000 , 0.145000 , 0.348750 , 0.312000 , 0.515750 , 0.618750 , 0.457500 , 1.05550 , 36.1653 ] chla_obs[7,*] = [ 0.169438 , 0.127188 , 0.265938 , 0.230000 , 0.113714 , 0.0346250, 0.0195625, 0.0168750 , 0.0198125 , 2.40463 ] chla_obs[8,*] = [ 0.638500 , 0.557000 , 0.245000 , 0.391000 , 0.276000 , 0.349000 , 1.01000 , 0.725000 , 0.401000 , 15.2835 ] chla_obs[9,*] = [ 0.176500 , 0.154750 , 0.167500 , 0.237500 , 0.257750 , 0.635250 , 0.938500 , 0.912500 , 0.629750 , 28.0268 ] nox_obs = FLTARR(10,10) & nox_obs(*,*) = miss_val nox_obs[1,*] = [ 2.71490 , 1.74470 , 1.17275 , 1.07783 , 1.05577 , 0.957775 , 0.907750 , 0.999250 , 2.13115 , 1.98073 ] nox_obs[6,*] = [ 2.09375 , 1.05475 , 1.27000 , 0.901750 , 0.839500 , 1.15125 , 1.40625 , 1.21750 , 0.772500, 1.66975 ] nox_obs[7,*] = [ 1.06462 , 0.470000 , 0.331875 , 0.444125 , 1.06200 , 0.735500 , 1.06737 , 0.500000 , 0.359250 , 0.897376] nox_obs[9,*] = [ 0.551500, 0.317500 , 0.243750 , 0.200000 , 0.200000, 0.218500, 0.426250 , 0.390000 , 0.555750, 0.635500] po4_obs = FLTARR(10,10) & po4_obs(*,*) = miss_val po4_obs[1,*] = [ 0.390475 , 0.221425 , 0.130000 , 0.128550 , 0.113850 , 0.115425 , 0.120000 , 0.122000 , 0.239600 , 0.228912 ] po4_obs[6,*] = [ 0.218000 , 0.119500 , 0.140000 , 0.165500 , 0.142250 , 0.160000 , 0.220000 , 0.217500 , 0.189500 , 0.287250 ] po4_obs[7,*] = [ 0.200250 , 0.169500 , 0.133125 , 0.187250 , 0.184800 , 0.139250 , 0.101875 , 0.131875 , 0.0905000 , 0.335875 ] po4_obs[9,*] = [ 0.172500 , 0.0795000 , 0.0612500 , 0.0500000 , 0.0557500 , 0.0507500 , 0.0300000 , 0.0300000 , 0.0592500 , 0.597001 ] ; physical observations nlay_p = [ 16, 15, 23, 22, 23, 25 , 24 , 27 , 27 , 30 ] h_i_obs= [ 0.755, 0.665, 1.125, 1.075, 1.125, 1.225 , 1.225, 1.35 , 1.325, 1.40 ] t_i_obs = FLTARR(10,50) & t_i_obs(*,*) = miss_val s_i_obs = FLTARR(10,50) & s_i_obs(*,*) = miss_val e_i_obs = FLTARR(10,50) & e_i_obs(*,*) = miss_val depth_phy_obs = FLTARR(10,50) & depth_phy_obs(*,*) = miss_val ; station 1 s_i_obs[0,0:nlay_p(0)-1] = [ 10.4, 8.3, 6.9, 4.6, 4.6, 4.1, 4.1, 4.9, 4.5, 6.0, 5.3, 5.0, 5.4, 4.9, 5.3, 9.1 ] t_i_obs[0,0:nlay_p(0)-1] = [-13.0,-12.2,-11.3,-10.65,-10.0,-9.3,-9.1,-8.3,-8.2,-7.8,-6.0,-5.8,-4.6,-3.3,-2.1,-1.8] ; station 2 s_i_obs[1,0:nlay_p(1)-1] = [ 8.6, 7.7, 5.0, 4.4, 4.3, 4.4, 4.3, 4.2, 4.0, 4.5, 5.8, 5.3, 5.0, 6.25, 7.5 ] t_i_obs[1,0:nlay_p(1)-1] = [-11.9,-11.4,-10.2,-9.45,-8.7,-7.8,-7.5,-6.7,-6.0,-4.9,-5.0,-3.0,-2.2,-2.1,-1.8] ; station 3 s_i_obs[2,0:nlay_p(2)-1] = [ 9.2, 10.9, 5.8, 5.0, 4.0, 3.8, 4.1, 4.1, 4.6, 5.2, 4.2, 3.9, 3.8, 3.6, 3.4, 3.1, 3.7, 4.0, 4.3, 4.7, 4.8, 5.5, 9.0 ] t_i_obs[2,0:nlay_p(2)-1] = [-15.3,-13.1,-12.7,-11.2,-11.5,-11.6,-10.8,-10.5,-10.5,-10.2,-10.0,-9.7,-9.4,-8.8,-8.4,-7.3,-6.4,-4.8,-4.3,-4.2,-2.8,-2.4,-2.4] ; station 4 s_i_obs[3,0:nlay_p(3)-1] = [ 7.2, 7.8,5.4,4.7,4.4,3.9,4.1,4.2,4.1,4.2,4.0,4.3,4.6,4.4,4.3,4.2,4.2,5.2,5.1,5.1,4.5,8.1] t_i_obs[3,0:nlay_p(3)-1] = [ -13.0, -11.5,-10.8,-9.8,-9.8,-9.2,-8.7,-8.3,-7.9,-7.5,-7.0,-6.5,-6.0,-5.5,-5.3,-4.3,-3.5,-3.0,-2.8,-2.3,-2.2,-2.1 ] ; station 5 s_i_obs[4,0:nlay_p(4)-1] = [ 6.8, 8.4,5.4,4.9,4.7,4.7,4.5,4.3,5.1,4.0,4.3,4.6,4.8,4.4,3.7,3.9,4.2,5.8,4.8,5.8,5.1,5.5,7.8] t_i_obs[4,0:nlay_p(4)-1] = [-14.4, -13.7,-14.4,-14.4,-13.0,-12.1,-11.8,-11.5,-11.4,-10.5,-9.9,-8.6,-7.4,-7.0,-6.3,-5.7,-5.2,-4.8,-4.2,-3.3,-2.9,-2.4,-2.1 ] ; station 6 s_i_obs[5,0:nlay_p(5)-1] = [ 6.7, 7.6,5.5,4.3,4.6,4.6,4.5,4.6,4.9,4.9,5.1,5.0,4.9,5.7,4.7,4.4,4.4,4.7,4.7,5.4,5.1,4.8,4.5,4.7,7.1 ] t_i_obs[5,0:nlay_p(5)-1] = [ -14.0, -13.5,-12.9,-12.6,-12.7,-12.7,-12.0,-11.7,-11.3,-11.1,-10.6,-10.4,-9.2,-8.1,-6.9,-6.0,-5.6,-5.1,-4.9,-4.3,-3.7,-3.1,-2.6,-2.3,-2.2 ] ; station 7 s_i_obs[6,0:nlay_p(6)-1] = [ 6.3, 7.4,5.4,4.4,4.4,4.9,4.4,5.0,4.5,4.4,4.1,4.0,3.9,4.4,4.4,3.8,3.8,3.6,4.2,4.9,4.5,4.1,4.5,7.8 ] t_i_obs[6,0:nlay_p(6)-1] = [ -10.0, -9.6,-9.3,-9.0,-8.5,-8.3,-8.8,-8.4,-7.9,-7.5,-7.4,-6.5,-6.1,-5.8,-5.0,-4.9,-3.9,-3.6,-3.2,-2.9,-2.5,-2.2,-2.2,-2.1 ] ; station 8 s_i_obs[7,0:nlay_p(7)-1] = [ 4.7, 6.7,5.9,4.3,4.8,4.9,4.7,4.7,4.9,4.5,4.7,4.6,4.8,6.4,4.6,3.7,3.7,4.9,4.4,4.4,4.6,4.5,4.5,4.5,4.9,5.3,10.4 ] t_i_obs[7,0:nlay_p(7)-1] = [-4.0,-3.9,-3.7,-3.5,-3.4,-3.2,-3.1,-2.9,-2.7,-2.2,-2.6,-2.6,-2.4,-2.3,-2.4,-2.2,-2.4,-2.2,-2.1,-1.9,-1.6,-1.6,-1.7,-1.5,-1.6,-1.4,-1.8 ] ; station 9 s_i_obs[8,0:nlay_p(8)-1] = [ 6.7,6.7,5.6,6.0,5.9,5.3,6.3,5.0,6.8,6.9,5.8,5.4,5.0,5.5,5.0,4.6,4.3,4.0,4.3,6.1,4.1,4.2,4.9,3.5,5.9,5.9,8.7 ] t_i_obs[8,0:nlay_p(8)-1] = [ -3.3, -3.5, -3.3,-2.7,-2.7,-2.9,-2.9,-2.6,-2.6,-2.5,-2.6,-2.3,-2.5,-2.5,-2.3,-2.0,-2.1,-2.1,-2.3,-2.0,-2.0,-1.7,-1.5,-1.4,-1.7,-1.9,-2.0 ] ; station 10 s_i_obs[9,0:nlay_p(9)-1] = [ 0.2, 0.2,0.5,0.3,1.5,2.8,3.6,3.5,3.4,3.9,4.3,4.6,3.9,3.9,3.9,3.7,3.9,3.7,4.0,4.2,4.0,4.7,4.3,3.7,3.8,4.2,4.6,4.4,6.2, 6.2] t_i_obs[9,0:nlay_p(9)-1] = [ -0.1, -0.1, -0.1, -0.2, -0.3, -0.7, -0.9, -1.1, -1.2, -1.2, -1.4, -1.5, -1.6, -1.5, -1.6, -1.7, -1.7, -1.7, -1.7, -1.65, -1.6, -1.7, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8, -1.8 ] FOR i = 0, 9 DO BEGIN e_i_obs(i,0:nlay_p(i)-1) = -0.054 * s_i_obs(i,0:nlay_p(i)-1) / t_i_obs(i,0:nlay_p(i)-1) ENDFOR ; station 1 depth_phy_obs[0,0:nlay_p(0)-1] = [ 2.5, 7.5, 12.5,17.5,22.5,27.5,32.5,37.5,42.5,47.5,52.5,57.5,62.5,67.5,72.5,75.5 ] / 100. / h_i_obs(0) depth_phy_obs[1,0:nlay_p(1)-1] = [ 2.5, 7.5,12.5,17.5,22.5,27.5,32.5,37.5,42.5,47.5,52.5,57.5,62.5,65,66.5 ] / 100./ h_i_obs(1) depth_phy_obs[2,0:nlay_p(2)-1] = [ 2.5,7.5,12.5,17.5,22.5,27.5,32.5,37.5,45,50,52.5,57.5,62.5,67.5,72.5,77.5,82.5,87.5,92.5,97.5,102.5,107.5,112.5 ] / 100./ h_i_obs(2) depth_phy_obs[3,0:nlay_p(3)-1] = [ 2.5,7.5,12.5,17.5,22.5,27.5,32.5,37.5,45,50,52.5,57.5,62.5,67.5,72.5,77.5,82.5,87.5,92.5,97.5,102.5,107.5 ] / 100./ h_i_obs(3) depth_phy_obs[4,0:nlay_p(4)-1] = [ 2.5,7.5,12.5,17.5,22.5,27.5,32.5,37.5,45,50,52.5,57.5,62.5,67.5,72.5,77.5,82.5,87.5,92.5,97.5,102.5,107.5,112.5 ] / 100./ h_i_obs(4) depth_phy_obs[5,0:nlay_p(5)-1] = [ 2.5,7.5,12.5,17.5,22.5,27.5,32.5,37.5,42.5,47.5,52.5,57.5,62.5,67.5,72.5,77.5,82.5,87.5,92.5,97.5,102.5,107.5,112.5,117.5,122.5 ] / 100./ h_i_obs(5) depth_phy_obs[6,0:nlay_p(6)-1] = [ 2.5,7.5,12.5,17.5,22.5,27.5,32.5,37.5,42.5,47.5,52.5,57.5,62.5,67.5,77.5,82.5,87.5,92.5,97.5,102.5,107.5,112.5,117.5,122.5 ] / 100./ h_i_obs(6) depth_phy_obs[7,0:nlay_p(7)-1] = [ 2.5,7.5,12.5,17.5,22.5,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,105,110,115,120,125,130,135 ] / 100./ h_i_obs(7) depth_phy_obs[8,0:nlay_p(8)-1] = [ 2.5,7.5,12.5,17.5,22.5,27.5,32.5,37.5,42.5,47.5,52.5,57.5,62.5,67.5,72.5,77.5,82.5,87.5,92.5,97.5,102.5,107.5,112.5,117.5,122.5,127.5,132.5 ] / 100./ h_i_obs(8) depth_phy_obs[9,0:nlay_p(9)-1] = [ 2.5,7.5,12.5,15,17.5,22.5,27.5,32.5,37.5,42.5,47.5,52.5,57.5,62.5,67.5,72.5,77.5,82.5,87.5,92.5,97.5,102.5,107.5,112.5,117.5,122.5,127.5,132.5,137.5,140 ] / 100./ h_i_obs(9) ; interpolate brine volume on the physical grid e_i_obs_bio = FLTARR(10,10) FOR i_obs = 0, 9 DO BEGIN e_i_obs_bio(i_obs,*) = INTERPOL( e_i_obs(i_obs,0:nlay_p(i_obs)-1) , depth_phy_obs(i_obs,0:nlay_p(i_obs)-1), depth_obs(*) ) ENDFOR iaddr = where ( po4_obs NE miss_val ) po4_br_obs = FLTARR(10, 10) po4_br_obs(iaddr) = po4_obs(iaddr) / e_i_obs(iaddr) iaddr = where ( nox_obs NE miss_val ) nox_br_obs = FLTARR(10, 10) nox_br_obs(iaddr) = nox_obs(iaddr) / e_i_obs(iaddr) ; ;============================================================================== ; DIAGNOSTICS ;============================================================================== ; ; ;============================================================================== ; PLOTS ;============================================================================== ; ;--- T !P.MULTI=[0,numplot_x, numplot_y] FOR i_obs = 0, 9 DO BEGIN ; prepare plot LOADCT, 0 ztitle = STRCOMPRESS(STRING(doy_obs(i_obs)), /REMOVE_ALL) PLOT, [ -25., 0. ], [ -1., 0. ], CHARSIZE = cs, /NODATA, SUBTITLE = 'deg C', XTICKFORMAT='(I3)', XMINOR = 2, YMINOR = 2 XYOUTS, -5, -0.1, ztitle ; add obs OPLOT, t_i_obs(i_obs,*), - depth_phy_obs(i_obs,*), PSYM = 1, THICK = 3, SYMSIZE = 0.8 ; add model i_mod = WHERE(doy EQ doy_obs(i_obs)) zz = FLTARR(nlay) FOR i = 0, nlay - 1 DO BEGIN zz(i) = z_ip(i,i_mod) / h_i(i_mod) ENDFOR PRINT, ' zz : ', -zz LOADCT, 3 OPLOT, t_i(*,i_mod), -zz, THICK = 3, COLOR = 150 ENDFOR ;--- S !P.MULTI=[0,numplot_x, numplot_y] FOR i_obs = 0, 9 DO BEGIN ; prepare plot LOADCT, 0 ztitle = STRCOMPRESS(STRING(doy_obs(i_obs)), /REMOVE_ALL) PLOT, [0., 15. ], [ -1., 0. ], CHARSIZE = cs, /NODATA, SUBTITLE = 'g/kg', XTICKFORMAT='(I3)', XMINOR = 2, YMINOR = 2 XYOUTS, 7., -0.1, ztitle ; add obs OPLOT, s_i_obs(i_obs,*), - depth_phy_obs(i_obs,*), PSYM = 1, THICK = 3, SYMSIZE = 0.8 ; add model i_mod = WHERE(doy EQ doy_obs(i_obs)) zz = FLTARR(nlay) FOR i = 0, nlay - 1 DO BEGIN zz(i) = z_ip(i,i_mod) / h_i(i_mod) ENDFOR LOADCT, 3 OPLOT, s_i(*,i_mod), -zz, THICK = 3, COLOR = 150 ENDFOR ;--- e !P.MULTI=[0,numplot_x, numplot_y] FOR i_obs = 0, 9 DO BEGIN ; prepare plot LOADCT, 0 ztitle = STRCOMPRESS(STRING(doy_obs(i_obs)), /REMOVE_ALL) PLOT, [0., 50. ], [ -1., 0. ], CHARSIZE = cs, /NODATA, SUBTITLE = '%', XTICKFORMAT='(I3)', XMINOR = 2, YMINOR = 2 XYOUTS, 15., -0.1, ztitle ; add obs OPLOT, e_i_obs(i_obs,*)*100., - depth_phy_obs(i_obs,*), PSYM = 1, THICK = 3, SYMSIZE = 0.8 ; add model i_mod = WHERE(doy EQ doy_obs(i_obs)) zz = FLTARR(nlay) FOR i = 0, nlay - 1 DO BEGIN zz(i) = z_ip(i,i_mod) / h_i(i_mod) ENDFOR LOADCT, 3 OPLOT, e_i(*,i_mod), -zz, THICK = 3, COLOR = 150 ENDFOR ;--- chla !P.MULTI=[0,numplot_x, numplot_y] FOR i_obs = 0, 9 DO BEGIN ; prepare plot LOADCT, 0 ztitle = STRCOMPRESS(STRING(doy_obs(i_obs)), /REMOVE_ALL) PLOT, [ 0.01, 40. ], [ -1., 0. ], CHARSIZE = cs, /NODATA, SUBTITLE = 'mg chla / m3', XTICKFORMAT='(I3)', XMINOR = 2, YMINOR = 2 XYOUTS, 27., -0.1, ztitle ; add obs OPLOT, chla_obs(i_obs,*), - depth_obs, PSYM = 1, THICK = 3, SYMSIZE = 0.8 ; add model i_mod = WHERE(doy EQ doy_obs(i_obs)) zz = FLTARR(nlay) FOR i = 0, nlay - 1 DO BEGIN zz(i) = z_ib(i,i_mod) / h_i(i_mod) ENDFOR LOADCT, 9 OPLOT, chla(*,i_mod), -zz, THICK = 3, COLOR = 150 ENDFOR ;--- nox !P.MULTI=[0,numplot_x, numplot_y] ii_obs = [ 1, 6, 7, 9 ] FOR j = 0, 3 DO BEGIN i_obs = ii_obs(j) ; prepare plot LOADCT, 0 ztitle = STRCOMPRESS(STRING(doy_obs(i_obs)), /REMOVE_ALL) PLOT, [ 0.00, 3. ], [ -1., 0. ], CHARSIZE = cs, /NODATA, SUBTITLE = 'mmmol N / m3', XTICKFORMAT='(I3)', XMINOR = 2, YMINOR = 2 XYOUTS, 2.2, -0.3, ztitle ; add obs OPLOT, nox_obs(i_obs,*), - depth_obs, PSYM = 1, THICK = 3, SYMSIZE = 0.8 ; add model i_mod = WHERE(doy EQ doy_obs(i_obs)) zz = FLTARR(nlay) FOR i = 0, nlay - 1 DO BEGIN zz(i) = z_ib(i,i_mod) / h_i(i_mod) ENDFOR LOADCT, 9 OPLOT, no3b(*,i_mod), -zz, THICK = 3, COLOR = 150 ENDFOR ;--- po4 !P.MULTI=[0,numplot_x, numplot_y] ii_obs = [ 1, 6, 7, 9 ] FOR j = 0, 3 DO BEGIN i_obs = ii_obs(j) ; prepare plot LOADCT, 0 ztitle = STRCOMPRESS(STRING(doy_obs(i_obs)), /REMOVE_ALL) PLOT, [ 0.00, 0.5 ], [ -1., 0. ], CHARSIZE = cs, /NODATA, SUBTITLE = 'mmmol P / m3', XTICKFORMAT='(F4.1)', XMINOR = 2, YMINOR = 2 XYOUTS, 0.37, -0.3, ztitle ; add obs OPLOT, po4_obs(i_obs,*), - depth_obs, PSYM = 1, THICK = 3, SYMSIZE = 0.8 ; add model i_mod = WHERE(doy EQ doy_obs(i_obs)) zz = FLTARR(nlay) FOR i = 0, nlay - 1 DO BEGIN zz(i) = z_ib(i,i_mod) / h_i(i_mod) ENDFOR LOADCT, 9 OPLOT, po4b(*,i_mod), -zz, THICK = 3, COLOR = 150 ENDFOR ;--- nox_br !P.MULTI=[0,numplot_x, numplot_y] ii_obs = [ 1, 6, 7, 9 ] FOR j = 0, 3 DO BEGIN i_obs = ii_obs(j) ; prepare plot LOADCT, 0 ztitle = STRCOMPRESS(STRING(doy_obs(i_obs)), /REMOVE_ALL) PLOT, [ 0., 80. ], [ -1., 0. ], CHARSIZE = cs, /NODATA, SUBTITLE = 'mmmol N / m3', XTICKFORMAT='(I3)', XMINOR = 2, YMINOR = 2 XYOUTS, 20.0, -0.15, ztitle ; add obs OPLOT, nox_br_obs(i_obs,*), - depth_obs(*), PSYM = 1, THICK = 3, SYMSIZE = 0.8 ; add model i_mod = WHERE(doy EQ doy_obs(i_obs)) zz = FLTARR(nlay) FOR i = 0, nlay - 1 DO BEGIN zz(i) = z_ib(i,i_mod) / h_i(i_mod) ENDFOR LOADCT, 9 OPLOT, no3b(*,i_mod)/e_i(*,i_mod)*100., -zz, THICK = 3, COLOR = 150 LOADCT, 1 OPLOT, [ 1.6, 1.6 ], [ -1., 0.], linestyle = 1, color = 150 , thick = 3 ENDFOR ;--- po4_br !P.MULTI=[0,numplot_x, numplot_y] ii_obs = [ 1, 6, 7, 9 ] FOR j = 0, 3 DO BEGIN i_obs = ii_obs(j) ; prepare plot LOADCT, 0 ztitle = STRCOMPRESS(STRING(doy_obs(i_obs)), /REMOVE_ALL) PLOT, [ 0.0, 30. ], [ -1., 0. ], CHARSIZE = cs, /NODATA, $ SUBTITLE = 'mmmol P / m3', XTICKFORMAT='(I3)', XMINOR = 2, XTICKS = 3 , YMINOR = 2 XYOUTS, 10., -0.15, ztitle ; add obs OPLOT, po4_br_obs(i_obs,*), - depth_obs(*), PSYM = 1, THICK = 3, SYMSIZE = 0.8 ; add model i_mod = WHERE(doy EQ doy_obs(i_obs)) zz = FLTARR(nlay) FOR i = 0, nlay - 1 DO BEGIN zz(i) = z_ib(i,i_mod) / h_i(i_mod) ENDFOR LOADCT, 9 OPLOT, po4b(*,i_mod)/e_i(*,i_mod)*100., -zz, THICK = 3, COLOR = 150 LOADCT, 1 OPLOT, [ 0.24, 0.24 ], [ -1., 0.], linestyle = 1, color = 150 , thick = 3 ENDFOR ; ;============================================================================== ; End of the script ;============================================================================== ; IF ( device EQ 'PS' ) THEN BEGIN DEVICE, /CLOSE SET_PLOT, "X" !P.MULTI=[0,2,2] ENDIF END