New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
std_plot_all_1Y.pro in branches/2014/dev_r4650_UKMO14.5_SST_BIAS_CORRECTION/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts – NEMO

source: branches/2014/dev_r4650_UKMO14.5_SST_BIAS_CORRECTION/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_plot_all_1Y.pro @ 5967

Last change on this file since 5967 was 5967, checked in by timgraham, 8 years ago

Reset keywords before merging with head of trunk

  • Property svn:keywords set to Id
File size: 25.9 KB
Line 
1pro std_plot_all_1Y, doplot = doplot, _extra = ex
2
3  compile_opt idl2, strictarrsubs
4
5@common
6@std_common
7                                ; scripts for nemo v3_2 and v3_3
8
9  PRINT, ''
10  PRINT, '  ############################################'
11  PRINT, ''
12  PRINT, '                    LAUNCH of std_plots'
13  PRINT, ''
14  PRINT, '  ############################################'
15  PRINT, ''
16;
17  std_iodir_data    = isadirectory(getenv('DIR_DATA'),     title = 'path of data in NetCdf format')
18  std_iodir_climato = isadirectory(getenv('DIR_CLIMATO'),  title = 'path of climatological data')
19  std_iodir_mask    = isadirectory(getenv('DIR_MASK'),     title = 'path of mask files (ex: subbasins)')
20; meshmask
21  std_file_mesh = isafile(getenv('FILE_MESH_MASK'),        title = 'mesh_mask', iodir = std_iodir_mask)
22  std_file_msksub = isafile(getenv('FILE_MASK_SUBDOMAIN'), title = 'sub-bassin masks', iodir = std_iodir_mask)
23
24; climatologies
25  std_file_Levitus_T =  isafile(getenv('FILE_TEMP_3D'),    title = 'Levitus_T', iodir = std_iodir_climato)
26  std_file_Levitus_S =  isafile(getenv('FILE_SAL_3D'),     title = 'Levitus_S', iodir = std_iodir_climato)
27  std_file_reynolds  =  isafile(getenv('FILE_SST'),        title = 'Reynolds', iodir = std_iodir_climato)
28  std_file_oaflux    =  isafile(getenv('FILE_FLUX'),       title = 'oaflux', iodir = std_iodir_climato)
29  std_file_mld       =  isafile(getenv('FILE_MLD'),        title = 'Mixed layer depth', iodir = std_iodir_climato)
30  std_file_ice       =  isafile(getenv('FILE_ICE'),        title = 'ICE', iodir = std_iodir_climato)
31  std_file_snow_arc  =  isafile(getenv('FILE_SNOW_ARC'),   title = 'SNOW_ARC', iodir = std_iodir_climato)
32  std_file_snow_ant  =  isafile(getenv('FILE_SNOW_ANT'),   title = 'SNOW_ANT', iodir = std_iodir_climato)
33
34  IF strlowcase(getenv('FILE_GEOHEAT')) EQ 'no' THEN std_file_geoheat = 'no' $
35  ELSE std_file_geoheat =  isafile(getenv('FILE_GEOHEAT'), title = 'Geothermal heating', iodir = std_iodir_climato)
36;
37  allrec =  1 - keyword_set(long(getenv('READ_ONLY_FIRST_RECORD')))
38; Output run experience1
39  std_file1_T     = isafile(getenv('FILE1_T'), title = 'exp1 grid T input file', iodir = std_iodir_data)
40  std_file1_U     = isafile(getenv('FILE1_U'), title = 'exp1 grid U input file', iodir = std_iodir_data)
41  std_file1_V     = isafile(getenv('FILE1_V'), title = 'exp1 grid V input file', iodir = std_iodir_data)
42  std_file1_I     = isafile(getenv('FILE1_I'), title = 'exp1 ice    input file', iodir = std_iodir_data)
43 
44; Output run experience2
45  std_file2_T     = isafile(getenv('FILE2_T'), title = 'exp2 grid T input file', iodir = std_iodir_data)
46  std_file2_U     = isafile(getenv('FILE2_U'), title = 'exp2 grid U input file', iodir = std_iodir_data)
47  std_file2_V     = isafile(getenv('FILE2_V'), title = 'exp2 grid V input file', iodir = std_iodir_data)
48  std_file2_I     = isafile(getenv('FILE2_I'), title = 'exp2 ice    input file', iodir = std_iodir_data)
49
50  PRINT, ''
51  PRINT, '  std_iodir_data : ' + std_iodir_data
52  PRINT, '  std_file1T : ' + std_file1_T
53  PRINT, '  std_file1U : ' + std_file1_U
54  PRINT, '  std_file1V : ' + std_file1_V
55;  PRINT, ' std_file1W : ' + std_file1_W
56  PRINT, '  std_file2I : ' + std_file1_I
57  PRINT, '  std_file2T : ' + std_file2_T
58  PRINT, '  std_file2U : ' + std_file2_U
59  PRINT, '  std_file2V : ' + std_file2_V
60;  PRINT, ' std_file2W : ' + std_file2_W
61  PRINT, '  std_file2I : ' + std_file2_I
62  PRINT, ''
63
64;#########################################################################
65;##########################  Load Grids   ################################
66;#########################################################################
67; load the grid
68  load_orca, std_file_mesh 
69; reading variables
70  masknp = read_ncdf('tmaskutil', file = std_file_mesh, /nostruct, /cont_nofill)
71;#########################################################################
72;############################  Read Data  ################################
73;#########################################################################
74;
75  allrec =  1; - keyword_set(long(getenv('READ_ONLY_FIRST_RECORD')))
76;
77;;; 3D ;;;
78; temperature
79  T1 = read_ncdf(getenv('VAR1_T'), allrecords = allrec, direc = 't', filename = std_file1_T )
80  IF std_file2_T NE std_file1_T THEN BEGIN
81    T2 = read_ncdf(getenv('VAR2_T'), allrecords = allrec, direc = 't', filename = std_file2_T )
82  ENDIF ELSE T2 = {arr:-1}
83  TLev = read_ncdf(getenv('VAR_TEMP_3D'), filename = std_file_Levitus_T )
84  TRey = read_ncdf(getenv('VAR_SST'), filename = std_file_reynolds )
85
86; salinity
87  S1 = read_ncdf(getenv('VAR1_S'), allrecords = allrec, direc = 't', filename = std_file1_T )
88  IF std_file2_T NE std_file1_T THEN BEGIN
89    S2 = read_ncdf(getenv('VAR2_S'), allrecords = allrec, direc = 't', filename = std_file2_T )
90  ENDIF ELSE S2 = {arr:-1}
91  SLev = read_ncdf(getenv('VAR_SAL_3D'), filename = std_file_Levitus_S )
92
93;;; 2D ;;;
94; Net Downward heat flux
95  Q1 = read_ncdf(getenv('VAR1_QNET'), allrecords = allrec, direc = 't', filename = std_file1_T )
96  IF std_file2_T NE std_file1_T THEN BEGIN
97    Q2 = read_ncdf(getenv('VAR2_QNET'), allrecords = allrec, direc = 't', filename = std_file2_T )
98  ENDIF ELSE Q2 = {arr:-1}
99; Geothermal heating
100  IF std_file_geoheat EQ 'no' THEN geo = {arr:float(getenv('VAR_GEOHEAT'))} $
101  ELSE geo = read_ncdf(getenv('VAR_GEOHEAT'), filename =  std_file_geoheat )
102  geo = geo.arr*1.e-3          ; convert into W/m2
103;climatology
104  QNET = read_ncdf(getenv('VAR_FLUX'), filename = std_file_oaflux )
105
106; erp (evaporation damping)
107  ERP1 = read_ncdf(getenv('VAR1_ERP'), allrecords = allrec, direc = 't', filename = std_file1_T )
108  ERP1 = {arr:ERP1.arr * 86400., unit:'mm/day', grid:'T'}
109  IF std_file2_T NE std_file1_T THEN BEGIN
110     ERP2 = read_ncdf(getenv('VAR2_ERP'), allrecords = allrec, direc = 't', filename = std_file2_T )
111     ERP2 = {arr:ERP2.arr * 86400., unit:'mm/day', grid:'T'}
112  ENDIF ELSE ERP2 = {arr:-1}
113 
114; emp (evaporation minus precipitation)
115  EMP1 = read_ncdf(getenv('VAR1_EMP'), allrecords = allrec, direc = 't', filename = std_file1_T )
116  EMP1 = {arr:EMP1.arr * 86400., unit:'mm/day', grid:'T'}
117   IF std_file2_T NE std_file1_T THEN BEGIN
118     EMP2 = read_ncdf(getenv('VAR2_EMP'), allrecords = allrec, direc = 't', filename = std_file2_T )
119     EMP2 = {arr:EMP2.arr * 86400., unit:'mm/day', grid:'T'}
120   ENDIF ELSE EMP2 = {arr:-1}
121   
122 ;mixed layer depth
123   MLD1 = read_ncdf(getenv('VAR1_MLD'), allrecords = allrec, direc = 't', filename = std_file1_T ) ; 10 m
124   IF std_file2_T NE std_file1_T THEN BEGIN
125     MLD2 = read_ncdf(getenv('VAR2_MLD'), allrecords = allrec, direc = 't', filename = std_file2_T ) ; 10 m
126   ENDIF ELSE MLD2 = {arr:-1}
127 ;climatology
128   MLD = read_ncdf(getenv('VAR_MLD'), filename = std_file_mld )
129
130 ; velocities
131   U1 = read_ncdf(getenv('VAR1_U'), allrecords = allrec, direc = 't', filename = std_file1_U )
132   ; old formulation: we tested variable name
133   ; IF strlowcase(getenv('VAR1_U')) EQ 'uocetr_eff' OR strlowcase(getenv('VAR1_U')) EQ 'vozoeftr' THEN BEGIN
134   IF strlowcase(U1.unit) EQ 'm3/s' THEN BEGIN
135     ;IF it is a transport it is transofrmed in velocity
136     U1.arr = U1.arr / e3u_3d(/e2) * umask()
137     U1.unit = 'm/s'
138   ENDIF
139   IF std_file2_U NE std_file1_U THEN BEGIN
140     U2 = read_ncdf(getenv('VAR2_U'), allrecords = allrec, direc = 't', filename = std_file2_U )
141     ; old formulation: we tested variable name
142     ; IF strlowcase(getenv('VAR2_U')) EQ 'uocetr_eff' OR strlowcase(getenv('VAR2_U')) EQ 'vozoeftr' THEN BEGIN
143     IF strlowcase(U2.unit) EQ 'm3/s' THEN BEGIN
144       U2.arr = U2.arr / e3u_3d(/e2) * umask()
145       U2.unit = 'm/s'
146     ENDIF
147   ENDIF ELSE U2 = {arr:-1}
148;
149   V1 = read_ncdf(getenv('VAR1_V'), allrecords = allrec, direc = 't', filename = std_file1_V )
150   ; old formulation: we tested variable name
151   ; IF strlowcase(getenv('VAR1_V')) EQ 'vocetr_eff' OR strlowcase(getenv('VAR1_V')) EQ 'vomeeftr' THEN BEGIN
152   IF strlowcase(V1.unit) EQ 'm3/s' THEN BEGIN ; test on unit to understand if it is a transport or velocity
153     ;IF it is a transport it is transofrmed in velocity
154     V1.arr = V1.arr / e3v_3d(/e1) * vmask()
155     V1.unit = 'm/s'
156   ENDIF
157   IF std_file2_V NE std_file1_V THEN BEGIN
158     V2 = read_ncdf(getenv('VAR2_V'), allrecords = allrec, direc = 't', filename = std_file2_V )
159     ; old formulation
160     ; IF strlowcase(getenv('VAR2_V')) EQ 'vocetr_eff' OR strlowcase(getenv('VAR2_V')) EQ 'vozoeftr' THEN BEGIN
161     IF strlowcase(V2.unit) EQ 'm3/s' THEN BEGIN
162       V2.arr = V2.arr / e3v_3d(/e1) * vmask()
163       V2.unit = 'm/s'
164     ENDIF
165   ENDIF ELSE V2 = {arr:-1}
166
167; ice
168  Ithi_1 = read_ncdf(getenv('VAR1_Ithick'), allrecords = allrec, filename = std_file1_I )
169  caldat, time, mm
170  april = where(mm EQ 4, cnt)
171  Ithi_april_1 = {arr:1./float(cnt) * total(reform(Ithi_1.arr[*, *, temporary(april)],nxt,nyt,cnt), 3), unit:Ithi_1.unit}
172  jan = where(mm EQ 1, cnt)
173  sept = where(mm EQ 9, cnt)
174  Ithi_jan_1 = {arr:1./float(cnt) * total(reform(Ithi_1.arr[*, *, temporary(jan)],nxt,nyt,cnt), 3), unit:Ithi_1.unit}
175  Ithi_sept_1 = {arr:1./float(cnt) * total(reform(Ithi_1.arr[*, *, temporary(sept)],nxt,nyt,cnt), 3), unit:Ithi_1.unit}
176  undefine, Ithi_1
177;
178  IF std_file2_I NE std_file1_I THEN BEGIN
179     Ithi_2 = read_ncdf(getenv('VAR2_Ithick'), allrecords = allrec, filename = std_file2_I )
180     caldat, time, mm
181     april = where(mm EQ 4, cnt)
182     Ithi_april_2 = {arr:1./float(cnt) * total(reform(Ithi_2.arr[*, *, temporary(april)],nxt,nyt,cnt), 3), unit:Ithi_2.unit}
183     jan = where(mm EQ 1, cnt)
184     sept = where(mm EQ 9, cnt)
185     Ithi_sept_2 = {arr:1./float(cnt) * total(reform(Ithi_2.arr[*, *, temporary(sept)],nxt,nyt,cnt), 3), unit:Ithi_2.unit}
186     Ithi_jan_2 = {arr:1./float(cnt) * total(reform(Ithi_2.arr[*, *, temporary(jan)],nxt,nyt,cnt), 3), unit:Ithi_2.unit}
187     undefine, Ithi_2
188  ENDIF ELSE BEGIN
189     Ithi_april_2 = {arr:-1}
190     Ithi_sept_2 = {arr:-1}
191     Ithi_jan_2 = {arr:-1}
192  ENDELSE
193;
194  Iage_1 = read_ncdf(getenv('VAR1_Iage'), allrecords = allrec, filename = std_file1_I )
195  caldat, time, mm
196  febr = where(mm EQ 2, cnt)
197  Iage_febr_1 = {arr:1./float(cnt) * total(reform(Iage_1.arr[*, *, temporary(febr)],nxt,nyt,cnt), 3), unit:Iage_1.unit}
198  march = where(mm EQ 3, cnt)
199  Iage_march_1 = {arr:1./float(cnt) * total(reform(Iage_1.arr[*, *, temporary(march)],nxt,nyt,cnt), 3), unit:Iage_1.unit}
200  sept = where(mm EQ 9, cnt)
201  Iage_sept_1 = {arr:1./float(cnt) * total(reform(Iage_1.arr[*, *, temporary(sept)],nxt,nyt,cnt), 3), unit:Iage_1.unit}
202  undefine, Iage_1
203;
204  IF std_file2_I NE std_file1_I THEN BEGIN
205     Iage_2 = read_ncdf(getenv('VAR2_Iage'), allrecords = allrec, filename = std_file2_I )
206     caldat, time, mm
207     febr = where(mm EQ 2, cnt)
208     Iage_febr_2 = {arr:1./float(cnt) * total(reform(Iage_2.arr[*, *, temporary(febr)],nxt,nyt,cnt), 3), unit:Iage_2.unit}
209     march = where(mm EQ 3, cnt)
210     Iage_march_2 = {arr:1./float(cnt) * total(reform(Iage_2.arr[*, *, temporary(march)],nxt,nyt,cnt), 3), unit:Iage_2.unit}
211     sept = where(mm EQ 9, cnt)
212     Iage_sept_2 = {arr:1./float(cnt) * total(reform(Iage_2.arr[*, *, temporary(sept)],nxt,nyt,cnt), 3), unit:Iage_2.unit}
213     undefine, Iage_2
214  ENDIF ELSE BEGIN
215     Iage_febr_2 = {arr:-1}
216     Iage_march_2 = {arr:-1}
217     Iage_sept_2 = {arr:-1}
218  ENDELSE
219;
220  Ifra_1 = read_ncdf(getenv('VAR1_Ifrac'), allrecords = allrec, filename = std_file1_I )
221  caldat, time, mm
222  febr = where(mm EQ 2, cnt)
223  Ifra_febr_1 = {arr:1./float(cnt) * total(reform(Ifra_1.arr[*, *, temporary(febr)],nxt,nyt,cnt), 3), unit:Ifra_1.unit}
224  march = where(mm EQ 3, cnt)
225  Ifra_march_1 = {arr:1./float(cnt) * total(reform(Ifra_1.arr[*, *, temporary(march)],nxt,nyt,cnt), 3), unit:Ifra_1.unit}
226  sept = where(mm EQ 9, cnt)
227  Ifra_sept_1 = {arr:1./float(cnt) * total(reform(Ifra_1.arr[*, *, temporary(sept)],nxt,nyt,cnt), 3), unit:Ifra_1.unit}
228  undefine, Ifra_1
229;
230  IF std_file2_I NE std_file1_I THEN BEGIN
231    Ifra_2 = read_ncdf(getenv('VAR2_Ifrac'), allrecords = allrec, filename = std_file2_I )
232    caldat, time, mm
233    febr = where(mm EQ 2, cnt)
234    Ifra_febr_2 = {arr:1./float(cnt) * total(reform(Ifra_2.arr[*, *, temporary(febr)],nxt,nyt,cnt), 3), unit:Ifra_2.unit}
235    march = where(mm EQ 3, cnt)
236    Ifra_march_2 = {arr:1./float(cnt) * total(reform(Ifra_2.arr[*, *, temporary(march)],nxt,nyt,cnt), 3), unit:Ifra_2.unit}
237    sept = where(mm EQ 9, cnt)
238    Ifra_sept_2 = {arr:1./float(cnt) * total(reform(Ifra_2.arr[*, *, temporary(sept)],nxt,nyt,cnt), 3), unit:Ifra_2.unit}
239    undefine, Ifra_2
240  ENDIF ELSE BEGIN
241    Ifra_febr_2 = {arr:-1}
242    Ifra_march_2 = {arr:-1}
243    Ifra_sept_2 = {arr:-1}
244  ENDELSE
245;
246   Isnow_1 = read_ncdf(getenv('VAR1_Isnow'), allrecords = allrec, filename = std_file1_I )
247   caldat, time, mm
248   febr = where(mm EQ 2, cnt)
249   Isnow_febr_1 = {arr:1./float(cnt) * total(reform(Isnow_1.arr[*, *, temporary(febr)],nxt,nyt,cnt), 3), unit:Isnow_1.unit}
250   march = where(mm EQ 3, cnt)
251   Isnow_march_1 = {arr:1./float(cnt) * total(reform(Isnow_1.arr[*, *, temporary(march)],nxt,nyt,cnt), 3), unit:Isnow_1.unit}
252   sept = where(mm EQ 9, cnt)
253   Isnow_sept_1 = {arr:1./float(cnt) * total(reform(Isnow_1.arr[*, *, temporary(sept)],nxt,nyt,cnt), 3), unit:Isnow_1.unit}
254   ;undefine, Isnow_1
255 ;
256   IF std_file2_I NE std_file1_I THEN BEGIN
257     Isnow_2 = read_ncdf(getenv('VAR2_Isnow'), allrecords = allrec, filename = std_file2_I )
258     caldat, time, mm
259     febr = where(mm EQ 2, cnt)
260     Isnow_febr_2 = {arr:1./float(cnt) * total(reform(Isnow_2.arr[*, *, temporary(febr)],nxt,nyt,cnt), 3), unit:Isnow_2.unit}
261     march = where(mm EQ 3, cnt)
262     Isnow_march_2 = {arr:1./float(cnt) * total(reform(Isnow_2.arr[*, *, temporary(march)],nxt,nyt,cnt), 3), unit:Isnow_2.unit}
263     sept = where(mm EQ 9, cnt)
264     Isnow_sept_2 = {arr:1./float(cnt) * total(reform(Isnow_2.arr[*, *, temporary(sept)],nxt,nyt,cnt), 3), unit:Isnow_2.unit}
265   ;  undefine, Isnow_2
266   ENDIF ELSE BEGIN
267     Isnow_febr_2 = {arr:-1}
268     Isnow_march_2 = {arr:-1}
269     Isnow_sept_2 = {arr:-1}
270   ENDELSE
271;
272   Isal_1 = read_ncdf(getenv('VAR1_Isal'), allrecords = allrec, filename = std_file1_I )
273   Ifra_1 = read_ncdf(getenv('VAR1_Ifrac'), allrecords = allrec, filename = std_file1_I )
274   msk = Ifra_1.arr gt 0.15 ; remove 0.15% for observations
275   caldat, time, mm
276   march = where(mm EQ 3, cnt)
277   febr = where(mm EQ 2, cnt)
278   ;SF  Isal_march_1 = {arr:1./float(cnt) * total(reform(Isal_1.arr[*, *, temporary(march)],nxt,nyt,cnt), 3), unit:Isal_1.unit}
279   Isal_1.arr = Isal_1.arr * msk
280   Isal_march_1 = {arr:1./float(cnt) * total(reform(Isal_1.arr[*, *, temporary(march)],nxt,nyt,cnt), 3), unit:Isal_1.unit}
281   Isal_febr_1 = {arr:1./float(cnt) * total(reform(Isal_1.arr[*, *, temporary(febr)],nxt,nyt,cnt), 3), unit:Isal_1.unit}
282   sept = where(mm EQ 9, cnt)
283   Isal_sept_1 = {arr:1./float(cnt) * total(reform(Isal_1.arr[*, *, temporary(sept)],nxt,nyt,cnt), 3), unit:Isal_1.unit}
284   ;undefine, Isal_1
285 ;
286   Isal_2 = read_ncdf(getenv('VAR2_Isal'), allrecords = allrec, filename = std_file2_I )
287   Ifra_2 = read_ncdf(getenv('VAR2_Ifrac'), allrecords = allrec, filename = std_file2_I )
288   msk = Ifra_2.arr gt 0.15 ; remove 0.15% for observations
289   IF std_file2_I NE std_file1_I THEN BEGIN
290     Isal_2 = read_ncdf(getenv('VAR2_Isal'), allrecords = allrec, filename = std_file2_I )
291     Isal_2.arr = Isal_2.arr * msk
292     caldat, time, mm
293     march = where(mm EQ 3, cnt)
294     febr = where(mm EQ 2, cnt)
295     Isal_march_2 = {arr:1./float(cnt) * total(reform(Isal_2.arr[*, *, temporary(march)],nxt,nyt,cnt), 3), unit:Isal_2.unit}
296     Isal_febr_2 = {arr:1./float(cnt) * total(reform(Isal_2.arr[*, *, temporary(febr)],nxt,nyt,cnt), 3), unit:Isal_2.unit}
297     sept = where(mm EQ 9, cnt)
298     Isal_sept_2 = {arr:1./float(cnt) * total(reform(Isal_2.arr[*, *, temporary(sept)],nxt,nyt,cnt), 3), unit:Isal_2.unit}
299   ;  undefine, Isal_2
300   ENDIF ELSE BEGIN
301     Isal_febr_2 = {arr:-1}
302     Isal_march_2 = {arr:-1}
303     Isal_sept_2 = {arr:-1}
304   ENDELSE
305;
306  jpt = 1
307;
308; shorter file names for legends...
309;
310  std_file1_T = file_basename(std_file1_T,'.nc')
311  std_file1_T = (strsplit(std_file1_T,'_grid_T',/extract,/regex))[0]
312  std_file2_T = file_basename(std_file2_T,'.nc')
313  std_file2_T = (strsplit(std_file2_T,'_grid_T',/extract,/regex))[0]
314  std_file1_U = file_basename(std_file1_U,'.nc')
315  std_file1_U = (strsplit(std_file1_U,'_grid_U',/extract,/regex))[0]
316  std_file2_U = file_basename(std_file2_U,'.nc')
317  std_file2_U = (strsplit(std_file2_U,'_grid_U',/extract,/regex))[0]
318  std_file1_V = file_basename(std_file1_V,'.nc')
319  std_file1_V = (strsplit(std_file1_V,'_grid_V',/extract,/regex))[0]
320  std_file2_V = file_basename(std_file2_V,'.nc')
321  std_file2_V = (strsplit(std_file2_V,'_grid_V',/extract,/regex))[0]
322  std_file1_I = file_basename(std_file1_I,'.nc')
323  std_file1_I = (strsplit(std_file1_I,'_icemod',/extract,/regex))[0]
324  std_file2_I = file_basename(std_file2_I,'.nc')
325  std_file2_I = (strsplit(std_file2_I,'_icemod',/extract,/regex))[0]
326
327;#########################################################################
328;######################  STANDARD PLOTS   ################################
329;#########################################################################
330
331  IF keyword_set(doplot) EQ 0 THEN doplot = 0
332
333; fixed color tabled
334  lct, 64
335  cnt = 0
336  htmltxt = ''
337;
338  cnt = cnt+1   &   blabla = 'Erp salinity damping term'
339  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_erp, ERP1, ERP2, _extra = ex
340;
341  cnt = cnt+1   &   blabla = 'Evaporation - Precipitation - Runoff term'
342  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_emp, EMP1, EMP2, _extra = ex
343;
344  cnt = cnt+1   &   blabla = 'Net heat flux'
345  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_qnet, Q1, Q2, QNET, _extra = ex
346;
347  cnt = cnt+1   &   blabla = 'Meridionnal Heat Transport'
348  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_mht, Q1.arr+geo, Q2.arr+geo, masknp, std_file_msksub, _extra = ex
349;
350  cnt = cnt+1   &   blabla = 'Global Barotropic stream Function'
351  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_bsf, U1, U2, _extra = ex
352;
353  cnt = cnt+1   &   blabla = 'mean Temperature diff with New Reynolds'
354  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_sst, T1, T2, TRey, _extra = ex
355;
356  cnt = cnt+1   &   blabla = 'mean Salinity diff with Levitus'
357  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_sss, S1, S2, SLev, _extra = ex
358;
359  cnt = cnt+1   &   blabla = 'Arctic mean Salinity diff with Levitus'
360  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_ArcSal, S1, SLev, _extra = ex       
361;
362  cnt = cnt+1   &   blabla = 'Arctic mean Salinity diff with Levitus and exp2'
363  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_ArcSal, S1, S2, SLev, _extra = ex
364;
365  cnt = cnt+1   &   blabla = 'Arctic mean Salinity diff with Levitus at z=100 meters'
366  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_ArcSal, S1, SLev, /z100, _extra = ex       
367;
368  cnt = cnt+1   &   blabla = 'Arctic mean Salinity diff with Levitus and exp2 at z=100 meters'
369  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_ArcSal, S1, S2, SLev, /z100, _extra = ex
370;
371  cnt = cnt+1   &   blabla = 'mean Temperature diff with Levitus at z=100 meters'
372  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_T100m, T1, T2, Tlev, _extra = ex
373
374  cnt = cnt+1   &   blabla = 'mean Salinity diff with Levitus at z=100 meters'
375  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_S100m, S1, S2, SLev, _extra = ex
376
377  cnt = cnt+1   &   blabla = 'Mixed layer depth'
378  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_mld, MLD1, MLD, _extra = ex
379;
380  cnt = cnt+1   &   blabla = 'Mixed layer depth differences'
381  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_mld, MLD1, MLD2, MLD, _extra = ex
382;
383  cnt = cnt+1   &   blabla = 'Zonal mean Mixed layer depth'
384  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_ZonMld, MLD1, MLD2, MLD, _extra = ex
385
386  cnt = cnt+1   &   blabla = 'Vertical Global mean T & S'
387  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_GlobMeanTS, T1, T2, TLev, S1, S2, SLev, _extra = ex
388;
389  cnt = cnt+1   &   blabla = 'Zonal mean Temperature diff with Levitus: Global'
390  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_zonal_T, T1, T2, TLev, _extra = ex
391;
392  cnt = cnt+1   &   blabla = 'Zonal mean Temperature diff with Levitus: Atlantic'
393  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_zonal_T, T1, T2, TLev, SUBBASIN = 'Atl', _extra = ex
394
395  cnt = cnt+1   &   blabla = 'Zonal mean Temperature diff with Levitus: Indian'
396  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_zonal_T, T1, T2, TLev, SUBBASIN = 'Ind', _extra = ex
397
398  cnt = cnt+1   &   blabla = 'Zonal mean Temperature diff with Levitus: Pacific'
399  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_zonal_T, T1, T2, TLev, SUBBASIN = 'Pac', _extra = ex
400;
401  cnt = cnt+1   &   blabla = 'Zonal mean Salinity diff with Levitus: Global'
402  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_zonal_S, S1, S2, SLev, _extra = ex
403;
404  cnt = cnt+1   &   blabla = 'Zonal mean Salinity diff with Levitus: Atlantic'
405  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_zonal_S, S1, S2, SLev, SUBBASIN = 'Atl', _extra = ex
406;
407  cnt = cnt+1   &   blabla = 'Zonal mean Salinity diff with Levitus: Indian'
408  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_zonal_S, S1, S2, SLev, SUBBASIN = 'Ind', _extra = ex
409;
410  cnt = cnt+1   &   blabla = 'Zonal mean Salinity diff with Levitus: Pacific'
411  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_zonal_S, S1, S2, SLev, SUBBASIN = 'Pac', _extra = ex
412
413  cnt = cnt+1   &   blabla = 'Meridional stream Function: Global (no Med)'
414  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_msf, V1, V2, SUBBASIN = 'GloNoMed', _extra = ex
415
416  cnt = cnt+1   &   blabla = 'Meridional stream Function: Atlantic'
417  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_msf, V1, V2, SUBBASIN = 'Atl', _extra = ex
418 ;
419  cnt = cnt+1   &   blabla = 'Meridional stream Function: Indian'
420  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_msf, V1, V2, SUBBASIN = 'Ind', _extra = ex
421 ;
422  cnt = cnt+1   &   blabla = 'Meridional stream Function: Indo-Pacific'
423  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_msf, V1, V2, SUBBASIN = 'IndoPac', _extra = ex
424;
425  cnt = cnt+1   &   blabla = 'Equatorial Temperature'
426  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_EqT, T1, T2, Tlev, _extra = ex
427;
428  cnt = cnt+1   &   blabla = 'Equatorial Salinity'
429  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_EqS, S1, S2, SLev, _extra = ex
430;
431  cnt = cnt+1   &   blabla = 'Equatorial zonal velocity'
432  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_EqU, U1, U2, _extra = ex
433;
434  cnt = cnt+1   &   blabla = 'Mediterranean salt tongue at depth=700'
435  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_Med_Sspread, S1, S2, SLev, 700, _extra = ex
436;
437  cnt = cnt+1   &   blabla = 'Mediterranean salt tongue at depth=1000'
438  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_Med_Sspread, S1, S2, SLev, 1000, _extra = ex
439;
440  cnt = cnt+1   &   blabla = 'Mediterranean water at lat=40°N'
441  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_Med_Sdepth, S1, S2, SLev, 40, _extra = ex
442;
443  cnt = cnt+1   &   blabla = 'Mediterranean water at lat=38°N'
444  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_Med_Sdepth, S1, S2, SLev, 38, _extra = ex
445;
446  cnt = cnt+1   &   blabla = 'Arctic Ice Thickness: JAN'
447  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceThick, Ithi_jan_1, Ithi_jan_2, /ARC, /JAN, _extra = ex
448;
449  cnt = cnt+1   &   blabla = 'Arctic Ice Thickness: APRIL'
450  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceThick, Ithi_april_1, Ithi_april_2, /ARC, /APRIL, _extra = ex
451
452  cnt = cnt+1   &   blabla = 'Antarctic Ice Thickness: APRIL'
453  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceThick, Ithi_april_1, Ithi_april_2, /ANT, /APRIL, _extra = ex
454;
455  cnt = cnt+1   &   blabla = 'Antarctic Ice Thickness: SEPT'
456  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceThick, Ithi_sept_1, Ithi_sept_2, /ANT, /SEPT, _extra = ex
457;
458  cnt = cnt+1   &   blabla = 'Arctic Ice Age: MARCH'
459  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceAge, Iage_march_1, Iage_march_2, /ARC, /MARCH, _extra = ex
460
461  cnt = cnt+1   &   blabla = 'Arctic Ice Age: SEPT'
462  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceAge, Iage_sept_1, Iage_sept_2, /ARC, /SEPT, _extra = ex
463
464  cnt = cnt+1   &   blabla = 'Antarctic Ice Age: MARCH'
465  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceAge, Iage_febr_1, Iage_febr_2, /ANT, /FEBR, _extra = ex
466;
467  cnt = cnt+1   &   blabla = 'Antarctic Ice Age: SEPT'
468  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceAge, Iage_sept_1, Iage_sept_2, /ANT, /SEPT, _extra = ex
469;
470  cnt = cnt+1   &   blabla = 'Arctic Ice Fraction: MARCH'
471  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceFrac, Ifra_march_1, Ifra_march_2, /ARC, /MARCH, _extra = ex
472
473  cnt = cnt+1   &   blabla = 'Arctic Ice Fraction: SEPT'
474  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceFrac, Ifra_sept_1, Ifra_sept_2, /ARC, /SEPT, _extra = ex
475
476  cnt = cnt+1   &   blabla = 'Antarctic Ice Fraction: MARCH'
477  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceFrac, Ifra_febr_1, Ifra_febr_2, /ANT, /FEBR, _extra = ex
478;
479  cnt = cnt+1   &   blabla = 'Antarctic Ice Fraction: SEPT'
480  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceFrac, Ifra_sept_1, Ifra_sept_2, /ANT, /SEPT, _extra = ex
481;
482  cnt = cnt+1   &   blabla = 'Arctic SNOW Thickness: MARCH'
483  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_SnowThick, Isnow_march_1, Isnow_march_2, /ARC, /MARCH, _extra = ex
484;
485  cnt = cnt+1   &   blabla = 'Arctic SNOW Thickness: SEPT'
486  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_SnowThick, Isnow_sept_1, Isnow_sept_2, /ARC, /SEPT, _extra = ex
487
488  cnt = cnt+1   &   blabla = 'Antarctic SNOW Thickness: MARCH'
489  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_SnowThick, Isnow_febr_1, Isnow_febr_2, /ANT, /FEBR, _extra = ex
490;
491  cnt = cnt+1   &   blabla = 'Antarctic SNOW Thickness: SEPT'
492  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_SnowThick, Isnow_sept_1, Isnow_sept_2, /ANT, /SEPT, _extra = ex
493;
494  cnt = cnt+1   &   blabla = 'Arctic Ice Salinity: MARCH'
495  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceSal, Isal_march_1, Isal_march_2, /ARC, /MARCH, _extra = ex
496;
497  cnt = cnt+1   &   blabla = 'Arctic Ice Salinity: SEPT'
498  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceSal, Isal_sept_1, Isal_sept_2, /ARC, /SEPT, _extra = ex
499
500  cnt = cnt+1   &   blabla = 'Antarctic Ice Salinity: FEBRUARY'
501  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceSal, Isal_febr_1, Isal_febr_2, /ANT, /FEBR, _extra = ex
502;
503  cnt = cnt+1   &   blabla = 'Antarctic Ice Salinity: SEPT'
504  IF doplot EQ cnt OR doplot EQ 0 THEN std_plot_IceSal, Isal_sept_1, Isal_sept_2, /ANT, /SEPT, _extra = ex
505;
506 
507  IF n_elements(htmltxt) GT 1 THEN putfile, psdir+'std_plot_html_body.txt', htmltxt[1:*]
508 
509  return
510END
Note: See TracBrowser for help on using the repository browser.