1 | pro model_levels, plotlev |
---|
2 | ;; first is one (as in gw.def) |
---|
3 | |
---|
4 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
---|
5 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
---|
6 | file = './zefolder/' |
---|
7 | file = file + 'wrfout_d01_2024-03-21_00:00:00' |
---|
8 | |
---|
9 | file = './wrfout_d01_9999-09-09_09:00:00' |
---|
10 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
---|
11 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
---|
12 | |
---|
13 | ;; |
---|
14 | ;; ini |
---|
15 | ;; |
---|
16 | ;if (n_elements(plotlev) eq 0) then plotlev=7 |
---|
17 | |
---|
18 | ;set_plot, 'ps' |
---|
19 | ;device, filename='model_levels.ps' |
---|
20 | |
---|
21 | ; |
---|
22 | ; constantes |
---|
23 | ; |
---|
24 | grav = 3.72 |
---|
25 | |
---|
26 | ; |
---|
27 | ; retrieve model geopotential |
---|
28 | ; |
---|
29 | openr,unit,'heights.dat',/get_lun,error=err |
---|
30 | ;IF (err ne 0) THEN BEGIN |
---|
31 | getcdf, $ |
---|
32 | file=file, $ |
---|
33 | charvar='PHTOT', $ |
---|
34 | invar=geop |
---|
35 | getcdf, $ |
---|
36 | file=file, $ |
---|
37 | charvar='HGT', $ |
---|
38 | invar=hgt |
---|
39 | ; save, geop, filename='heights.dat' |
---|
40 | ;ENDIF ELSE BEGIN |
---|
41 | ; restore, filename='heights.dat' |
---|
42 | ;ENDELSE |
---|
43 | |
---|
44 | ; |
---|
45 | ; size |
---|
46 | ; |
---|
47 | s = size(geop) |
---|
48 | nx = s[1] ;& print, nx |
---|
49 | ny = s[2] ;& print, ny |
---|
50 | nz = s[3] ;& print, nz |
---|
51 | nt = s[4] ;& print, nt |
---|
52 | |
---|
53 | if (n_elements(plotlev) eq 0) then plotlev=nz-1 |
---|
54 | |
---|
55 | for lev = 1, nz-1 do begin |
---|
56 | |
---|
57 | print, '*************************************************************************' |
---|
58 | print, 'model level ', lev |
---|
59 | |
---|
60 | ; |
---|
61 | ; heights of model levels |
---|
62 | ; |
---|
63 | ;height = (geop(*,*,lev-1,*) - geop(*,*,0.,*)) / grav |
---|
64 | height = fltarr(nx,ny,nt) |
---|
65 | for i=0,nt-1 do height(*,*,i) = geop(*,*,lev-1,i) / grav - hgt(*,*) |
---|
66 | |
---|
67 | ; |
---|
68 | ; spatial mean (temporal variations) |
---|
69 | ; |
---|
70 | yes = TOTAL(TOTAL(height,1),1) / float(nx) / float(ny) |
---|
71 | print, 'spat. mean (temp. var.) ', mean(yes), max(yes), min(yes);, max(yes) - min(yes) |
---|
72 | |
---|
73 | ; |
---|
74 | ; temporal mean (spatial variations) |
---|
75 | ; |
---|
76 | yet = TOTAL(height,3) / float(nt) |
---|
77 | print, 'temp. mean (spat. var.) ', mean(yet), max(yet), min(yet);, max(yet) - min(yet) |
---|
78 | |
---|
79 | ; |
---|
80 | ; complete mean |
---|
81 | ; |
---|
82 | ye = TOTAL(TOTAL(TOTAL(height,1),1),1) / float(nx) / float(ny) / float(nt) |
---|
83 | print, '******* mean ', ye |
---|
84 | |
---|
85 | if (lev eq plotlev) then begin |
---|
86 | !p.multi=[0,2,1] |
---|
87 | contour, yet, /cell_fill, nlevels=30, title=string(min(yet))+string(max(yet)) |
---|
88 | plot, yes, yrange=[min(yes),max(yes)] |
---|
89 | stop |
---|
90 | endif |
---|
91 | |
---|
92 | endfor |
---|
93 | |
---|
94 | ;device, /close |
---|
95 | end |
---|