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.
ts_mean_V.pro in trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts – NEMO

source: trunk/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/ts_mean_V.pro @ 2537

Last change on this file since 2537 was 2537, checked in by flavoni, 13 years ago

update IDL scripts, see ticket #724

File size: 4.8 KB
Line 
1pro ts_mean_V, sEXP1, sEXP2, year1, year2, s_iodir_data, POSTSCRIPT = postscript, _extra = ex
2
3 
4  compile_opt idl2, strictarrsubs
5 
6  @common
7 
8 @initorca2
9 
10
11 if KEYWORD_SET(POSTSCRIPT) then begin
12    openps, sEXP1+'_V_mean.ps', portrait = 1
13 endif
14 
15; inizialization of vectors (for experience 1 and 2)
16 ts_mAMOC45 = 0.
17 ts_mAABW70 = 0.
18 ts_mAABC50 = 0.
19 ts_mAMOC45_2 = 0.
20 ts_mAABW70_2 = 0.
21 ts_mAABC50_2 = 0.
22
23 ts_Time = 0.
24 
25 for year=year1,year2 do begin
26   
27    date1 = year * 10000L + 101
28    date2 = year * 10000L + 1231
29    filename = getname(s_iodir_data,sEXP1,'1Y','grid_V',date1)
30    filename2 = getname(s_iodir_data,sEXP2,'1Y','grid_V',date1)
31   
32    if filename eq '' then stop
33   
34    domdef, 0, jpk-1,/zindex
35
36    V1 = read_ncdf('voce_eff',date1 ,date2 , filename = filename, /nostruct)
37    V2 = read_ncdf('voce_eff',date1 ,date2 , filename = filename2, /nostruct)
38   
39    msf_tot = msf(V1, indexboxzoom = ind)
40    msf2_tot = msf(V2, indexboxzoom = ind)
41   
42    yaxis = gphit[ind[0], ind[2]:ind[3]]
43 
44; computation of max Atlatic Meridional Overturninc Circulation at 40°N and 50°N
45;;  see plot msf global
46    indy = where(yaxis gt 40 and yaxis le 50)
47    domdef, 0, 3500
48   
49    mAMOC45 = max(msf_tot.arr[indy, firstzw:lastzw],/NaN)
50    mAMOC45_2 = max(msf2_tot.arr[indy, firstzw:lastzw],/NaN)
51
52; computation of max atlantic Antarctic Bottom Water between 80°S and 65°S
53;; see plot msf global
54    indy = where(yaxis gt -80 and yaxis le -65)
55    domdef, 300, 3500
56   
57    mAABW70 = min(msf_tot.arr[indy, firstzw:lastzw],/NaN)
58    mAABW70_2 = min(msf2_tot.arr[indy, firstzw:lastzw],/NaN)
59
60;  computation of max Antarctic Abyssal Bottom Cell between 65°S and 30°N ,
61;; see plot msf global
62    indy = where(yaxis gt -65 and yaxis le 30)
63    domdef, 2500, 5000
64   
65    mAABC50 = min(msf_tot.arr[indy, firstzw:lastzw],/NaN)
66    mAABC50_2 = min(msf2_tot.arr[indy, firstzw:lastzw],/NaN)
67
68; creation of Time Series
69; for EXPERIENCE 1
70    ts_mAMOC45 = [ ts_mAMOC45, mAMOC45 ]
71    ts_mAABW70 = [ ts_mAABW70, mAABW70 ]
72    ts_mAABC50 = [ ts_mAABC50, mAABC50 ]
73
74; for EXPERIENCE 2
75    ts_mAMOC45_2 = [ ts_mAMOC45_2, mAMOC45_2 ]
76    ts_mAABW70_2 = [ ts_mAABW70_2, mAABW70_2 ]
77    ts_mAABC50_2 = [ ts_mAABC50_2, mAABC50_2 ]
78   
79    ts_Time = [ ts_Time, Time]  ; Time = date
80   
81 endfor
82
83 ts_mAMOC45 = ts_mAMOC45[1:*]   ; remove first record of 0
84 ts_mAABW70 = ts_mAABW70[1:*]   ; remove first record of 0
85 ts_mAABC50 = ts_mAABC50[1:*]   ; remove first record of 0
86 
87 ts_mAMOC45_2 = ts_mAMOC45_2[1:*]   ; remove first record of 0
88 ts_mAABW70_2 = ts_mAABW70_2[1:*]   ; remove first record of 0
89 ts_mAABC50_2 = ts_mAABC50_2[1:*]   ; remove first record of 0
90
91 Time = ts_Time[1:*]            ; remove first record of 0
92 
93 jpt = n_elements(Time)
94 
95 title = sEXP1+' Max Atlantic MOC between 40N and 50N --- year '+strtrim(year1,1)+' - '+strtrim(year2,1)
96 pltt, ts_mAMOC45,'t', 0., 30., year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI $
97      ,  small = [1,2,1],  TITLE = title, YTITLE='Sv', FORMAT = '(I3)', /PORTRAIT, _extra = ex
98 
99 if sEXP2 ne sEXP1 then begin
100    title = sEXP1+' - '+sEXP2+' Max Atlantic MOC between 40N and 50N --- year '+strtrim(year1,1)+' - '+strtrim(year2,1)
101    pltt, ts_mAMOC45 - ts_mAMOC45_2,'t', -9., 9., year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI, /NOERASE $
102          ,  COLOR = 250, small = [1,2,2],  TITLE = title, YTITLE='Sv', FORMAT = '(I3)', /PORTRAIT, _extra = ex
103 endif
104 
105 title = sEXP1+' Max AntArctic Bottom Water between 80S and 65S --- year '+strtrim(year1,1)+' - '+strtrim(year2,1)
106 pltt,-ts_mAABW70,'t', 0., 20., year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI $
107      , small = [1,2,1],  TITLE = title, YTITLE='Sv', FORMAT = '(I3)', /PORTRAIT, _extra = ex
108 
109 if sEXP2 ne sEXP1 then begin
110    title = sEXP1+' - '+sEXP2+' Max AntArctic Bottom Water between 80S and 65S --- year '+strtrim(year1,1)+' - '+strtrim(year2,1)
111    pltt,-ts_mAABW70 + ts_mAABW70_2 ,'t', -5., 5., year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI, /NOERASE $
112         ,  COLOR = 250, small = [1,2,2],  TITLE = title, YTITLE='Sv', FORMAT = '(I3)', /PORTRAIT, _extra = ex
113 endif
114 
115 title = sEXP1+' Max AntArctic Bottom Cell between 65S and 30N --- year '+strtrim(year1,1)+' - '+strtrim(year2,1)
116 pltt,-ts_mAABC50,'t', 5., 30., year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI $
117      ,  small = [1,2,1],  TITLE = title, YTITLE='Sv', FORMAT = '(I3)', /PORTRAIT, _extra = ex
118
119 if sEXP2 ne sEXP1 then begin
120
121    title = sEXP1+' - '+sEXP2+' Max AntArctic Bottom Cell between 65S and 30N --- year '+strtrim(year1,1)+' - '+strtrim(year2,1)
122    pltt,-ts_mAABC50 + ts_mAABC50_2,'t', -5., 5., year1 * 10000L + 101, year2 * 10000L + 1231 , /REMPLI,/NOERASE  $
123         ,  COLOR = 250, small = [1,2,2],  TITLE = title, YTITLE='Sv', FORMAT = '(I3)', /PORTRAIT, _extra = ex
124 endif
125
126 if KEYWORD_SET(POSTSCRIPT) then begin
127    closeps
128 endif
129 
130 
131 return
132end
Note: See TracBrowser for help on using the repository browser.