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

source: trunk/CONFIG/ORCA2_LIM/IDL_scripts/fig_ht_fromQ.pro @ 2151

Last change on this file since 2151 was 2150, checked in by flavoni, 14 years ago

commit idl tools for post-processing, for ORCA2_LIM configuration, see ticket #724

File size: 2.9 KB
Line 
1pro fig_ht_fromQ,  Q1, Q2, sEXP1, sEXP2, start_end, POSTSCRIPT = postscript, MASK_FILENAME = mask_filename, _extra = ex
2 
3  compile_opt idl2, strictarrsubs
4
5@common
6
7  tmask_save = tmask 
8                                ; suppress 1/2 north ligne dans TMASK
9  tmask[jpi/2:jpi-1,jpj-1,0] = 0b ; 0 byte
10
11  Qave1 = moyenne(Q1,'xy')
12  Qave2 = moyenne(Q2,'xy')
13
14  Qnet1 = Q1 - Qave1
15  Qnet2 = Q2 - Qave2
16
17  index=where(gphit eq max(gphit))
18  nx=index[0] mod jpi
19  gphi_save=gphit
20  gphit[0,*]=gphit[nx,*]
21                                ;
22  msk = read_ncdf( 'atlmsk_nomed', filename = mask_filename, _extra = ex)
23 
24                                ; from 2D array to 3D array
25  msk = msk.arr[*]#replicate(1., nzt)
26 
27                                ; x average (zonal mean)
28                                ; *1.E-15 to have PetaWatt
29  Q1x = moyenne(Qnet1*e2t,'x',/integration)*1.E-15
30  Q2x = moyenne(Qnet2*e2t,'x',/integration)*1.E-15
31  Q1x_atl = moyenne(Qnet1*e2t*msk,'x',/integration)*1.E-15
32  Q2x_atl = moyenne(Qnet2*e2t*msk,'x',/integration)*1.E-15
33                                ; northward heat flux transport from antartic 
34  htr1 = total(Q1x, /cumulative)
35  htr2 = total(Q2x, /cumulative)
36  htr1_atl = total(reverse(Q1x_atl), /cumulative)
37  htr1_atl = -reverse(htr1_atl)
38  htr2_atl = total(reverse(Q2x_atl), /cumulative)
39  htr2_atl = -reverse(htr2_atl)
40
41  bad_gphit = where(gphit[0,*] lt -30.)
42  htr1_atl[bad_gphit] = !Values.F_NaN   ; we take from values north till 30° South
43  htr2_atl[bad_gphit] = !Values.F_NaN   ; we take from values north till 30° South
44
45  if KEYWORD_SET(POSTSCRIPT) then begin
46     openps, '004_MHT_'+sEXP1+'-'+sEXP2+'_y'+start_end+ '.ps', /landscape
47  endif
48 
49; update data informations
50  varname = 'MHT'
51  varunit = 'Pw'
52  vargrid = 'T'
53
54  ibce1 = STRTRIM(Qave1, 1)
55  ibce2 = STRTRIM(Qave2, 1)
56
57  title = sEXP1+' (Red) MHT (PetaW) - (Blue) Atlantic MHT (PetaW) / year '+start_end
58  subtitle = sEXP1+' (Qnet='+ibce1+' W/m2) -  (Qnet='+ibce2+' W/m2)'
59
60  plt1d, htr1,'y',min = -2., max = 2.5, TITLE=title, SUBTITLE = subtitle $
61        , SMALL = [2,2,1], YTITLE = 'PW',  XGRIDSTYLE = 2, TICKLEN = 1, YGRIDSTYLE = 2,  _extra = ex   
62  plt1d, htr1_atl,'y', COLOR = 50, /ov1d,  _extra = ex
63
64 if sEXP1 ne sEXP2 then begin
65 
66  title = sEXP1+' - '+sEXP2+' MHT (TeraW) differences / year '+start_end
67  plt1d, (htr1-htr2)*1.e3,'y',min = 0., max = 500., TITLE = title $
68         , SMALL = [2,2,3], TICKLEN = 1, XGRIDSTYLE = 2 $
69         , YTITLE = 'PW', YGRIDSTYLE = 2,   /NOERASE, _extra = ex
70  plt1d, (htr1_atl - htr2_atl),'y', COLOR = 50, /ov1d,  _extra = ex
71 
72 endif
73
74  title = 'Qnet'
75  text = [   title, '<img width="80%" src=/Users/sflod/TOOLS/my_IDL/PS/v32colib_v32colib/ps/004_MHT_'+sEXP1+'-'+sEXP2+'_y'+start_end+ '.png  />  ' ]
76  putfile, '/tmp/prova.txt', text
77
78  if KEYWORD_SET(POSTSCRIPT) then begin
79     closeps
80  endif
81 
82  tmask=tmask_save
83  gphit=gphi_save
84 
85  return
86end
Note: See TracBrowser for help on using the repository browser.