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.pro in branches/2012/dev_v3_4_STABLE_2012/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts – NEMO

source: branches/2012/dev_v3_4_STABLE_2012/NEMOGCM/CONFIG/ORCA2_LIM/IDL_scripts/std_ts_ICE.pro @ 3889

Last change on this file since 3889 was 3889, checked in by flavoni, 11 years ago

small modifications for IDL_scripts

File size: 9.0 KB
Line 
1pro std_ts_ICE, masknp, s_iodir_data,  POSTSCRIPT = postscript, _extra = ex
2
3  compile_opt idl2, strictarrsubs
4 
5@common
6@std_common
7
8; get exp1 info
9  vICE1 = getenv('VAR1_ICE')   &   prefix = getenv('V1ICE_PREF')    &   suffix = getenv('V1ICE_SUFF')
10; get exp2 info
11  vICE2 = getenv('VAR2_ICE')   &   prefix2 = getenv('V2ICE_PREF')   &   suffix2 = getenv('V2ICE_SUFF')
12; get ice climatology info
13  std_file_ice =  isafile(getenv('FILE_ICE'), title = 'ICE Extent Climatology', iodir = std_iodir_climato)
14;
15  time_ice = ncdf_lec( std_file_ice, VAR='time' )
16  time_ice = (time_ice - FLOOR(time_ice) ) * 12
17  time_ice = round(time_ice) ; round to nearest integer
18  t1 = where(time_ice eq 0)
19  t1 = t1[0] ;  jannuary
20  t2 = where(time_ice eq 11, count)
21  t2 = t2[count-1] ; last day of december
22  nyear = (t2-t1+1)/12
23  vICE_ext_NH = ncdf_lec(std_file_ice, VAR=getenv('VAR_ICE_EXT_NH') )
24  vICE_ext_NH = vICE_ext_NH[t1:t2]
25  vICE_ext_NH = reform(vICE_ext_NH,12,nyear); put in 2D array
26  vICE_ext_NH = total(vICE_ext_NH,2)/nyear ;  total over 2th dimension (i.e.years)
27;
28  vICE_ext_SH = ncdf_lec(std_file_ice, VAR=getenv('VAR_ICE_EXT_SH') )
29  vICE_ext_SH = vICE_ext_SH[t1:t2]
30  vICE_ext_SH = reform(vICE_ext_SH,12,nyear); put in 2D array
31  vICE_ext_SH = total(vICE_ext_SH,2)/nyear ; total over 2th dimension (i.e.years)
32;
33  vICE_area_NH = ncdf_lec(std_file_ice, VAR=getenv('VAR_ICE_area_NH') )
34  vICE_area_NH = vICE_area_NH[t1:t2]
35  vICE_area_NH = reform(vICE_area_NH,12,nyear); put in 2D array
36  vICE_area_NH = total(vICE_area_NH,2)/nyear ;  total over 2th dimension (i.e.years)
37;
38  vICE_area_SH = ncdf_lec(std_file_ice, VAR=getenv('VAR_ICE_area_SH') )
39  vICE_area_SH = vICE_area_SH[t1:t2]
40  vICE_area_SH = reform(vICE_area_SH,12,nyear); put in 2D array
41  vICE_area_SH = total(vICE_area_SH,2)/nyear ; total over 2th dimension (i.e.years)
42
43  cdti3 = string(cnt, format = '(i3.3)')
44  print, cdti3 + ') ' + blabla
45  filename = cdti3 + '_ts_ICE_'+prefix
46  if prefix NE prefix2 then filename = filename + '_'+prefix2
47  if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1
48;
49  d1_d2 = '('+strtrim(date1, 1)+' - '+strtrim(date2, 1)+')'
50;
51  iodir = std_iodir_data
52  ; ICE Extent in NORTH Hemisphere
53  domdef, 0, jpi-1, 30, 90, /xindex
54  ICE_N = rseries_ncdf(vICE1, date1, date2, prefix, suffix, FIRSTONLY = 1 - allrec)
55  ICE_N = grossemoyenne(ICE_N.arr, 'xy', /integration, mask2d = masknp)
56  if jpt mod 12 ne 0 then stop
57  nyr=jpt/12.
58  ice_N = reform(ice_n, 12,nyr)
59  ice_n = total(ice_n,2)/nyr
60  ICE_N = {arr:ICE_N * 1.e-12, unit : '10^12 m^2'}
61  ; ICE EXTENT minus 15% in NORTH Hemisphere
62  ICE_N_15 = rseries_ncdf(vICE1, date1, date2, prefix, suffix, FIRSTONLY = 1 - allrec)
63  msk = ICE_N_15.arr gt 0.15 ; remove 0.15% for observations
64  ICE_N_15 = grossemoyenne( msk, 'xy', /integration, mask2d = masknp)
65  if jpt mod 12 ne 0 then stop
66  nyr=jpt/12.
67  ice_N_15 = reform(ice_n_15, 12,nyr)
68  ice_n_15 = total(ice_n_15,2)/nyr
69  ICE_N_15 = {arr:ICE_N_15 * 1.e-12, unit : '10^12 m^2'}
70  ;
71  ;ICE Extent in SOUTH Hemisphere
72  domdef, 0, jpi-1, -90, -30, /xindex
73  ICE_S = rseries_ncdf(vICE1, date1, date2, prefix, suffix, FIRSTONLY = 1 - allrec)
74  ICE_S = grossemoyenne(ICE_S.arr, 'xy', /integration, mask2d = masknp)
75  if jpt mod 12 ne 0 then stop
76  nyr=jpt/12.
77  ice_S = reform(ice_S, 12,nyr)
78  ice_S = total(ice_S,2)/nyr
79  ICE_S = {arr:ICE_S * 1.e-12, unit : '10^12 m^2'}
80  ; ICE EXTENT minus 15% in SOUTH Hemisphere
81  ICE_S_15 = rseries_ncdf(vICE1, date1, date2, prefix, suffix, FIRSTONLY = 1 - allrec)
82  msk = ICE_S_15.arr gt 0.15 ; remove 0.15% for observations
83  ICE_S_15 = grossemoyenne(msk, 'xy', /integration, mask2d = masknp)
84  if jpt mod 12 ne 0 then stop
85  nyr=jpt/12.
86  ice_S_15 = reform(ice_S_15, 12,nyr)
87  ice_S_15 = total(ice_S_15,2)/nyr
88  ICE_S_15 = {arr:ICE_S_15 * 1.e-12, unit : '10^12 m^2'}
89  ;
90  title = prefix+' '+d1_d2+'!C'+'Global Annual Mean Ice Area (North. Hemisp.) (Black SOLID simulation)'+'!C'+ ' and Extend minus 15% (Blue SOLID simulation)'+'!C'+'Observation (dashed)'
91  jpt=12
92  time=julday(1,15,1900)+30*lindgen(12)
93  pltt, ICE_N, 't', 0., 15., 19000101, 19001231, /REMPLI, /PORTRAIT,MIN = 4., MAX = 16. $
94        , small = [1, 2, 1], YTITLE = '10^12 m^2 ', TITLE = title, _extra = ex
95  pltt, ICE_N_15, 't', 0., 15., 19000101, 19001231, /REMPLI, /PORTRAIT $ ; dashed lines is LINESTYLE=2  $
96        , /ov1d, COLOR = 100, small = [1, 2, 1], YTITLE = '10^12 m^2 ', TITLE = title, _extra = ex
97  pltt,  vICE_area_NH, 't', 0., 15., 19000101, 19001231, /REMPLI, /PORTRAIT, LINESTYLE=2 $
98         , /ov1d, small = [1, 2, 1], YTITLE = '10^12 m^2 ', TITLE = title, _extra = ex
99  pltt,  vICE_ext_NH, 't', 0., 15., 19000101, 19001231, /REMPLI, /PORTRAIT, LINESTYLE=2 $
100        , /ov1d, COLOR = 100, small = [1, 2, 1], YTITLE = '10^12 m^2 ', TITLE = title, _extra = ex
101;return
102  title = prefix+' '+d1_d2+' - '+'!C'+'Global Annual Mean Ice Area (South. Hemisp.) (Black SOLID simulation)'+'!C'+ ' and Extend minus 15% (Blue SOLID simulation)'+'!C'+'Observation (dashed)'
103  pltt, ICE_S, 't', 0., 15.,19000101 ,19001231 , /REMPLI, /NOERASE , MIN = 0., MAX = 20. $
104        , small = [1, 2, 2], YTITLE = '10^12 m^2 ', TITLE = title, _extra = ex
105  pltt, ICE_S_15, 't', 0., 15., 19000101, 19001231, /REMPLI, /PORTRAIT $
106        , /ov1d, COLOR = 100, small = [1, 2, 1], YTITLE = '10^12 m^2 ', TITLE = title, _extra = ex
107  pltt,  vICE_area_SH, 't', 0., 15., 19000101, 19001231, /REMPLI, /PORTRAIT, LINESTYLE=2 $
108         , /ov1d, small = [1, 2, 1], YTITLE = '10^12 m^2 ', TITLE = title, _extra = ex
109  pltt,  vICE_ext_SH, 't', 0., 15., 19000101, 19001231, /REMPLI, /PORTRAIT, LINESTYLE=2 $
110        , /ov1d, COLOR = 100, small = [1, 2, 1], YTITLE = '10^12 m^2 ', TITLE = title, _extra = ex
111;return
112  htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png  />  ' ]
113  if KEYWORD_SET(postscript) then closeps
114
115  if prefix NE prefix2 then BEGIN
116
117    d1_d2_2 = '('+strtrim(date1_2, 1)+' - '+strtrim(date2_2, 1)+')'
118    tsave = time
119    domdef, 0, jpi-1, 30, 90, /xindex
120    ;ICE Extent in NORTH Hemisphere
121    ICE_N2 = rseries_ncdf(vICE2, date1_2, date2_2, prefix2, suffix2, FIRSTONLY = 1 - allrec)
122    ICE_N2 = grossemoyenne(ICE_N2.arr, 'xy', /integration, mask2d = masknp)
123    if jpt mod 12 ne 0 then stop
124    nyr=jpt/12.
125    ICE_N2 = reform(ICE_N2, 12,nyr)
126    ICE_N2 = total(ICE_N2,2)/nyr
127    ICE_N2 = {arr:ICE_N2 * 1.e-12, unit : '10^12 m^2'}
128    ;ICE Extent minus 15% in NORTH Hemisphere
129    ICE_N2_15 = rseries_ncdf(vICE2, date1_2, date2_2, prefix_2, suffix_2, FIRSTONLY = 1 - allrec)
130    msk = ICE_N2_15.arr gt 0.15  ; remove 0.15% for observations
131    ICE_N2_15 = grossemoyenne( msk, 'xy', /integration, mask2d = masknp)
132    if jpt mod 12 ne 0 then stop
133    nyr=jpt/12.
134    ICE_N2_15 = reform(ICE_N2_15, 12,nyr)
135    ICE_N2_15 = total(ICE_N2_15,2)/nyr
136    ICE_N2_15 = {arr:ICE_N2_15 * 1.e-12, unit : '10^12 m^2'}
137    ;ICE Extent in SOUTH Hemisphere
138    domdef, 0, jpi-1, -90, -30, /xindex
139    ICE_S2 = rseries_ncdf(vICE2, date1_2, date2_2, prefix_2, suffix_2, FIRSTONLY = 1 - allrec)
140    ICE_S2 = grossemoyenne(ICE_S2.arr, 'xy', /integration, mask2d = masknp)
141    if jpt mod 12 ne 0 then stop
142    nyr=jpt/12.
143    ICE_S2 = reform(ICE_S2, 12,nyr)
144    ICE_S2 = total(ICE_S2,2)/nyr
145    ICE_S2 = {arr:ICE_S2 * 1.e-12, unit : '10^12 m^2'}
146    ;ICE Extent minus 15% in SOUTH Hemisphere
147    ICE_S2_15 = rseries_ncdf(vICE2, date1_2, date2_2, prefix_2, suffix_2, FIRSTONLY = 1 - allrec)
148    msk = ICE_S2_15.arr gt 0.15  ; remove 0.15% for observations
149    ICE_S2_15 = grossemoyenne(msk, 'xy', /integration, mask2d = masknp)
150    if jpt mod 12 ne 0 then stop
151    nyr=jpt/12.
152    ice_S2_15 = reform(ICE_S2_15, 12,nyr)
153    ice_S2_15 = total(ICE_S2_15,2)/nyr
154    ICE_S2_15 = {arr:ICE_S2_15 * 1.e-12, unit : '10^12 m^2'}
155  ;
156    time = tsave   &   IF n_elements(time) NE jpt THEN stop
157
158    if KEYWORD_SET(postscript) then openps, filename+'.ps', portrait = 1
159
160    title = prefix+' '+d1_d2+' - '+prefix2+' '+d1_d2_2+'!C'+'Global Annual Mean Ice Area (North. Hemisp.) (Red SOLID simulation)  and Extend minus 15% (Blue SOLID simulation)'
161    pltt, ICE_N.arr - ICE_N2.arr, 't', -2., 2., date1, date2, /REMPLI, /PORTRAIT, window = 2 $
162          , COLOR = 250, small = [1, 2, 1], YTITLE = '10^12 m^2 ', TITLE = title, _extra = ex
163    pltt, ICE_N_15.arr -  ICE_N2_15.arr , 't', 0., 15., 19000101, 19001231, /REMPLI, /PORTRAIT $ ; linee tratteggiate LINESTYLE=2  $
164      , /ov1d, COLOR = 100, small = [1, 2, 1], YTITLE = '10^12 m^2 ', TITLE = title, _extra = ex
165   
166    title = prefix+' '+d1_d2+' - '+prefix2+' '+d1_d2_2+'!C'+'Global Annual Mean Ice Area (South. Hemisp.) (Red SOLID simulation)  and Extend minus 15% (Blue SOLID simulation)'
167    pltt, ICE_S.arr - ICE_S2.arr, 't', -2., 2., date1, date2, /REMPLI, /NOERASE $
168          , COLOR = 250, small = [1, 2, 2], YTITLE = '10^12 m^2 ', TITLE = title, _extra = ex
169    pltt, ICE_S_15.arr -  ICE_S2_15.arr , 't', 0., 15., 19000101, 19001231, /REMPLI, /PORTRAIT $ ; linee tratteggiate LINESTYLE=2  $
170      , /ov1d, COLOR = 100, small = [1, 2, 1], YTITLE = '10^12 m^2 ', TITLE = title, _extra = ex
171   
172
173    htmltxt = [ htmltxt, '<hr>'+blabla, '<br><img width="80%" src='+filename+'.png  />  ' ]
174    if KEYWORD_SET(postscript) then closeps
175
176  endif
177
178  domdef
179 
180
181  return
182end
Note: See TracBrowser for help on using the repository browser.