| 1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; FOLDER |
|---|
| 2 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; FOLDER |
|---|
| 3 | folder = '/d5/aslmd/LMD_MM_MARS_SIMUS/OM/' |
|---|
| 4 | coord2d = 'false' ;; for non-regular projections |
|---|
| 5 | filename = folder + 'OM6_TI85/wrfout_d01_2024-06-43_06:00:00_zabg' |
|---|
| 6 | save_ps = 'OM6_TI85_profile' |
|---|
| 7 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; TIME |
|---|
| 8 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; TIME |
|---|
| 9 | ini_utc = 6 ;; cf. name of file |
|---|
| 10 | freq = 1 ;; cf. 1 output per ... hour |
|---|
| 11 | utc_to_lt = -9 ;; cf. longitude -- LT = UTC + utc_to_lt |
|---|
| 12 | use_lt = 2 ;; cf. what user wants |
|---|
| 13 | use_utc = use_lt - utc_to_lt |
|---|
| 14 | ntime = (use_utc - ini_utc)/freq ;; TRUE IDL SUBSCRIPT ... ajouter un modulo... |
|---|
| 15 | print, 'CHECK ... ', filename, ntime |
|---|
| 16 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; LVL & FLD |
|---|
| 17 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; LVL & FLD |
|---|
| 18 | zex = 85 |
|---|
| 19 | zey = 139 |
|---|
| 20 | zex2 = 85 |
|---|
| 21 | zey2 = 160 |
|---|
| 22 | alt = [0.,1.] |
|---|
| 23 | alt = [5.,5000.] |
|---|
| 24 | alt = [0.01, 1000.] |
|---|
| 25 | alt = [10., 1000.] |
|---|
| 26 | ;;;;;;;;;; |
|---|
| 27 | nlevel = 0 |
|---|
| 28 | ;field1 = 'TSURF' ;; comment to trace horizontal velocity |
|---|
| 29 | field1 = 'HFX' ;; comment to trace horizontal velocity |
|---|
| 30 | no3d = 'true' |
|---|
| 31 | overvector_x = 0 ;; comment out to get rid of vectors |
|---|
| 32 | overvector_y = 0 ;; comment out to get rid of vectors |
|---|
| 33 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; TWEAK VAR |
|---|
| 34 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; TWEAK VAR |
|---|
| 35 | ;a0 = 65.052165 & a1 = 3.1228993 & a2 = 0.0053787417 ;; Ls ~ 173 |
|---|
| 36 | ;;a0 = 64.039300 & a1 = 3.1378104 & a2 = 0.0055369148 ;; Ls ~ 120 |
|---|
| 37 | ;what_I_plot = - ( alog ( a1 - what_I_plot / a0 ) ) / a2 |
|---|
| 38 | ;print, max(what_I_plot), min(what_I_plot) |
|---|
| 39 | ;overvector_x=0 |
|---|
| 40 | ;overvector_y=0 |
|---|
| 41 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 42 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 43 | |
|---|
| 44 | |
|---|
| 45 | ;;;;;*************************************** PLOT TITLES |
|---|
| 46 | title_user = '' ;'Vertical wind speed (z-component) (m s!U-1!N)' |
|---|
| 47 | subtitle_user = 'LT = 02:00am / Ls = 173!Uo!N / dx = 6km [single] / Uniform TI = 85 J m!U-2!N s!U-0.5!N K!U-1!N' |
|---|
| 48 | title_axis = ['Vertical wind velocity (m s!U-1!N)', 'Altitude above the surface (m)'] |
|---|
| 49 | if (mention eq 'two') then title_axis = ['Horizontal wind speed (m s!U-1!N)', 'Altitude above the surface (m)'] |
|---|
| 50 | if (mention eq 'three') then title_axis = ['Atmospheric temperature (K)', 'Altitude above the surface (m)'] |
|---|
| 51 | |
|---|
| 52 | ;;;;;*************************************** COLOR TABLES |
|---|
| 53 | flag_cb = 'true' |
|---|
| 54 | poscb = 0.96 |
|---|
| 55 | format = '(I0)' |
|---|
| 56 | ;format = '(F4.1)' |
|---|
| 57 | ;colors = 128 |
|---|
| 58 | colors = 32 |
|---|
| 59 | pal = 0 ;22 ;; GOOD: 4, 18, 22, 16, 37, 33, 39, 6, 11 |
|---|
| 60 | |
|---|
| 61 | ;;;;;*************************************** FILL LIMITS |
|---|
| 62 | minfield_init = -15. |
|---|
| 63 | maxfield_init = 2.5 |
|---|
| 64 | if (mention eq 'two') then minfield_init = 0.001 |
|---|
| 65 | if (mention eq 'two') then maxfield_init = 40. |
|---|
| 66 | if (mention eq 'three') then minfield_init = 160. |
|---|
| 67 | if (mention eq 'three') then maxfield_init = 230. |
|---|
| 68 | |
|---|
| 69 | |
|---|
| 70 | ;;;;;*************************************** LIMIT TRICKS |
|---|
| 71 | ;;;;;********************* must always follow FILL LIMITS |
|---|
| 72 | missing_value=1.e30 |
|---|
| 73 | lim_max = maxfield_init & w=where((what_I_plot ge lim_max) and (what_I_plot le 1e9)) & if (w[0] ne -1) then what_I_plot[w]=lim_max |
|---|
| 74 | lim_min = minfield_init & w=where(what_I_plot le lim_min) & if (w[0] ne -1) then what_I_plot[w]=lim_min |
|---|
| 75 | ;lim_blank = 2. & w=where(abs(what_I_plot) le lim_blank) & if (w[0] ne -1) then what_I_plot[w]=missing_value |
|---|
| 76 | |
|---|
| 77 | ;;;;;*************************************** WINDS |
|---|
| 78 | ;windex = 10. ;; DEF: 20. |
|---|
| 79 | windex = 30. ;; DEF: 20. |
|---|
| 80 | ;stride = 1. ;; DEF: 5. |
|---|
| 81 | ;stride = 2. ;; DEF: 5. |
|---|
| 82 | stride = 3. ;; DEF: 5. |
|---|
| 83 | |
|---|
| 84 | ;;;;;*************************************** CONTOUR |
|---|
| 85 | ;overcontour = overcontour/1000. |
|---|
| 86 | ;lev = 50. + 50.*findgen(20) |
|---|
| 87 | ;lev = -10. + 0.2*findgen(20) |
|---|
| 88 | lev = -10. + 2.*findgen(20) |
|---|
| 89 | ;lev = -10. + 1.*findgen(40) |
|---|
| 90 | |
|---|
| 91 | ;;;;;*************************************** AXIS |
|---|
| 92 | isotropic = 'true' |
|---|
| 93 | ;intervalx = 0.5 |
|---|
| 94 | intervalx = 2.5 |
|---|
| 95 | ;intervaly = intervalx |
|---|
| 96 | intervaly = 0.1 |
|---|
| 97 | if (mention eq 'two') then intervalx = 5. |
|---|
| 98 | if (mention eq 'three') then intervalx = 10. |
|---|
| 99 | |
|---|
| 100 | ;;;;;*************************************** MAP LIMITS |
|---|
| 101 | ;windowx = [-144.,-126.] |
|---|
| 102 | ;windowy = [10.,26.] |
|---|
| 103 | windowx = [-146.,-126.] |
|---|
| 104 | ;windowy = [10.,28.] |
|---|
| 105 | ;windowx = [-146.,-128.] |
|---|
| 106 | ;windowy = [12.,26.] |
|---|
| 107 | windowy = [11.,27.] |
|---|
| 108 | |
|---|
| 109 | ;;;;;*************************************** |
|---|
| 110 | ;;;;;*************************************** |
|---|
| 111 | ;;;;;*************************************** |
|---|
| 112 | ;;;;;*************************************** |
|---|
| 113 | |
|---|
| 114 | ;;; |
|---|
| 115 | ;;; VERTICAL SECTION LIMITS |
|---|
| 116 | ;;; |
|---|
| 117 | ;minalt=-5. ;; grepSEC |
|---|
| 118 | ;maxalt=40. ;; grepSEC |
|---|
| 119 | ;minspace=0.0 ;; grepSEC |
|---|
| 120 | ;maxspace=35.0 ;; grepSEC |
|---|
| 121 | |
|---|
| 122 | ;;; |
|---|
| 123 | ;;; METRIC UNITS FOR VERTICAL SECTION |
|---|
| 124 | ;;; |
|---|
| 125 | ;factor=10. ;; grepSEC |
|---|
| 126 | ;space=space*60. & spacekm='true' ;; grepSEC |
|---|
| 127 | ;minspace=minspace*60./factor ;; grepSEC |
|---|
| 128 | ;maxspace=maxspace*60./factor ;; grepSEC |
|---|
| 129 | ;intervalx=round(intervalx*60./factor) ;; grepSEC |
|---|
| 130 | |
|---|
| 131 | |
|---|
| 132 | ;;; |
|---|
| 133 | ;;; TRICKS |
|---|
| 134 | ;;; |
|---|
| 135 | |
|---|
| 136 | ;; pour tracer juste les vecteurs sur un fond uni ou vide |
|---|
| 137 | ;pal=0 ;; 1/4 grepMAP |
|---|
| 138 | ;what_I_plot(*,*)=what_I_plot(*,*)*0.+0.2 ;; 2/4 grepMAP |
|---|
| 139 | ;what_I_plot(0,0)=0. ;; 3/4 grepMAP |
|---|
| 140 | ;flag_cb='false' ;; 4/4 grepMAP |
|---|
| 141 | |
|---|
| 142 | ;;; truc pour tracer juste les contours et une zone grisee de topo |
|---|
| 143 | ;pal=0 ;; 1/9 grepALL |
|---|
| 144 | ;w=where(abs(what_I_plot) lt missing_value) ;; 2/9 grepALL |
|---|
| 145 | ;what_I_plot[w]=0. ;; 3/9 grepALL |
|---|
| 146 | ;w=where(abs(what_I_plot) gt missing_value) ;; 4/9 grepALL |
|---|
| 147 | ;what_I_plot[w]=0.75 ;; 5/9 grepALL |
|---|
| 148 | ;w=where(what_I_plot eq 0.) ;; 6/9 grepALL |
|---|
| 149 | ;what_I_plot[w]=missing_value ;; 7/9 grepALL |
|---|
| 150 | ;what_I_plot(0,0)=1. & what_I_plot(1,0)=0. ;; 8/9 grepALL |
|---|
| 151 | ;flag_cb='false' ;; 9/9 grepALL |
|---|
| 152 | |
|---|