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_ts_ICE_Vol.pro in branches/2013/dev_MERGE_2013/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts – NEMO

source: branches/2013/dev_MERGE_2013/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_ts_ICE_Vol.pro @ 4498

Last change on this file since 4498 was 4498, checked in by flavoni, 10 years ago

fix small improvements in idl plots, see ticket #724

File size: 6.2 KB
Line 
1function read_arr2d, filename, varname, t1, t2
2;; function that read input file and return 2d array with monthly timecounter
3nyear = (t2-t1+1)/12
4arr2d = ncdf_lec(filename, VAR=varname)
5arr2d = arr2d[t1:t2]
6arr2d = reform(arr2d,12,nyear) ; put in 2D array
7arr2d = total(arr2d,2)/nyear ; total over 2th dimension (i.e.years)
8
9return, arr2d
10end
11
12;
13;
14pro std_ts_ICE_Vol, masknp, s_iodir_data,  POSTSCRIPT = postscript, _extra = ex
15
16  compile_opt idl2, strictarrsubs
17 
18@common
19@std_common
20
21; get exp1 info
22  vICE1     = getenv('VAR1_ICE')     &   prefix = getenv('V1ICE_PREF')  &   suffix = getenv('V1ICE_SUFF')
23  v1_Ithick = getenv('VAR1_Ithick')  &   prefix = getenv('V1It_PREF')   &   suffix = getenv('V1It_SUFF')
24; get exp2 info
25  vICE2     = getenv('VAR2_ICE')     &   prefix2 = getenv('V2ICE_PREF')   &   suffix2 = getenv('V2ICE_SUFF')
26  v2_Ithick = getenv('VAR2_Ithick')  &   prefix2 = getenv('V2It_PREF')    &   suffix2 = getenv('V2It_SUFF')
27
28  cdti3 = string(cnt, format = '(i3.3)')
29  print, cdti3 + ') ' + blabla
30  filename = cdti3 + '_ts_ICE_Vol_'+prefix
31  if prefix NE prefix2 then filename = filename + '_'+prefix2
32  if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1
33;
34  d1_d2 = '('+strtrim(date1, 1)+' - '+strtrim(date2, 1)+')'
35;
36  iodir = std_iodir_data
37  ; ICE Area(=Surface) in NORTH Hemisphere
38  domdef, 0, jpi-1, 30, 90, /xindex
39  ICE_N = rseries_ncdf(vICE1, date1, date2, prefix, suffix, FIRSTONLY = 1 - allrec)
40  ICE_thick = rseries_ncdf(v1_Ithick, date1, date2, prefix, suffix, FIRSTONLY = 1 - allrec)
41  ; Volume = Area(=Surface) * Thickness
42  ICE_vol_N = (ICE_N.arr < 1.e10 ) * ( ICE_thick.arr < 1.e10)  ; limited mask value of 1.e20, because 1.e20 * 1.e20 = inf for idl
43  ICE_vol_N = grossemoyenne(ICE_vol_N, 'xy', /integration, mask2d = masknp)
44  ;
45  if jpt mod 12 ne 0 then stop
46  nyr=jpt/12.
47  ICE_vol_N = reform(ICE_vol_N, 12, nyr)
48  ICE_vol_N = total(ICE_vol_N,2)/nyr
49  ICE_vol_N = {arr:ICE_vol_N * 1.e-9, unit : '10^9 Km^3'}
50  ;
51  ;ICE Area(=Surface) in SOUTH Hemisphere
52  domdef, 0, jpi-1, -90, -30, /xindex
53  ICE_S = rseries_ncdf(vICE1, date1, date2, prefix, suffix, FIRSTONLY = 1 - allrec)
54  ICE_thick = rseries_ncdf(v1_Ithick, date1, date2, prefix, suffix, FIRSTONLY = 1 - allrec)
55  ; Volume = Area(=Surface) * Thickness
56  ICE_vol_S = (ICE_S.arr < 1.e10 ) * ( ICE_thick.arr < 1.e10)  ; limited mask value of 1.e20, because 1.e20 * 1.e20 = inf for idl
57  ICE_vol_S = grossemoyenne(ICE_vol_S, 'xy', /integration, mask2d = masknp)
58  if jpt mod 12 ne 0 then stop
59  nyr=jpt/12.
60  ICE_vol_S = reform(ICE_vol_S, 12, nyr)
61  ICE_vol_S = total(ICE_vol_S,2)/nyr
62  ICE_vol_S = {arr:ICE_vol_S * 1.e-9, unit : '10^9 Km^3'}
63  ;
64  title = 'Northern Hemisphere'+'!C'+prefix+' '+d1_d2+'!C'+'Global Annual Mean Ice Volume (BLACK) '
65  jpt=12
66  time=julday(1,15,1900)+30*lindgen(12)
67  pltt, ICE_vol_N, 't', MIN = 0., MAX = 40000., /REMPLI, /PORTRAIT, XGRIDSTYLE = 1, DATE_FORMAT = '%M' $
68        , small = [1, 2, 1], YTITLE = '10^9 Km^3 ', TITLE = title, _extra = ex
69;
70  title ='Southern Hemisphere' +'!C'+prefix+' '+d1_d2+' - '+'!C'+'Global Annual Mean Ice Volume (BLACK)'
71  pltt, ICE_vol_S, 't', MIN = 0., MAX = 11000., /REMPLI, /NOERASE, XGRIDSTYLE = 1 , DATE_FORMAT = '%M' $
72        , small = [1, 2, 2], YTITLE = '10^9 Km^3 ', TITLE = title, _extra = ex
73;
74  htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png  />  ' ]
75  if KEYWORD_SET(postscript) then closeps
76
77  if prefix NE prefix2 then BEGIN
78
79    d1_d2_2 = '('+strtrim(date1_2, 1)+' - '+strtrim(date2_2, 1)+')'
80    tsave = time
81    domdef, 0, jpi-1, 30, 90, /xindex
82    ;ICE Area(=Surface) in NORTH Hemisphere
83    ICE_N2 = rseries_ncdf(vICE2, date1_2, date2_2, prefix2, suffix2, FIRSTONLY = 1 - allrec)
84    ICE_thick2 = rseries_ncdf(v2_Ithick, date1_2, date2_2, prefix2, suffix2, FIRSTONLY = 1 - allrec)
85    ; Volume = Area(=Surface) * Thickness
86    ICE_vol_N2 = (ICE_N2.arr < 1.e10 ) * ( ICE_thick2.arr < 1.e10) ; limited mask value of 1.e20, because 1.e20 * 1.e20 = inf for idl
87    ICE_vol_N2 = grossemoyenne(ICE_vol_N2, 'xy', /integration, mask2d = masknp)
88    if jpt mod 12 ne 0 then stop
89    nyr=jpt/12.
90    ICE_vol_N2 = reform(ICE_vol_N2, 12, nyr)
91    ICE_vol_N2 = total(ICE_vol_N2,2)/nyr
92    ICE_vol_N2 = {arr:ICE_vol_N2 * 1.e-9, unit : '10^3 Km^3'}
93
94    ;ICE Area(=Surface) in SOUTH Hemisphere
95    domdef, 0, jpi-1, -90, -30, /xindex
96    ICE_S2 = rseries_ncdf(vICE2, date1_2, date2_2, prefix2, suffix2, FIRSTONLY = 1 - allrec)
97    ICE_thick2 = rseries_ncdf(v2_Ithick, date1_2, date2_2, prefix2, suffix2, FIRSTONLY = 1 - allrec)
98    ; Volume = Area(=Surface) * Thickness
99    ICE_vol_S2 = (ICE_S2.arr < 1.e10 ) * ( ICE_thick.arr < 1.e10) ; limited mask value of 1.e20, because 1.e20 * 1.e20 = inf for idl
100    ICE_vol_S2 = grossemoyenne(ICE_vol_S2, 'xy', /integration, mask2d = masknp)
101    if jpt mod 12 ne 0 then stop
102    nyr=jpt/12.
103    ICE_vol_S2 = reform(ICE_vol_S2, 12, nyr)
104    ICE_vol_S2 = total(ICE_vol_S2,2)/nyr
105    ICE_vol_S2 = {arr:ICE_vol_S2 * 1.e-9, unit : '10^3 Km^3'}
106
107   ; time = tsave   &   IF n_elements(time) NE jpt THEN stop
108
109    if KEYWORD_SET(postscript) then openps, filename+'_2.ps', portrait = 1
110
111    title = 'Northern Hemisphere'+'!C'+prefix+' (BLACK) - '+prefix2+' (RED) '+d1_d2_2 +'!C'+'Global Annual Mean Ice Volume (BLACK) '
112    jpt=12
113    time=julday(1,15,1900)+30*lindgen(12)
114    pltt, ICE_vol_N, 't', MIN = 0., MAX = 40000., /REMPLI, /PORTRAIT, XGRIDSTYLE = 1, window = 2, DATE_FORMAT = '%M' $
115          , small = [1, 2, 1], YTITLE = '10^9 Km^3 ', TITLE = title, _extra = ex
116    pltt, ICE_vol_N2 , 't', /REMPLI, /PORTRAIT $ ; linee tratteggiate LINESTYLE=2  $
117        , /ov1d, COLOR = 250, small = [1, 2, 1], YTITLE = '10^9 Km^3 ', TITLE = title, _extra = ex
118    ;
119    title = 'Southern Hemisphere'+'!C'+prefix+' (BLACK) - '+prefix2+' (RED) '+d1_d2_2+'!C'+'Global Annual Mean Ice Volume'
120    pltt, ICE_vol_S, 't', MIN = 0., MAX = 11000., /REMPLI, /NOERASE, XGRIDSTYLE = 1, DATE_FORMAT = '%M' $
121          , small = [1, 2, 2], YTITLE = '10^9 Km^3 ', TITLE = title, _extra = ex   
122    pltt, ICE_vol_S2, 't',  /REMPLI, /NOERASE $
123          , /ov1d, COLOR = 250, small = [1, 2, 2], YTITLE = '10^9 Km^3 ', TITLE = title, _extra = ex   
124
125    htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'_2.png  />  ' ]
126    if KEYWORD_SET(postscript) then closeps
127
128  endif
129
130  domdef
131 
132
133  return
134end
Note: See TracBrowser for help on using the repository browser.