source: trunk/GRAPHICS/BARROW_profiles.pro @ 36

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

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

File size: 19.8 KB
Line 
1;
2;------------------------------------------------------------------------------
3;
4; This script makes plots of biological simulations
5;
6; chla stock
7; NO3 stock
8; PO4 stock
9;
10; (c) Martin Vancoppenolle, UCL-ASTR, june 2007
11; reviewed may 2008
12; reviewed feb 2010, for biological model
13; reviewed aug 2014, helsinki
14;
15;------------------------------------------------------------------------------
16;
17i_auto = 1             ; 1=use exp_id.dat; 2=use manual mode with sensitivity runs
18plot_type = 'DEFAULT'  ;
19miss_val  = -9999.
20;
21;==============================================================================
22; General Options
23;==============================================================================
24;
25
26IF ( i_auto EQ 1 ) THEN BEGIN ; automatic mode
27
28   nruns = 1
29   control_run = 'E001' & indir = '' & outdir = '' & dt = 86400 & c_bio_model = 'BFMSI' & site = 'TOURNAI'
30   
31   OPENR, 11, 'exp_id.dat'
32   READF, 11, control_run & READF, 11, indir & READF, 11, outdir
33   READF, 11, dt & READF, 11, c_bio_model & READF, 11, site
34   CLOSE, 11
35   
36   PRINT, control_run
37   PRINT, indir
38   PRINT, outdir
39   PRINT, dt
40   PRINT, c_bio_model
41   PRINT, site
42
43ENDIF
44
45;-------------
46; Manual mode
47;-------------
48IF ( i_auto EQ 0 ) THEN BEGIN
49
50   indir_base = '/Users/ioulianikolskaia/Boulot/CODES/BFMLIM_2013/BFM-LIM-2506_2014/LIM/RUN/'
51   outdir = '/Users/ioulianikolskaia/Boulot/SCIENCE/PLOT_SCRIPTS/LIM1D_BIO/IDL/plots/'
52   dt   = 3600.        ; time step
53
54   control_run = 'LIM_KR_ML'
55   sensiti_run = [ ]
56;  sensiti_run =  [ 'LIM_KR_SL', 'LIM_KR_BA' ]
57   dummy = SIZE(sensiti_run)
58   nruns = dummy(1) + 1 ; sensitivity runs + 1 control run
59   print, 'nruns ', nruns
60
61   indir = STRARR(nruns)
62   indir(0) = indir_base+control_run+'/'
63   FOR i = 1, nruns-1 DO BEGIN
64      indir(i) = indir_base+sensiti_run(i-1)+'/'
65   ENDFOR
66
67ENDIF
68
69;
70;==============================================================================
71; Graphic Options
72;==============================================================================
73;
74
75;--------------------------------
76;--- plot_type dependent options
77;--------------------------------
78
79IF ( plot_type EQ 'DEFAULT' ) THEN BEGIN
80
81   colors      = [  0, 200 ,   100   ,   240   ,   240   ,   120   ,   120    ]     
82   linestyle   = [  0,0    ,    0    ,    1    ,     2   ,     2   ,     1    ]
83   thick       = [  5, 5.  ,    5.0  ,    2.0  ,   2.0   ,   2.0   ,    2.0   ]
84   stamp_out   = control_run+'_profiles'
85   cs          = 1.8 ; charsize
86   colorkey    = 'rd'
87   ct          = 0
88   !X.MARGIN   = [8,3]
89   !Y.MARGIN   = [3,3]
90   x_size      = 4.
91   y_size      = 6.
92   add_obs     = 'YES'
93
94ENDIF
95
96file_name = stamp_out+'.ps'
97
98numplot_x = 5       ; number of horizontal plots
99numplot_y = 2       ; number of vertical plots
100
101device = 'PS'       ; 'PS' or 'X'
102
103;--------------------------------
104;--- define output plots
105;--------------------------------
106figuresize_x = numplot_x * x_size ; figure size on x direction
107figuresize_y = numplot_y * y_size ; figure size on y direction
108set_plot, device
109IF ( device EQ 'PS' ) THEN BEGIN
110   device, /COLOR, /LANDSCAPE, filename=outdir+file_name, $
111           XSIZE=figuresize_x,YSIZE=figuresize_y,FONT_SIZE=9.0
112   loadct, ct
113ENDIF
114
115IF ( device EQ 'X' ) THEN BEGIN
116   xsize = 1200
117   ysize = 800
118   init_graphics_x, xsize, ysize, colorkey
119ENDIF
120
121;
122;==============================================================================
123; EXTRACT DATA
124;==============================================================================
125;
126;open_fields_v6, indir(0), control_run, c_bio_model, $
127;                numt, doy, ts_d, ts_m,                        $
128;                h_i, h_s, z_ip, z_ib, s_i, t_i, e_i, PAR, Ra, $
129;                dhib, dhisu, dhisi,                           $
130;;                DAFb, NO3b, PO4b, DSib, chla,                 $
131;                DAFt, NO3t, PO4t, DSit,                       $
132;                FDAbd, FDAbpos, FDAsi,                        $
133;                FNO3, FNO3bpos, FNO3si,                       $
134;                syn, lys, rem,                                $
135;                lim_lig, lim_no3, lim_po4, lim_dsi, lim_tem, lim_sal
136
137 open_fields_v7, indir(0), control_run, c_bio_model, $
138                 numt, doy, ts_d, ts_m,                        $
139                 h_i, h_s, z_ip, z_ib, s_i, t_i, e_i, PAR, Ra, $
140                 dhib, dhisu, dhisi,                           $
141                 DAFb, NO3b, PO4b, DSib, chla, eoCb,           $
142                 Argb, Argbub, $
143                 Oxyb, Oxybub, $
144                 DICb, Alkb, CO2b, CO2bub,                     $
145                 CO2aq, HCO3m, CO32m, pH, pCO2, Ikab,          $
146                 dFeb, aFeb, eFeb,                             $
147                 DAFt, NO3t, PO4t, DSit, eoCt, Argt,           $
148                 DICt, Alkt, CO2t, Ikat,                       $
149                 dFet, aFet, eFet,                             $
150                 FDAbd, FDAbpos, FDAsi,                        $
151                 FNO3, FNO3bpos, FNO3si,                       $
152                 FCO2_atm, FCO2_bub,                           $
153                 syn, lys, rem,                                $
154                 lim_lig, lim_no3, lim_po4, lim_dsi, lim_tem, lim_sal
155
156zsize = SIZE(DAFb)
157nlay = zsize(1)   ; number of layers
158nts  = zsize(2)   ; number of time steps
159
160;
161;------------------------------------------------------------------------------
162; OBS ...
163;------------------------------------------------------------------------------
164;
165
166;
167; observed normalized profiles from Zhou et al.
168; interpolated in data_BARROW.pro
169;
170doy_obs = [ 29,     34 ,    86 ,    89  ,   94  ,   97  ,  100 ,   128 ,   132 ,   156 ]
171
172depth_obs = [ 5., 15., 25., 35., 45., 55., 65., 75., 85., 95. ] / 100.
173
174chla_obs = FLTARR(10,10)
175chla_obs[0,*] = [  0.108100 , 0.0643000 , 0.0400000 , 0.0422000 , 0.0714000 , 0.162400 , 0.254700 , 0.298500 , 0.737100 , 1.84438 ]
176chla_obs[1,*] = [ 0.0813250 , 0.0739750 , 0.0632500 , 0.0478250 , 0.0257750 , 0.188175 , 0.377175 , 0.509625 , 1.07558 , 1.75818 ]
177chla_obs[2,*] = [ 0.0242000 , 0.130550  , 0.0465000 , 0.0937001 , 0.315200  , 0.412000 , 0.386727 , 0.332500 , 0.950450, 10.9683 ]
178chla_obs[3,*] = [ 0.0788000 , 0.0500000 , 0.0940000 , 0.233600  , 0.147200  , 0.327200 , 0.675200 , 1.05043  , 2.62113 , 3.09060 ]
179chla_obs[4,*] = [ 0.00150000, 0.0285000 , 0.0400000 , 0.0790000 , 0.109000  , 0.271500 , 0.313500 , 0.385000 , 0.923001 , 12.6240 ]
180chla_obs[5,*] = [ 0.261100 ,  0.0646000 , 0.108500  , 0.142200  , 0.136200  , 0.545385 , 0.450000 , 0.525500 , 0.529700 , 16.3075 ]
181chla_obs[6,*] = [ 0.37075  ,  0.597000  , 0.145000  , 0.348750  , 0.312000  , 0.515750 , 0.618750 , 0.457500 , 1.05550 , 36.1653 ]
182chla_obs[7,*] = [ 0.169438 ,  0.127188  , 0.265938  , 0.230000  , 0.113714  , 0.0346250, 0.0195625, 0.0168750 , 0.0198125 , 2.40463 ]
183chla_obs[8,*] = [ 0.638500 , 0.557000 , 0.245000 , 0.391000 , 0.276000 , 0.349000 , 1.01000 , 0.725000 , 0.401000 , 15.2835 ]
184chla_obs[9,*] = [ 0.176500 ,  0.154750  , 0.167500  , 0.237500  , 0.257750 , 0.635250 , 0.938500 , 0.912500 , 0.629750 , 28.0268 ]
185
186nox_obs = FLTARR(10,10) & nox_obs(*,*) = miss_val
187nox_obs[1,*] = [ 2.71490 , 1.74470 , 1.17275 , 1.07783 , 1.05577 , 0.957775 , 0.907750 , 0.999250 , 2.13115 , 1.98073 ]
188nox_obs[6,*] = [ 2.09375 , 1.05475 , 1.27000 , 0.901750 , 0.839500 , 1.15125 , 1.40625 , 1.21750 , 0.772500, 1.66975 ]
189nox_obs[7,*] = [ 1.06462 , 0.470000 , 0.331875 , 0.444125 , 1.06200 , 0.735500 , 1.06737 , 0.500000 , 0.359250 , 0.897376]
190nox_obs[9,*] = [ 0.551500, 0.317500 , 0.243750 , 0.200000 , 0.200000, 0.218500, 0.426250 , 0.390000 , 0.555750, 0.635500]
191
192po4_obs = FLTARR(10,10) & po4_obs(*,*) = miss_val
193po4_obs[1,*] = [ 0.390475 , 0.221425 , 0.130000 , 0.128550 , 0.113850 , 0.115425 , 0.120000 , 0.122000 , 0.239600 , 0.228912 ]
194po4_obs[6,*] = [ 0.218000 , 0.119500 , 0.140000 , 0.165500 , 0.142250 , 0.160000 , 0.220000 , 0.217500 , 0.189500 , 0.287250 ]
195po4_obs[7,*] = [ 0.200250 , 0.169500 , 0.133125 , 0.187250 , 0.184800 , 0.139250 , 0.101875 , 0.131875 , 0.0905000 , 0.335875 ]
196po4_obs[9,*] = [ 0.172500 , 0.0795000 , 0.0612500 , 0.0500000 , 0.0557500 , 0.0507500 , 0.0300000 , 0.0300000 , 0.0592500 , 0.597001 ]
197
198; physical observations
199nlay_p = [    16,     15,     23,     22,     23,    25 ,   24 ,    27 ,   27 ,   30  ]
200h_i_obs= [ 0.755,  0.665,  1.125,  1.075,  1.125, 1.225 , 1.225, 1.35  , 1.325, 1.40  ]
201
202t_i_obs = FLTARR(10,50)           & t_i_obs(*,*) = miss_val
203s_i_obs = FLTARR(10,50)           & s_i_obs(*,*) = miss_val
204e_i_obs = FLTARR(10,50)           & e_i_obs(*,*) = miss_val
205depth_phy_obs  = FLTARR(10,50)           & depth_phy_obs(*,*) = miss_val
206
207; station 1
208s_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 ]
209t_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]
210; station 2
211s_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 ]
212t_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]
213; station 3
214s_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 ]
215t_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]
216; station 4
217s_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]
218t_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 ]
219; station 5
220s_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]
221t_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 ]
222; station 6
223s_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 ]
224t_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 ]
225; station 7
226s_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 ]
227t_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 ]
228; station 8
229s_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 ]
230t_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 ]
231; station 9
232s_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 ]
233t_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 ]
234; station 10
235s_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]
236t_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 ]
237
238FOR i = 0, 9 DO BEGIN
239   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)
240ENDFOR
241
242; station 1
243depth_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)
244depth_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)
245depth_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)
246depth_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)
247depth_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)
248depth_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)
249depth_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)
250depth_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)
251depth_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)
252depth_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)
253
254; interpolate brine volume on the physical grid
255e_i_obs_bio = FLTARR(10,10)
256FOR i_obs = 0, 9 DO BEGIN
257e_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(*) )
258ENDFOR
259
260iaddr = where ( po4_obs NE miss_val )
261po4_br_obs = FLTARR(10, 10)
262po4_br_obs(iaddr) = po4_obs(iaddr) / e_i_obs(iaddr)
263
264iaddr = where ( nox_obs NE miss_val )
265nox_br_obs = FLTARR(10, 10)
266nox_br_obs(iaddr) = nox_obs(iaddr) / e_i_obs(iaddr)
267;
268;==============================================================================
269; DIAGNOSTICS
270;==============================================================================
271;
272
273;
274;==============================================================================
275; PLOTS
276;==============================================================================
277;
278
279;--- T   
280!P.MULTI=[0,numplot_x, numplot_y]
281FOR i_obs = 0, 9 DO BEGIN
282
283   ; prepare plot
284   LOADCT, 0
285   ztitle = STRCOMPRESS(STRING(doy_obs(i_obs)), /REMOVE_ALL)
286   PLOT, [ -25., 0. ], [ -1., 0. ], CHARSIZE = cs, /NODATA, SUBTITLE = 'deg C', XTICKFORMAT='(I3)', XMINOR = 2, YMINOR = 2
287   XYOUTS, -5, -0.1, ztitle
288
289   ; add obs
290   OPLOT, t_i_obs(i_obs,*), - depth_phy_obs(i_obs,*), PSYM = 1, THICK = 3, SYMSIZE = 0.8
291
292   ; add model
293   i_mod = WHERE(doy EQ doy_obs(i_obs))
294   zz = FLTARR(nlay)
295   FOR i = 0, nlay - 1 DO BEGIN
296      zz(i) = z_ip(i,i_mod) / h_i(i_mod)
297   ENDFOR
298   PRINT, ' zz : ', -zz
299   LOADCT, 3
300   OPLOT, t_i(*,i_mod), -zz, THICK = 3, COLOR = 150
301
302ENDFOR
303
304;--- S   
305!P.MULTI=[0,numplot_x, numplot_y]
306FOR i_obs = 0, 9 DO BEGIN
307
308   ; prepare plot
309   LOADCT, 0
310   ztitle = STRCOMPRESS(STRING(doy_obs(i_obs)), /REMOVE_ALL)
311   PLOT, [0., 15. ], [ -1., 0. ], CHARSIZE = cs, /NODATA, SUBTITLE = 'g/kg', XTICKFORMAT='(I3)', XMINOR = 2, YMINOR = 2
312   XYOUTS, 7., -0.1, ztitle
313
314   ; add obs
315   OPLOT, s_i_obs(i_obs,*), - depth_phy_obs(i_obs,*), PSYM = 1, THICK = 3, SYMSIZE = 0.8
316
317   ; add model
318   i_mod = WHERE(doy EQ doy_obs(i_obs))
319   zz = FLTARR(nlay)
320   FOR i = 0, nlay - 1 DO BEGIN
321      zz(i) = z_ip(i,i_mod) / h_i(i_mod)
322   ENDFOR
323   LOADCT, 3
324   OPLOT, s_i(*,i_mod), -zz, THICK = 3, COLOR = 150
325
326ENDFOR
327
328;--- e   
329!P.MULTI=[0,numplot_x, numplot_y]
330FOR i_obs = 0, 9 DO BEGIN
331
332   ; prepare plot
333   LOADCT, 0
334   ztitle = STRCOMPRESS(STRING(doy_obs(i_obs)), /REMOVE_ALL)
335   PLOT, [0., 50. ], [ -1., 0. ], CHARSIZE = cs, /NODATA, SUBTITLE = '%', XTICKFORMAT='(I3)', XMINOR = 2, YMINOR = 2
336   XYOUTS, 15., -0.1, ztitle
337
338   ; add obs
339   OPLOT, e_i_obs(i_obs,*)*100., - depth_phy_obs(i_obs,*), PSYM = 1, THICK = 3, SYMSIZE = 0.8
340
341   ; add model
342   i_mod = WHERE(doy EQ doy_obs(i_obs))
343   zz = FLTARR(nlay)
344   FOR i = 0, nlay - 1 DO BEGIN
345      zz(i) = z_ip(i,i_mod) / h_i(i_mod)
346   ENDFOR
347   LOADCT, 3
348   OPLOT, e_i(*,i_mod), -zz, THICK = 3, COLOR = 150
349
350ENDFOR
351
352;--- chla
353!P.MULTI=[0,numplot_x, numplot_y]
354FOR i_obs = 0, 9 DO BEGIN
355
356   ; prepare plot
357   LOADCT, 0
358   ztitle = STRCOMPRESS(STRING(doy_obs(i_obs)), /REMOVE_ALL)
359   PLOT, [ 0.01, 40. ], [ -1., 0. ], CHARSIZE = cs, /NODATA, SUBTITLE = 'mg chla / m3', XTICKFORMAT='(I3)', XMINOR = 2, YMINOR = 2
360   XYOUTS, 27., -0.1, ztitle
361
362   ; add obs
363   OPLOT, chla_obs(i_obs,*), - depth_obs, PSYM = 1, THICK = 3, SYMSIZE = 0.8
364
365   ; add model
366   i_mod = WHERE(doy EQ doy_obs(i_obs))
367   zz = FLTARR(nlay)
368   FOR i = 0, nlay - 1 DO BEGIN
369      zz(i) = z_ib(i,i_mod) / h_i(i_mod)
370   ENDFOR
371   LOADCT, 9
372   OPLOT, chla(*,i_mod), -zz, THICK = 3, COLOR = 150
373
374ENDFOR
375
376;--- nox 
377!P.MULTI=[0,numplot_x, numplot_y]
378ii_obs = [ 1, 6, 7, 9 ]
379
380FOR j = 0, 3 DO BEGIN
381
382   i_obs = ii_obs(j)
383     
384   ; prepare plot
385   LOADCT, 0
386   ztitle = STRCOMPRESS(STRING(doy_obs(i_obs)), /REMOVE_ALL)
387   PLOT, [ 0.00, 3. ], [ -1., 0. ], CHARSIZE = cs, /NODATA, SUBTITLE = 'mmmol N / m3', XTICKFORMAT='(I3)', XMINOR = 2, YMINOR = 2
388   XYOUTS, 2.2, -0.3, ztitle
389
390   ; add obs
391   OPLOT, nox_obs(i_obs,*), - depth_obs, PSYM = 1, THICK = 3, SYMSIZE = 0.8
392
393   ; add model
394   i_mod = WHERE(doy EQ doy_obs(i_obs))
395   zz = FLTARR(nlay)
396   FOR i = 0, nlay - 1 DO BEGIN
397      zz(i) = z_ib(i,i_mod) / h_i(i_mod)
398   ENDFOR
399   LOADCT, 9
400   OPLOT, no3b(*,i_mod), -zz, THICK = 3, COLOR = 150
401
402
403ENDFOR
404
405;--- po4 
406!P.MULTI=[0,numplot_x, numplot_y]
407ii_obs = [ 1, 6, 7, 9 ]
408
409FOR j = 0, 3 DO BEGIN
410
411   i_obs = ii_obs(j)
412     
413   ; prepare plot
414   LOADCT, 0
415   ztitle = STRCOMPRESS(STRING(doy_obs(i_obs)), /REMOVE_ALL)
416   PLOT, [ 0.00, 0.5 ], [ -1., 0. ], CHARSIZE = cs, /NODATA, SUBTITLE = 'mmmol P / m3', XTICKFORMAT='(F4.1)', XMINOR = 2, YMINOR = 2
417   XYOUTS, 0.37, -0.3, ztitle
418
419   ; add obs
420   OPLOT, po4_obs(i_obs,*), - depth_obs, PSYM = 1, THICK = 3, SYMSIZE = 0.8
421
422   ; add model
423   i_mod = WHERE(doy EQ doy_obs(i_obs))
424   zz = FLTARR(nlay)
425   FOR i = 0, nlay - 1 DO BEGIN
426      zz(i) = z_ib(i,i_mod) / h_i(i_mod)
427   ENDFOR
428   LOADCT, 9
429   OPLOT, po4b(*,i_mod), -zz, THICK = 3, COLOR = 150
430
431
432ENDFOR
433
434;--- nox_br
435!P.MULTI=[0,numplot_x, numplot_y]
436ii_obs = [ 1, 6, 7, 9 ]
437
438FOR j = 0, 3 DO BEGIN
439
440   i_obs = ii_obs(j)
441
442   ; prepare plot
443   LOADCT, 0
444   ztitle = STRCOMPRESS(STRING(doy_obs(i_obs)), /REMOVE_ALL)
445   PLOT, [ 0., 80. ], [ -1., 0. ], CHARSIZE = cs, /NODATA, SUBTITLE = 'mmmol N / m3', XTICKFORMAT='(I3)', XMINOR = 2, YMINOR = 2
446   XYOUTS, 20.0, -0.15, ztitle
447
448   ; add obs
449   OPLOT, nox_br_obs(i_obs,*), - depth_obs(*), PSYM = 1, THICK = 3, SYMSIZE = 0.8
450
451   ; add model
452   i_mod = WHERE(doy EQ doy_obs(i_obs))
453   zz = FLTARR(nlay)
454   FOR i = 0, nlay - 1 DO BEGIN
455      zz(i) = z_ib(i,i_mod) / h_i(i_mod)
456   ENDFOR
457   LOADCT, 9
458   OPLOT, no3b(*,i_mod)/e_i(*,i_mod)*100., -zz, THICK = 3, COLOR = 150
459   LOADCT, 1
460
461   OPLOT, [ 1.6, 1.6 ], [ -1., 0.], linestyle = 1, color = 150 , thick = 3
462
463ENDFOR
464
465;--- po4_br
466!P.MULTI=[0,numplot_x, numplot_y]
467
468ii_obs = [ 1, 6, 7, 9 ]
469
470FOR j = 0, 3 DO BEGIN
471
472   i_obs = ii_obs(j)
473     
474   ; prepare plot
475   LOADCT, 0
476   ztitle = STRCOMPRESS(STRING(doy_obs(i_obs)), /REMOVE_ALL)
477   PLOT, [ 0.0, 30. ], [ -1., 0. ], CHARSIZE = cs, /NODATA, $
478         SUBTITLE = 'mmmol P / m3', XTICKFORMAT='(I3)', XMINOR = 2, XTICKS = 3 , YMINOR = 2
479   XYOUTS, 10., -0.15, ztitle
480
481   ; add obs
482   OPLOT, po4_br_obs(i_obs,*), - depth_obs(*), PSYM = 1, THICK = 3, SYMSIZE = 0.8
483
484   ; add model
485   i_mod = WHERE(doy EQ doy_obs(i_obs))
486   zz = FLTARR(nlay)
487   FOR i = 0, nlay - 1 DO BEGIN
488      zz(i) = z_ib(i,i_mod) / h_i(i_mod)
489   ENDFOR
490   LOADCT, 9
491   OPLOT, po4b(*,i_mod)/e_i(*,i_mod)*100., -zz, THICK = 3, COLOR = 150
492   LOADCT, 1
493
494   OPLOT, [ 0.24, 0.24 ], [ -1., 0.], linestyle = 1, color = 150 , thick = 3
495
496ENDFOR
497
498;
499;==============================================================================
500; End of the script
501;==============================================================================
502;
503IF ( device EQ 'PS' ) THEN BEGIN
504   DEVICE, /CLOSE
505   SET_PLOT, "X"
506   !P.MULTI=[0,2,2]
507ENDIF
508
509END
510
Note: See TracBrowser for help on using the repository browser.