[96] | 1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
---|
| 2 | OPENR, 22, 'input_coord' & READF, 22, lonu & READF, 22, latu & READF, 22, lsu & READF, 22, lctu & CLOSE, 22 |
---|
| 3 | OPENR, 23, 'input_more' & READF, 23, hgtu, tsurfu & CLOSE, 23 |
---|
| 4 | domain='d01' & filesWRF = FindFile('wrfout_'+domain+'_????-??-??_??:??:??') & nf=n_elements(filesWRF) |
---|
| 5 | id=ncdf_open(filesWRF(0)) |
---|
| 6 | NCDF_DIMINQ, id, NCDF_DIMID(id, 'west_east' ), toto, nx & NCDF_DIMINQ, id, NCDF_DIMID(id, 'south_north' ), toto, ny |
---|
| 7 | NCDF_DIMINQ, id, NCDF_DIMID(id, 'bottom_top' ), toto, nz & NCDF_DIMINQ, id, NCDF_DIMID(id, 'Time' ), toto, nt |
---|
| 8 | NCDF_CLOSE, id |
---|
| 9 | id=ncdf_open(filesWRF(nf-1)) ;; for interrupted runs |
---|
| 10 | NCDF_DIMINQ, id, NCDF_DIMID(id, 'Time' ), toto, ntlast |
---|
| 11 | NCDF_CLOSE, id |
---|
| 12 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
---|
| 13 | yeye = 0 & nttot = (nf-1)*nt + ntlast & localtime = lctu + history_interval_s*findgen(nttot)/3700. |
---|
| 14 | std_tprime = fltarr(nz,nttot) |
---|
| 15 | field = fltarr(nz,nttot) |
---|
| 16 | anomalt = 1. |
---|
| 17 | for loop = 0, nf-1 do begin |
---|
| 18 | timetime = SYSTIME(1) |
---|
| 19 | print, loop |
---|
| 20 | if (loop ne nf-1) then nloop2=nt else nloop2=ntlast |
---|
| 21 | for loop2 = 0, nloop2-1 do begin |
---|
| 22 | !QUIET=1 |
---|
| 23 | |
---|
| 24 | ;;;; TEMPPOT |
---|
| 25 | ;tprime = getget(filesWRF(loop), 'T', anomaly=anomalt, count=[0,0,0,1], offset=[0,0,0,loop2]) ;; t' = t - <t> |
---|
| 26 | ;;;; TEMP (K) |
---|
| 27 | tempk = reform ( ( t0 + getget(filesWRF(loop), 'T', count=[0,0,0,1], offset=[0,0,0,loop2]) ) * ( getget(filesWRF(loop), 'PTOT', count=[0,0,0,1], offset=[0,0,0,loop2]) / p0 )^r_cp ) |
---|
| 28 | meanmean = reform(TOTAL(TOTAL(tempk,1),1) / float(nx) / float(ny)) |
---|
| 29 | for i=0,n_elements(tempk(*,0,0,0))-1 do for j=0,n_elements(tempk(0,*,0,0))-1 do tempk(i,j,*) = tempk(i,j,*) - meanmean |
---|
| 30 | tprime = TEMPORARY(tempk)^2 |
---|
| 31 | |
---|
| 32 | std_tprime(*, yeye) = sqrt ( reform(TOTAL(TOTAL(TEMPORARY(tprime),1),1) / float(nx) / float(ny)) ) |
---|
| 33 | ;print, std_tprime(*, yeye) |
---|
| 34 | ;print, yeye |
---|
| 35 | |
---|
| 36 | !QUIET=0 |
---|
| 37 | yeye = TEMPORARY(yeye) + 1 |
---|
| 38 | endfor |
---|
| 39 | endfor |
---|
| 40 | ;save, std_tprime, localtime, filename='addturb.dat' ;; pour l'instant ecrase systematiquement |
---|
| 41 | ;stop |
---|
| 42 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
---|
| 43 | |
---|
| 44 | |
---|
| 45 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
---|
| 46 | zefield = transpose(std_tprime) |
---|
| 47 | zex = localtime |
---|
| 48 | zey = h |
---|
| 49 | set_name = 'std_tprime.ps' |
---|
| 50 | set_title = "Temperature standard deviation (K)" ;"Maximum updraft speed (m.s!U-1!N)" |
---|
| 51 | set_titlex = 'Local Time (h)' |
---|
| 52 | set_titley = 'Altitude above surface (km)' |
---|
| 53 | set_subtitle = '' |
---|
| 54 | set_xrange = [8.,18.] |
---|
| 55 | set_yrange = [0.,7.] |
---|
| 56 | set_tickx = 1. |
---|
| 57 | set_ticky = 1. |
---|
| 58 | minval = 0. |
---|
| 59 | maxval = 2. ;15.;14.;13. |
---|
| 60 | nlev = 10 ;(maxval-minval)*10. |
---|
| 61 | pal = 22 |
---|
| 62 | rrr = 'no' |
---|
| 63 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
---|
| 64 | if (saveps eq 'true') then PS_Start, FILENAME=set_name |
---|
| 65 | !P.Charsize = 1.2 |
---|
| 66 | ;; 0. levels |
---|
| 67 | lev = minval + (maxval-minval)*findgen(nlev+1)/float(nlev) & if (minval ne 0.) then lev = lev[where(lev ne 0.)] |
---|
| 68 | ;;; 1. background |
---|
| 69 | loadct, 0 & contour, /NODATA, zefield, zex, zey, xtitle=set_titlex, xrange=set_xrange, xtickinterval=set_tickx, ytitle=set_titley, yrange=set_yrange, ytickinterval=set_ticky, title=set_title, subtitle=set_subtitle, color=0 |
---|
| 70 | ;; 2. color field |
---|
| 71 | loadct, pal & if (rrr eq 'yes') then TVLCT, r, g, b, /Get & if (rrr eq 'yes') then TVLCT, Reverse(r), Reverse(g), Reverse(b) |
---|
| 72 | contour, zefield, zex, zey, levels=lev, c_labels=findgen(n_elements(lev))*0.+1., /overplot, /cell_fill |
---|
| 73 | ;; 3. contour field |
---|
| 74 | loadct, 0 & contour, zefield, zex, zey, levels=lev, c_labels=findgen(n_elements(lev))*0.+1., /noerase, xtitle=set_titlex, xrange=set_xrange, xtickinterval=set_tickx, ytitle=set_titley, yrange=set_yrange, ytickinterval=set_ticky, title=set_title, subtitle=set_subtitle, color=0, C_LINESTYLE = (lev LT 0.0) |
---|
| 75 | ;; 4. choose output |
---|
| 76 | if (saveps eq 'true') then PS_End, /PNG |
---|
| 77 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
---|
| 78 | |
---|
| 79 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
---|
| 80 | zefield = transpose(std_tprime) |
---|
| 81 | zex = localtime |
---|
| 82 | zey = h |
---|
| 83 | set_name = 'std_tprime_ns.ps' |
---|
| 84 | set_title = "Temperature standard deviation (K)" ;"Maximum updraft speed (m.s!U-1!N)" |
---|
| 85 | set_titlex = 'Local Time (h)' |
---|
| 86 | set_titley = 'Altitude above surface (km)' |
---|
| 87 | set_subtitle = '' |
---|
| 88 | set_xrange = [8.,18.] |
---|
| 89 | set_yrange = [0.,1.] |
---|
| 90 | set_tickx = 1. |
---|
| 91 | set_ticky = 1. |
---|
| 92 | minval = 0. |
---|
| 93 | maxval = 2. ;15.;14.;13. |
---|
| 94 | nlev = 10 ;(maxval-minval)*10. |
---|
| 95 | pal = 22 |
---|
| 96 | rrr = 'no' |
---|
| 97 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
---|
| 98 | if (saveps eq 'true') then PS_Start, FILENAME=set_name |
---|
| 99 | !P.Charsize = 1.2 |
---|
| 100 | ;; 0. levels |
---|
| 101 | lev = minval + (maxval-minval)*findgen(nlev+1)/float(nlev) & if (minval ne 0.) then lev = lev[where(lev ne 0.)] |
---|
| 102 | ;;; 1. background |
---|
| 103 | loadct, 0 & contour, /NODATA, zefield, zex, zey, xtitle=set_titlex, xrange=set_xrange, xtickinterval=set_tickx, ytitle=set_titley, yrange=set_yrange, ytickinterval=set_ticky, title=set_title, subtitle=set_subtitle, color=0 |
---|
| 104 | ;; 2. color field |
---|
| 105 | loadct, pal & if (rrr eq 'yes') then TVLCT, r, g, b, /Get & if (rrr eq 'yes') then TVLCT, Reverse(r), Reverse(g), Reverse(b) |
---|
| 106 | contour, zefield, zex, zey, levels=lev, c_labels=findgen(n_elements(lev))*0.+1., /overplot, /cell_fill |
---|
| 107 | ;; 3. contour field |
---|
| 108 | loadct, 0 & contour, zefield, zex, zey, levels=lev, c_labels=findgen(n_elements(lev))*0.+1., /noerase, xtitle=set_titlex, xrange=set_xrange, xtickinterval=set_tickx, ytitle=set_titley, yrange=set_yrange, ytickinterval=set_ticky, title=set_title, subtitle=set_subtitle, color=0, C_LINESTYLE = (lev LT 0.0) |
---|
| 109 | ;; 4. choose output |
---|
| 110 | if (saveps eq 'true') then PS_End, /PNG |
---|
| 111 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
---|
| 112 | |
---|
| 113 | |
---|
| 114 | |
---|
| 115 | |
---|
| 116 | stop |
---|