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 | ; |
---|
17 | i_auto = 1 ; 1=use exp_id.dat; 2=use manual mode with sensitivity runs |
---|
18 | plot_type = 'DEFAULT' ; |
---|
19 | miss_val = -9999. |
---|
20 | ; |
---|
21 | ;============================================================================== |
---|
22 | ; General Options |
---|
23 | ;============================================================================== |
---|
24 | ; |
---|
25 | |
---|
26 | IF ( 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 | |
---|
43 | ENDIF |
---|
44 | |
---|
45 | ;------------- |
---|
46 | ; Manual mode |
---|
47 | ;------------- |
---|
48 | IF ( 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 | |
---|
67 | ENDIF |
---|
68 | |
---|
69 | ; |
---|
70 | ;============================================================================== |
---|
71 | ; Graphic Options |
---|
72 | ;============================================================================== |
---|
73 | ; |
---|
74 | |
---|
75 | ;-------------------------------- |
---|
76 | ;--- plot_type dependent options |
---|
77 | ;-------------------------------- |
---|
78 | |
---|
79 | IF ( 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 | |
---|
94 | ENDIF |
---|
95 | |
---|
96 | file_name = stamp_out+'.ps' |
---|
97 | |
---|
98 | numplot_x = 5 ; number of horizontal plots |
---|
99 | numplot_y = 2 ; number of vertical plots |
---|
100 | |
---|
101 | device = 'PS' ; 'PS' or 'X' |
---|
102 | |
---|
103 | ;-------------------------------- |
---|
104 | ;--- define output plots |
---|
105 | ;-------------------------------- |
---|
106 | figuresize_x = numplot_x * x_size ; figure size on x direction |
---|
107 | figuresize_y = numplot_y * y_size ; figure size on y direction |
---|
108 | set_plot, device |
---|
109 | IF ( 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 |
---|
113 | ENDIF |
---|
114 | |
---|
115 | IF ( device EQ 'X' ) THEN BEGIN |
---|
116 | xsize = 1200 |
---|
117 | ysize = 800 |
---|
118 | init_graphics_x, xsize, ysize, colorkey |
---|
119 | ENDIF |
---|
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 | |
---|
156 | zsize = SIZE(DAFb) |
---|
157 | nlay = zsize(1) ; number of layers |
---|
158 | nts = 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 | ; |
---|
170 | doy_obs = [ 29, 34 , 86 , 89 , 94 , 97 , 100 , 128 , 132 , 156 ] |
---|
171 | |
---|
172 | depth_obs = [ 5., 15., 25., 35., 45., 55., 65., 75., 85., 95. ] / 100. |
---|
173 | |
---|
174 | chla_obs = FLTARR(10,10) |
---|
175 | chla_obs[0,*] = [ 0.108100 , 0.0643000 , 0.0400000 , 0.0422000 , 0.0714000 , 0.162400 , 0.254700 , 0.298500 , 0.737100 , 1.84438 ] |
---|
176 | chla_obs[1,*] = [ 0.0813250 , 0.0739750 , 0.0632500 , 0.0478250 , 0.0257750 , 0.188175 , 0.377175 , 0.509625 , 1.07558 , 1.75818 ] |
---|
177 | chla_obs[2,*] = [ 0.0242000 , 0.130550 , 0.0465000 , 0.0937001 , 0.315200 , 0.412000 , 0.386727 , 0.332500 , 0.950450, 10.9683 ] |
---|
178 | chla_obs[3,*] = [ 0.0788000 , 0.0500000 , 0.0940000 , 0.233600 , 0.147200 , 0.327200 , 0.675200 , 1.05043 , 2.62113 , 3.09060 ] |
---|
179 | chla_obs[4,*] = [ 0.00150000, 0.0285000 , 0.0400000 , 0.0790000 , 0.109000 , 0.271500 , 0.313500 , 0.385000 , 0.923001 , 12.6240 ] |
---|
180 | chla_obs[5,*] = [ 0.261100 , 0.0646000 , 0.108500 , 0.142200 , 0.136200 , 0.545385 , 0.450000 , 0.525500 , 0.529700 , 16.3075 ] |
---|
181 | chla_obs[6,*] = [ 0.37075 , 0.597000 , 0.145000 , 0.348750 , 0.312000 , 0.515750 , 0.618750 , 0.457500 , 1.05550 , 36.1653 ] |
---|
182 | chla_obs[7,*] = [ 0.169438 , 0.127188 , 0.265938 , 0.230000 , 0.113714 , 0.0346250, 0.0195625, 0.0168750 , 0.0198125 , 2.40463 ] |
---|
183 | chla_obs[8,*] = [ 0.638500 , 0.557000 , 0.245000 , 0.391000 , 0.276000 , 0.349000 , 1.01000 , 0.725000 , 0.401000 , 15.2835 ] |
---|
184 | chla_obs[9,*] = [ 0.176500 , 0.154750 , 0.167500 , 0.237500 , 0.257750 , 0.635250 , 0.938500 , 0.912500 , 0.629750 , 28.0268 ] |
---|
185 | |
---|
186 | nox_obs = FLTARR(10,10) & nox_obs(*,*) = miss_val |
---|
187 | nox_obs[1,*] = [ 2.71490 , 1.74470 , 1.17275 , 1.07783 , 1.05577 , 0.957775 , 0.907750 , 0.999250 , 2.13115 , 1.98073 ] |
---|
188 | nox_obs[6,*] = [ 2.09375 , 1.05475 , 1.27000 , 0.901750 , 0.839500 , 1.15125 , 1.40625 , 1.21750 , 0.772500, 1.66975 ] |
---|
189 | nox_obs[7,*] = [ 1.06462 , 0.470000 , 0.331875 , 0.444125 , 1.06200 , 0.735500 , 1.06737 , 0.500000 , 0.359250 , 0.897376] |
---|
190 | nox_obs[9,*] = [ 0.551500, 0.317500 , 0.243750 , 0.200000 , 0.200000, 0.218500, 0.426250 , 0.390000 , 0.555750, 0.635500] |
---|
191 | |
---|
192 | po4_obs = FLTARR(10,10) & po4_obs(*,*) = miss_val |
---|
193 | po4_obs[1,*] = [ 0.390475 , 0.221425 , 0.130000 , 0.128550 , 0.113850 , 0.115425 , 0.120000 , 0.122000 , 0.239600 , 0.228912 ] |
---|
194 | po4_obs[6,*] = [ 0.218000 , 0.119500 , 0.140000 , 0.165500 , 0.142250 , 0.160000 , 0.220000 , 0.217500 , 0.189500 , 0.287250 ] |
---|
195 | po4_obs[7,*] = [ 0.200250 , 0.169500 , 0.133125 , 0.187250 , 0.184800 , 0.139250 , 0.101875 , 0.131875 , 0.0905000 , 0.335875 ] |
---|
196 | po4_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 |
---|
199 | nlay_p = [ 16, 15, 23, 22, 23, 25 , 24 , 27 , 27 , 30 ] |
---|
200 | h_i_obs= [ 0.755, 0.665, 1.125, 1.075, 1.125, 1.225 , 1.225, 1.35 , 1.325, 1.40 ] |
---|
201 | |
---|
202 | t_i_obs = FLTARR(10,50) & t_i_obs(*,*) = miss_val |
---|
203 | s_i_obs = FLTARR(10,50) & s_i_obs(*,*) = miss_val |
---|
204 | e_i_obs = FLTARR(10,50) & e_i_obs(*,*) = miss_val |
---|
205 | depth_phy_obs = FLTARR(10,50) & depth_phy_obs(*,*) = miss_val |
---|
206 | |
---|
207 | ; station 1 |
---|
208 | 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 ] |
---|
209 | 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] |
---|
210 | ; station 2 |
---|
211 | 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 ] |
---|
212 | 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] |
---|
213 | ; station 3 |
---|
214 | 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 ] |
---|
215 | 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] |
---|
216 | ; station 4 |
---|
217 | 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] |
---|
218 | 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 ] |
---|
219 | ; station 5 |
---|
220 | 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] |
---|
221 | 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 ] |
---|
222 | ; station 6 |
---|
223 | 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 ] |
---|
224 | 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 ] |
---|
225 | ; station 7 |
---|
226 | 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 ] |
---|
227 | 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 ] |
---|
228 | ; station 8 |
---|
229 | 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 ] |
---|
230 | 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 ] |
---|
231 | ; station 9 |
---|
232 | 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 ] |
---|
233 | 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 ] |
---|
234 | ; station 10 |
---|
235 | 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] |
---|
236 | 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 ] |
---|
237 | |
---|
238 | FOR 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) |
---|
240 | ENDFOR |
---|
241 | |
---|
242 | ; station 1 |
---|
243 | 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) |
---|
244 | 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) |
---|
245 | 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) |
---|
246 | 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) |
---|
247 | 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) |
---|
248 | 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) |
---|
249 | 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) |
---|
250 | 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) |
---|
251 | 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) |
---|
252 | 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) |
---|
253 | |
---|
254 | ; interpolate brine volume on the physical grid |
---|
255 | e_i_obs_bio = FLTARR(10,10) |
---|
256 | FOR i_obs = 0, 9 DO BEGIN |
---|
257 | 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(*) ) |
---|
258 | ENDFOR |
---|
259 | |
---|
260 | iaddr = where ( po4_obs NE miss_val ) |
---|
261 | po4_br_obs = FLTARR(10, 10) |
---|
262 | po4_br_obs(iaddr) = po4_obs(iaddr) / e_i_obs(iaddr) |
---|
263 | |
---|
264 | iaddr = where ( nox_obs NE miss_val ) |
---|
265 | nox_br_obs = FLTARR(10, 10) |
---|
266 | nox_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] |
---|
281 | FOR 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 | |
---|
302 | ENDFOR |
---|
303 | |
---|
304 | ;--- S |
---|
305 | !P.MULTI=[0,numplot_x, numplot_y] |
---|
306 | FOR 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 | |
---|
326 | ENDFOR |
---|
327 | |
---|
328 | ;--- e |
---|
329 | !P.MULTI=[0,numplot_x, numplot_y] |
---|
330 | FOR 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 | |
---|
350 | ENDFOR |
---|
351 | |
---|
352 | ;--- chla |
---|
353 | !P.MULTI=[0,numplot_x, numplot_y] |
---|
354 | FOR 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 | |
---|
374 | ENDFOR |
---|
375 | |
---|
376 | ;--- nox |
---|
377 | !P.MULTI=[0,numplot_x, numplot_y] |
---|
378 | ii_obs = [ 1, 6, 7, 9 ] |
---|
379 | |
---|
380 | FOR 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 | |
---|
403 | ENDFOR |
---|
404 | |
---|
405 | ;--- po4 |
---|
406 | !P.MULTI=[0,numplot_x, numplot_y] |
---|
407 | ii_obs = [ 1, 6, 7, 9 ] |
---|
408 | |
---|
409 | FOR 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 | |
---|
432 | ENDFOR |
---|
433 | |
---|
434 | ;--- nox_br |
---|
435 | !P.MULTI=[0,numplot_x, numplot_y] |
---|
436 | ii_obs = [ 1, 6, 7, 9 ] |
---|
437 | |
---|
438 | FOR 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 | |
---|
463 | ENDFOR |
---|
464 | |
---|
465 | ;--- po4_br |
---|
466 | !P.MULTI=[0,numplot_x, numplot_y] |
---|
467 | |
---|
468 | ii_obs = [ 1, 6, 7, 9 ] |
---|
469 | |
---|
470 | FOR 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 | |
---|
496 | ENDFOR |
---|
497 | |
---|
498 | ; |
---|
499 | ;============================================================================== |
---|
500 | ; End of the script |
---|
501 | ;============================================================================== |
---|
502 | ; |
---|
503 | IF ( device EQ 'PS' ) THEN BEGIN |
---|
504 | DEVICE, /CLOSE |
---|
505 | SET_PLOT, "X" |
---|
506 | !P.MULTI=[0,2,2] |
---|
507 | ENDIF |
---|
508 | |
---|
509 | END |
---|
510 | |
---|