- Timestamp:
- 07/04/12 17:52:46 (12 years ago)
- Location:
- trunk/src
- Files:
-
- 1 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/interp_erai_dewt.pro
r180 r191 5 5 ; ==================== 6 6 ; 7 ; .. function:: interp_erai_dewt(yyyymmddb,yyyymmdde )7 ; .. function:: interp_erai_dewt(yyyymmddb,yyyymmdde, eraitype) 8 8 ; 9 9 ; DESCRIPTION … … 12 12 ; Interpolation of d2 from ERA-I grid to OAFLUX grid 13 13 ; 14 ; If eraitype is set to 1, 14 15 ; :file:`${PROJECT_ID}/20c3m_erai_d2_TROP_1989_2009.nc` 15 16 ; containing … … 18 19 ; :ref:`compute_erai_daily_region_2d.sh`. 19 20 ; 21 ; If eraitype is set to 2, 22 ; :file:`${PROJECT_ID}/erai_d2m_{yyyyb}_{yyyye}.nc` 23 ; containing 24 ; d2m from ERA-I 25 ; has been produced by 26 ; :ref:`concat_eraiy.sh`. 27 ; 20 28 ; :file:`${PROJECT_ID}/mask_oaflux_30N30S.nc` 21 29 ; containing OAFLUX grid … … 43 51 ; digraph interp_erai_dewt { 44 52 ; 45 ; file_in [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_d2_TROP_1989_2009.nc"]; 53 ; file_in_erai1 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_d2_TROP_1989_2009.nc"]; 54 ; file_in_erai2 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_d2m_{yyyyb}_{yyyye}.nc"]; 46 55 ; mask [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/mask_oaflux_30N30S.nc"]; 47 56 ; file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_d2m_{yyyymmdd}_{yyyymmdd}_oafluxgrid.nc"]; … … 53 62 ; label="${PROJECT}/src/interp_erai_dewt.pro"]; 54 63 ; 55 ; {file_in mask} -> {interp_erai_dewt} -> {file_out}64 ; {file_in_erai1 file_in_erai2 mask} -> {interp_erai_dewt} -> {file_out} 56 65 ; 57 66 ; } … … 65 74 ; 66 75 ; :ref:`project_profile.sh` 76 ; 77 ; :ref:`compute_erai_daily_region_2d.sh` 78 ; :ref:`concat_eraiy.sh` 67 79 ; 68 80 ; :func:`report <saxo:report>` … … 80 92 ; ======== 81 93 ; 82 ; ::94 ; With ERA-I type 1:: 83 95 ; 84 96 ; .compile file_interp 85 97 ; yyyymmddb = 20000101L 86 98 ; yyyymmdde = 20001231L 87 ; result = interp_erai_dewt(yyyymmddb, yyyymmdde) 99 ; eraitype = 1 100 ; result = interp_erai_dewt(yyyymmddb, yyyymmdde, eraitype) 101 ; print, result 102 ; 103 ; With ERA-I type 2:: 104 ; 105 ; .compile file_interp 106 ; yyyymmddb = 20000101L 107 ; yyyymmdde = 20001231L 108 ; eraitype = 2 109 ; result = interp_erai_dewt(yyyymmddb, yyyymmdde, eraitype) 88 110 ; print, result 89 111 ; … … 128 150 ; 129 151 ; $URL: svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/tropflux/svn/trunk/src/interp_erai_dewt.pro $ 152 ; 153 ; - fplod 20120704T113504Z cratos (Linux) 154 ; 155 ; * add eraitype parameter 156 ; * deal with time units (days vs hours) and time origin 130 157 ; 131 158 ; - fplod 20120320 … … 170 197 function interp_erai_dewt $ 171 198 , yyyymmddb $ 172 , yyyymmdde 199 , yyyymmdde $ 200 , eraitype 173 201 ; 174 202 ;++compile_opt idl2, strictarrsubs, logical_predicate … … 185 213 result = -1 186 214 ; 187 usage = 'result = interp_erai_dewt(yyyymmddb, yyyymmdde )'215 usage = 'result = interp_erai_dewt(yyyymmddb, yyyymmdde, eraitype)' 188 216 nparam = N_PARAMS() 189 IF (nparam NE 2) THEN BEGIN217 IF (nparam NE 3) THEN BEGIN 190 218 ras = report(['Incorrect number of arguments.' $ 191 219 + '!C' $ … … 232 260 ; 233 261 ; build data filename 234 filename='20c3m_erai_d2_TROP_1989_2009.nc' 262 IF eraitype EQ 1 THEN BEGIN 263 erai_var = 'd2' 264 filename='20c3m_erai_d2_TROP_1989_2009.nc' 265 tutoday = 24.d 266 tmporig = date2jul(19570101L,month=immo,day=iddo,year=iyyyyo) 267 endif 268 IF (eraitype eq 2) THEN BEGIN 269 erai_var = 'd2m' 270 tmpb = date2jul(yyyymmddb,month=immb,day=iddb,year=iyyyyb) 271 tmpe = date2jul(yyyymmdde,month=imme,day=idde,year=iyyyye) 272 filename = 'erai_' + erai_var + '_' + string(iyyyyb,format='(I4.4)') + '_' + string(iyyyye,format='(I4.4)') + '.nc' 273 tutoday = 1.d 274 tmporig = date2jul(19500101L,month=immo,day=iddo,year=iyyyyo) 275 ENDIF 235 276 ; 236 277 ; check if this file exists … … 283 324 print, 'lat grid ',min(latin),max(latin),latin[1]-latin[0] 284 325 print, 'lon grid ',min(lonin),max(lonin),lonin[1]-lonin[0] 285 d2min=read_ncdf( "d2",yyyymmddb-.5d,yyyymmdde,file=fullfilename,/nostr)286 ; 287 timein= 24.d*(time-julday(1,1,1957,0,0,0))326 d2min=read_ncdf(erai_var,yyyymmddb-.5d,yyyymmdde,file=fullfilename,/nostr) 327 ; 328 timein=tutoday*(time-julday(immo,iddo,iyyyyo,0,0,0)) 288 329 jptin=n_elements(timein) 289 330 da=jul2date(time[0]) -
trunk/src/interp_erai_lwr.pro
r180 r191 6 6 ; =================== 7 7 ; 8 ; .. function:: interp_erai_lwr(yyyymmddb,yyyymmdde )8 ; .. function:: interp_erai_lwr(yyyymmddb,yyyymmdde, eraitype) 9 9 ; 10 10 ; DESCRIPTION … … 13 13 ; Interpolation of str from ERA-I grid to OAFLUX grid 14 14 ; 15 ; If eraitype is set to 1, 15 16 ; :file:`${PROJECT_ID}/20c3m_erai_str_TROP_1989_2009.nc` 16 17 ; containing str from ERA-I … … 18 19 ; :ref:`compute_erai_daily_region_2d.sh`. 19 20 ; 21 ; If eraitype is set to 2, 22 ; :file:`${PROJECT_ID}/erai_t2m_{yyyyb}_{yyyye}.nc` 23 ; containing 24 ; lwr from ERA-I 25 ; has been produced by 26 ; :ref:`concat_eraiy.sh`. 27 ; 20 28 ; :file:`${PROJECT_ID}/mask_oaflux_30N30S.nc` 21 29 ; containing OAFLUX mask … … 43 51 ; digraph interp_erai_lwr { 44 52 ; 45 ; file_in [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_str_TROP_1989_2009.nc"]; 53 ; file_in_erai1 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_str_TROP_1989_2009.nc"]; 54 ; file_in_erai2 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_lwr_{yyyyb}_{yyyye}.nc"]; 46 55 ; mask [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/mask_oaflux_30N30S.nc"]; 47 56 ; file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_lwr_{yyyymmdd}_{yyyymmdd}_oafluxgrid.nc"]; … … 53 62 ; label="${PROJECT}/src/interp_erai_lwr.pro"]; 54 63 ; 55 ; {file_in mask} -> {interp_erai_lwr} -> {file_out}64 ; {file_in_erai1 file_in_erai2 mask} -> {interp_erai_lwr} -> {file_out} 56 65 ; 57 66 ; } … … 65 74 ; 66 75 ; :ref:`project_profile.sh` 76 ; 77 ; :ref:`compute_erai_daily_region_2d.sh` 78 ; :ref:`concat_eraiy.sh` 67 79 ; 68 80 ; :func:`report <saxo:report>` … … 80 92 ; ======== 81 93 ; 82 ; ::94 ; With ERA-I type 1:: 83 95 ; 84 96 ; .compile file_interp 97 ; eraitype = 1 85 98 ; yyyymmddb = 20000101L 86 99 ; yyyymmdde = 20001231L 87 ; result = interp_erai_lwr(yyyymmddb, yyyymmdde) 100 ; result = interp_erai_lwr(yyyymmddb, yyyymmdde, eraitype) 101 ; print, result 102 ; 103 ; With ERA-I type 2:: 104 ; 105 ; .compile file_interp 106 ; eraitype = 2 107 ; yyyymmddb = 20000101L 108 ; yyyymmdde = 20001231L 109 ; result = interp_erai_lwr(yyyymmddb, yyyymmdde, eraitype) 88 110 ; print, result 89 111 ; … … 131 153 ; $URL: svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/tropflux/svn/trunk/src/interp_erai_lwr.pro $ 132 154 ; 155 ; - fplod 20120704T113504Z cratos (Linux) 156 ; 157 ; * add eraitype parameter 158 ; * deal with time units (days vs hours) and time origin 159 ; 133 160 ; - fplod 20120320 134 161 ; … … 195 222 function interp_erai_lwr $ 196 223 , yyyymmddb $ 197 , yyyymmdde 224 , yyyymmdde $ 225 , eraitype 198 226 ; 199 227 ;++compile_opt idl2, strictarrsubs, logical_predicate … … 210 238 result = -1 211 239 ; 212 usage = 'result = interp_erai_lwr(yyyymmddb, yyyymmdde )'240 usage = 'result = interp_erai_lwr(yyyymmddb, yyyymmdde, eraitype)' 213 241 nparam = N_PARAMS() 214 IF (nparam NE 2) THEN BEGIN242 IF (nparam NE 3) THEN BEGIN 215 243 ras = report(['Incorrect number of arguments.' $ 216 244 + '!C' $ … … 260 288 ; 261 289 ; build data filename 262 filename='20c3m_erai_str_TROP_1989_2009.nc' 290 IF eraitype EQ 1 THEN BEGIN 291 erai_var = 'str' 292 filename='20c3m_erai_str_TROP_1989_2009.nc' 293 tutoday = 24.d 294 tmporig = date2jul(19570101L,month=immo,day=iddo,year=iyyyyo) 295 endif 296 IF (eraitype eq 2) THEN BEGIN 297 erai_var = 'lwr' 298 tmpb = date2jul(yyyymmddb,month=immb,day=iddb,year=iyyyyb) 299 tmpe = date2jul(yyyymmdde,month=imme,day=idde,year=iyyyye) 300 filename = 'erai_' + erai_var + '_' + string(iyyyyb,format='(I4.4)') + '_' + string(iyyyye,format='(I4.4)') + '.nc' 301 tutoday = 1.d 302 tmporig = date2jul(19500101L,month=immo,day=iddo,year=iyyyyo) 303 ENDIF 263 304 ; 264 305 ; check if this file exists … … 306 347 ; 307 348 initncdf, fullfilename 308 lwrin=read_ncdf( "str",yyyymmddb-.5d,yyyymmdde,file=fullfilename,/nostr)349 lwrin=read_ncdf(erai_var,yyyymmddb-.5d,yyyymmdde,file=fullfilename,/nostr) 309 350 lwrin=-1*lwrin 310 timein= 24.d*(time-julday(1,1,1957,0,0,0))351 timein=tutoday*(time-julday(immo,iddo,iyyyyo,0,0,0)) 311 352 jptin=n_elements(timein) 312 353 da=jul2date(time[0]) -
trunk/src/interp_erai_msl.pro
r180 r191 5 5 ; =================== 6 6 ; 7 ; .. function:: interp_erai_msl(yyyymmddb,yyyymmdde )7 ; .. function:: interp_erai_msl(yyyymmddb,yyyymmdde, eraitype) 8 8 ; 9 9 ; DESCRIPTION … … 12 12 ; Interpolation of msl from ERA-I grid to OAFLUX grid 13 13 ; 14 ; If eraitype is set to 1, 14 15 ; :file:`${PROJECT_ID}/20c3m_erai_msl_TROP_1989_2009.nc` 15 16 ; containing … … 18 19 ; :ref:`compute_erai_daily_region_2d.sh`. 19 20 ; 21 ; If eraitype is set to 2, 22 ; :file:`${PROJECT_ID}/erai_msl_{yyyyb}_{yyyye}.nc` 23 ; containing 24 ; msl from ERA-I 25 ; has been produced by 26 ; :ref:`concat_eraiy.sh`. 27 ; 20 28 ; :file:`${PROJECT_ID}/mask_oaflux_30N30S.nc` 21 29 ; containing … … 44 52 ; digraph interp_erai_msl { 45 53 ; 46 ; file_in [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_msl_TROP_1989_2009.nc"]; 54 ; file_in_erai1 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_msl_TROP_1989_2009.nc"]; 55 ; file_in_erai2 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_msl_{yyyyb}_{yyyye}.nc"]; 47 56 ; mask [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/mask_oaflux_30N30S.nc"]; 48 57 ; file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_msl_{yyyymmdd}_{yyyymmdd}_oafluxgrid.nc"]; … … 54 63 ; label="${PROJECT}/src/interp_erai_msl.pro"]; 55 64 ; 56 ; {file_in mask} -> {interp_erai_msl} -> {file_out}65 ; {file_in_erai1 file_in_erai2 mask} -> {interp_erai_msl} -> {file_out} 57 66 ; 58 67 ; } … … 66 75 ; 67 76 ; Used by :ref:`tropflux.sh` 77 ; 78 ; :ref:`compute_erai_daily_region_2d.sh` 79 ; :ref:`concat_eraiy.sh` 68 80 ; 69 81 ; :func:`report <saxo:report>` … … 81 93 ; ======== 82 94 ; 83 ; ::95 ; With ERA-I type 1:: 84 96 ; 85 97 ; .compile file_interp 86 98 ; yyyymmddb = 20000101L 87 99 ; yyyymmdde = 20001231L 88 ; result = interp_erai_msl(yyyymmddb, yyyymmdde) 100 ; eraitype = 1 101 ; result = interp_erai_msl(yyyymmddb, yyyymmdde, eraitype) 102 ; print, result 103 ; 104 ; With ERA-I type 2:: 105 ; 106 ; .compile file_interp 107 ; yyyymmddb = 20000101L 108 ; yyyymmdde = 20001231L 109 ; eraitype = 2 110 ; result = interp_erai_msl(yyyymmddb, yyyymmdde, eraitype) 89 111 ; print, result 90 112 ; … … 92 114 ; ==== 93 115 ; 94 ; use real output of :ref:`compute_erai_daily_region_2d.sh` 116 ; use real output of :ref:`compute_erai_daily_region_2d.sh` if eraitype is set to 1 95 117 ; 96 118 ; get_erai.py + grib to netcdf conversion … … 116 138 ; 117 139 ; $URL$ 140 ; 141 ; - fplod 20120704T113504Z cratos (Linux) 142 ; 143 ; * add eraitype parameter 144 ; * conversion mPa to hPa 145 ; * deal with time units (days vs hours) and time origin 118 146 ; 119 147 ; - fplod 20120320 … … 150 178 function interp_erai_msl $ 151 179 , yyyymmddb $ 152 , yyyymmdde 180 , yyyymmdde $ 181 , eraitype 153 182 ; 154 183 ;++compile_opt idl2, strictarrsubs, logical_predicate … … 165 194 result = -1 166 195 ; 167 usage = 'result = interp_erai_msl(yyyymmddb, yyyymmdde )'196 usage = 'result = interp_erai_msl(yyyymmddb, yyyymmdde, eraitype)' 168 197 nparam = N_PARAMS() 169 IF (nparam NE 2) THEN BEGIN198 IF (nparam NE 3) THEN BEGIN 170 199 ras = report(['Incorrect number of arguments.' $ 171 200 + '!C' $ … … 212 241 ; 213 242 ; build data filename 214 filename='20c3m_erai_msl_TROP_1989_2009.nc' 243 IF eraitype EQ 1 THEN BEGIN 244 erai_var = 'msl' 245 filename='20c3m_erai_msl_TROP_1989_2009.nc' 246 tutoday = 24.d 247 tmporig = date2jul(19570101L,month=immo,day=iddo,year=iyyyyo) 248 endif 249 IF (eraitype eq 2) THEN BEGIN 250 erai_var = 'msl' 251 tmpb = date2jul(yyyymmddb,month=immb,day=iddb,year=iyyyyb) 252 tmpe = date2jul(yyyymmdde,month=imme,day=idde,year=iyyyye) 253 filename = 'erai_' + erai_var + '_' + string(iyyyyb,format='(I4.4)') + '_' + string(iyyyye,format='(I4.4)') + '.nc' 254 tutoday = 1.d 255 tmporig = date2jul(19500101L,month=immo,day=iddo,year=iyyyyo) 256 ENDIF 215 257 ; 216 258 ; check if this file exists … … 222 264 ras = report(msg) 223 265 return, result 224 ENDIF 266 ENDIF ELSE BEGIN 267 msg = 'iii : the file ' + fullfilename + ' found.' 268 ras = report(msg) 269 ENDELSE 225 270 ; 226 271 ; test if ${PROJECT_OD} defined … … 263 308 print, 'lat grid ',min(latin),max(latin),latin[1]-latin[0] 264 309 print, 'lon grid ',min(lonin),max(lonin),lonin[1]-lonin[0] 265 ;++mslin=read_ncdf("msl",yyyymmddb-.5d,yyymmdde,file=fullfilename,/nostr)266 mslin=read_ncdf("msl",19880101,20100930,file=fullfilename,/nostr) 267 ; 268 timein= 24.d*(time-julday(1,1,1957,0,0,0))310 mslin=read_ncdf(erai_var,yyyymmddb,yyyymmdde,file=fullfilename,/nostr) 311 ; 312 help, time 313 timein=tutoday*(time-julday(immo,iddo,iyyyyo,0,0,0)) 269 314 jptin=n_elements(timein) 270 315 da=jul2date(time[0]) … … 287 332 ; 288 333 ; conversion to hPa 289 ncdf_getatt, fullfilename, 'msl', units=units334 ncdf_getatt, fullfilename, erai_var, units=units 290 335 CASE units OF 291 336 'Pascal': BEGIN 292 337 mslin=mslin/100 338 END 339 'mPa': BEGIN 340 mslin=mslin*10 293 341 END 294 342 ELSE: BEGIN -
trunk/src/interp_erai_sst.pro
r180 r191 6 6 ; =================== 7 7 ; 8 ; .. function:: interp_erai_sst(yyyymmddb,yyyymmdde )8 ; .. function:: interp_erai_sst(yyyymmddb,yyyymmdde, eraitype) 9 9 ; 10 10 ; DESCRIPTION … … 13 13 ; Interpolation of sst from ERA-I grid to OAFLUX grid 14 14 ; 15 ; If eraitype is set to 1, 15 16 ; :file:`${PROJECT_ID}/20c3m_erai_sstk_TROP_1989_2009.nc` 16 17 ; containing sst from ERA-I 17 18 ; has been produced by 18 19 ; :ref:`compute_erai_daily_region_2d.sh`. 20 ; 21 ; If eraitype is set to 2, 22 ; :file:`${PROJECT_ID}/erai_sst_{yyyyb}_{yyyye}.nc` 23 ; containing sst from ERA-I 24 ; has been produced by 25 ; :ref:`concat_eraiy.sh`. 19 26 ; 20 27 ; :file:`${PROJECT_ID}/mask_oaflux_30N30S.nc` … … 44 51 ; digraph interp_erai_sst { 45 52 ; 46 ; file_in [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_sstk_TROP_1989_2009.nc"]; 53 ; file_in_erai1 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_sstk_TROP_1989_2009.nc"]; 54 ; file_in_erai2 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_sst_{yyyyb}_{yyyye}.nc"]; 47 55 ; mask [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/mask_oaflux_30N30S.nc"]; 48 56 ; file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_sst_{yyyymmdd}_{yyyymmdd}_oafluxgrid.nc"]; … … 54 62 ; label="${PROJECT}/src/interp_erai_sst.pro"]; 55 63 ; 56 ; {file_in mask} -> {interp_erai_sst} -> {file_out}64 ; {file_in_erai1 file_in_erai2 mask} -> {interp_erai_sst} -> {file_out} 57 65 ; 58 66 ; } … … 66 74 ; 67 75 ; :ref:`project_profile.sh` 76 ; 77 ; :ref:`compute_erai_daily_region_2d.sh` 78 ; :ref:`concat_eraiy.sh` 68 79 ; 69 80 ; :func:`report <saxo:report>` … … 81 92 ; ======== 82 93 ; 83 ; ::94 ; With ERA-I type 1:: 84 95 ; 85 96 ; .compile file_interp 86 97 ; yyyymmddb = 20000101L 87 98 ; yyyymmdde = 20001231L 88 ; result = interp_erai_sst(yyyymmddb, yyyymmdde) 99 ; eraitype = 1 100 ; result = interp_erai_sst(yyyymmddb, yyyymmdde, eraitype) 89 101 ; print, result 90 102 ; 103 ; With ERA-I type 2:: 104 ; 105 ; .compile file_interp 106 ; yyyymmddb = 20000101L 107 ; yyyymmdde = 20001231L 108 ; eraitype = 2 109 ; result = interp_erai_sst(yyyymmddb, yyyymmdde, eraitype) 91 110 ; 92 111 ; TODO … … 99 118 ; coding rules 100 119 ; 101 ; use real output of :ref:`compute_erai_daily_region_2d.sh` .120 ; use real output of :ref:`compute_erai_daily_region_2d.sh` if eraitype is set to 1. 102 121 ; 103 122 ; scientific validation (strange look of data with ncview now) … … 121 140 ; 122 141 ; $URL: svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/tropflux/svn/trunk/src/interp_erai_sst.pro $ 142 ; 143 ; - fplod 20120704T113504Z cratos (Linux) 144 ; 145 ; * add eraitype parameter 146 ; * deal with time units (days vs hours) and time origin 123 147 ; 124 148 ; - fplod 20120320 … … 160 184 function interp_erai_sst $ 161 185 , yyyymmddb $ 162 , yyyymmdde 186 , yyyymmdde $ 187 , eraitype 163 188 ; 164 189 ;++compile_opt idl2, strictarrsubs, logical_predicate … … 175 200 result = -1 176 201 ; 177 usage = 'result = interp_erai_lwr(yyyymmddb, yyyymmdde )'202 usage = 'result = interp_erai_lwr(yyyymmddb, yyyymmdde, eraitype)' 178 203 nparam = N_PARAMS() 179 IF (nparam NE 2) THEN BEGIN204 IF (nparam NE 3) THEN BEGIN 180 205 ras = report(['Incorrect number of arguments.' $ 181 206 + '!C' $ … … 222 247 ; 223 248 ; build data filename 224 filename='20c3m_erai_sstk_TROP_1989_2009.nc' 249 IF eraitype EQ 1 THEN BEGIN 250 erai_var = 'sstk' 251 filename='20c3m_erai_sstk_TROP_1989_2009.nc' 252 tutoday = 24.d 253 tmporig = date2jul(19570101L,month=immo,day=iddo,year=iyyyyo) 254 endif 255 IF (eraitype eq 2) THEN BEGIN 256 erai_var = 'sst' 257 tmpb = date2jul(yyyymmddb,month=immb,day=iddb,year=iyyyyb) 258 tmpe = date2jul(yyyymmdde,month=imme,day=idde,year=iyyyye) 259 filename = 'erai_' + erai_var + '_' + string(iyyyyb,format='(I4.4)') + '_' + string(iyyyye,format='(I4.4)') + '.nc' 260 tutoday = 1.d 261 tmporig = date2jul(19500101L,month=immo,day=iddo,year=iyyyyo) 262 ENDIF 225 263 ; 226 264 ; check if this file exists … … 273 311 print, 'lat grid ',min(latin),max(latin),latin[1]-latin[0] 274 312 print, 'lon grid ',min(lonin),max(lonin),lonin[1]-lonin[0] 275 sstkin=read_ncdf( "sstk",yyyymmddb-.5d,yyyymmdde,file=fullfilename,/nostr)276 ; 277 timein= 24.d*(time-julday(1,1,1957,0,0,0))313 sstkin=read_ncdf(erai_var,yyyymmddb-.5d,yyyymmdde,file=fullfilename,/nostr) 314 ; 315 timein=tutoday*(time-julday(immo,iddo,iyyyyo,0,0,0)) 278 316 jptin=n_elements(timein) 279 317 da=jul2date(time[0]) -
trunk/src/interp_erai_t2m.pro
r180 r191 5 5 ; =================== 6 6 ; 7 ; .. function:: interp_erai_t2m(yyyymmddb,yyyymmdde )7 ; .. function:: interp_erai_t2m(yyyymmddb,yyyymmdde, eraitype) 8 8 ; 9 9 ; DESCRIPTION … … 12 12 ; Interpolation of t2 from ERA-I grid to OAFLUX grid 13 13 ; 14 ; If eraitype is set to 1, 14 15 ; :file:`${PROJECT_ID}/20c3m_erai_t2_TROP_1989_2009.nc` 15 16 ; containing … … 18 19 ; :ref:`compute_erai_daily_region_2d.sh`. 19 20 ; 21 ; If eraitype is set to 2, 22 ; :file:`${PROJECT_ID}/erai_t2m_{yyyyb}_{yyyye}.nc` 23 ; containing 24 ; t2m from ERA-I 25 ; has been produced by 26 ; :ref:`concat_eraiy.sh`. 27 ; 20 28 ; :file:`${PROJECT_ID}/mask_oaflux_30N30S.nc` 21 29 ; containing OAFLUX grid … … 43 51 ; digraph interp_erai_t2m { 44 52 ; 45 ; file_in [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_t2_TROP_1989_2009.nc"]; 53 ; file_in_erai1 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_t2_TROP_1989_2009.nc"]; 54 ; file_in_erai2 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_t2m_{yyyyb}_{yyyye}.nc"]; 46 55 ; mask [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/mask_oaflux_30N30S.nc"]; 47 56 ; file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_t2m_{yyyymmdd}_{yyyymmdd}_oafluxgrid.nc"]; … … 53 62 ; label="${PROJECT}/src/interp_erai_t2m.pro"]; 54 63 ; 55 ; {file_in mask} -> {interp_erai_t2m} -> {file_out}64 ; {file_in_erai1 file_in_erai2 mask} -> {interp_erai_t2m} -> {file_out} 56 65 ; 57 66 ; } … … 67 76 ; 68 77 ; :ref:`compute_erai_daily_region_2d.sh` 78 ; :ref:`concat_eraiy.sh` 69 79 ; 70 80 ; :func:`oaflux_mask_30n30s` … … 86 96 ; ======== 87 97 ; 88 ; ::98 ; With ERA-I type 1:: 89 99 ; 90 100 ; .compile file_interp 91 101 ; yyyymmddb = 20000101L 92 102 ; yyyymmdde = 20001231L 93 ; result = interp_erai_t2m(yyyymmddb, yyyymmdde) 103 ; eraitype = 1 104 ; result = interp_erai_t2m(yyyymmddb, yyyymmdde, eraitype) 105 ; print, result 106 ; 107 ; With ERA-I type 2:: 108 ; 109 ; .compile file_interp 110 ; yyyymmddb = 20000101L 111 ; yyyymmdde = 20001231L 112 ; eraitype = 2 113 ; result = interp_erai_t2m(yyyymmddb, yyyymmdde, eraitype) 94 114 ; print, result 95 115 ; … … 167 187 ; $URL: svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/tropflux/svn/trunk/src/interp_erai_t2m.pro $ 168 188 ; 189 ; - fplod 20120704T113504Z cratos (Linux) 190 ; 191 ; * add eraitype parameter 192 ; * deal with time units (days vs hours) and time origin 193 ; 169 194 ; - fplod 20120319 170 195 ; … … 239 264 function interp_erai_t2m $ 240 265 , yyyymmddb $ 241 , yyyymmdde 266 , yyyymmdde $ 267 , eraitype 242 268 ; 243 269 ;++compile_opt idl2, strictarrsubs, logical_predicate … … 254 280 result = -1 255 281 ; 256 usage = 'result = interp_erai_t2m(yyyymmddb, yyyymmdde )'282 usage = 'result = interp_erai_t2m(yyyymmddb, yyyymmdde, eraitype)' 257 283 nparam = N_PARAMS() 258 IF (nparam NE 2) THEN BEGIN284 IF (nparam NE 3) THEN BEGIN 259 285 ras = report(['Incorrect number of arguments.' $ 260 286 + '!C' $ … … 301 327 ; 302 328 ; build t2 filename 303 filename_t2='20c3m_erai_t2_TROP_1989_2009.nc' 329 IF eraitype EQ 1 THEN BEGIN 330 erai_var = 't2' 331 filename_t2 = '20c3m_erai_t2_TROP_1989_2009.nc' 332 tutoday = 24.d 333 tmporig = date2jul(19570101L,month=immo,day=iddo,year=iyyyyo) 334 endif 335 IF (eraitype eq 2) THEN BEGIN 336 erai_var = 't2m' 337 tmpb = date2jul(yyyymmddb,month=immb,day=iddb,year=iyyyyb) 338 tmpe = date2jul(yyyymmdde,month=imme,day=idde,year=iyyyye) 339 filename_t2 = 'erai_' + erai_var + '_' + string(iyyyyb,format='(I4.4)') + '_' + string(iyyyye,format='(I4.4)') + '.nc' 340 tutoday = 1.d 341 tmporig = date2jul(19500101L,month=immo,day=iddo,year=iyyyyo) 342 ENDIF 304 343 ; 305 344 ; check if this file exists … … 376 415 ;++print, 'The first 10 time values (variable time) = ', time[0:9] 377 416 ;++print, 'time steps after read_ncdf (variable jpt) ', jpt 378 ;t2min=ncdf_lec(fullfilename_t2,var= 't2')417 ;t2min=ncdf_lec(fullfilename_t2,var=erai_var) 379 418 380 t2min=read_ncdf( 't2',yyyymmddb-.5d,yyyymmdde,file=fullfilename_t2,/nost)419 t2min=read_ncdf(erai_var,yyyymmddb-.5d,yyyymmdde,file=fullfilename_t2,/nost) 381 420 ;; time:units = "hours since 1957-01-01 00:00:0.0" ; 382 timein= 24.d*(time-julday(1,1,1957,0,0,0))421 timein=tutoday*(time-julday(immo,iddo,iyyyyo,0,0,0)) 383 422 jptin=n_elements(timein) 384 423 da=jul2date(time[0]) … … 408 447 tab=reform(t2min[*,*,jt]) 409 448 t2mout[*,*,jt]=call_interp2d(tab,lonin,latin,mskin $ 410 , lonout,latout,method= 'bilinear'$449 , lonout,latout,method="bilinear" $ 411 450 , OUTMASK_IND=mskout, SET_OUTMSKVAL=mskout) 412 451 t2mout[*,*,jt]=t2mout[*,*,jt]*mskout+(1.-mskout)*1.e20 … … 428 467 time_attr={units:units, long_name:long_name, time_origin:' 1957-JAN-01 00:00:00'} 429 468 globattr={source:'Data are from ECMWF ERA-Interim reanalysis', timerange:cda0+' - '+cda1} 430 ncdf_getatt, fullfilename_t2, 't2', units=units431 ncdf_getatt, fullfilename_t2, 't2', long_name=long_name469 ncdf_getatt, fullfilename_t2, erai_var, units=units 470 ncdf_getatt, fullfilename_t2, erai_var, long_name=long_name 432 471 t2m_attr={units:units, long_name:long_name, missing_value:1e20, short_name:'t2m',axis:'TYX'} 433 472 ; -
trunk/src/interp_erai_ws.pro
r180 r191 6 6 ; ================== 7 7 ; 8 ; .. function:: interp_erai_ws(yyyymmddb,yyyymmdde )8 ; .. function:: interp_erai_ws(yyyymmddb,yyyymmdde, eraitype) 9 9 ; 10 10 ; DESCRIPTION … … 13 13 ; Interpolation of u10 and v10 from ERA-I grid to OAFLUX grid 14 14 ; 15 ; If eraitype is set to 1, 15 16 ; :file:`${PROJECT_ID}/20c3m_erai_u10_TROP_1989_2009.nc` 16 17 ; containing … … 19 20 ; :ref:`compute_erai_daily_region_2d.sh`. 20 21 ; 22 ; If eraitype is set to 1, 21 23 ; :file:`${PROJECT_ID}/20c3m_erai_v10_TROP_1989_2009.nc` 22 24 ; containing … … 25 27 ; :ref:`compute_erai_daily_region_2d.sh`. 26 28 ; 29 ; If eraitype is set to 2, 30 ; :file:`${PROJECT_ID}/erai_u10_{yyyyb}_{yyyye}.nc` 31 ; containing 32 ; u10 from ERA-I 33 ; has been produced by 34 ; :ref:`concat_eraiy.sh`. 35 ; 36 ; If eraitype is set to 2, 37 ; :file:`${PROJECT_ID}/erai_v10_{yyyyb}_{yyyye}.nc` 38 ; containing 39 ; v10 from ERA-I 40 ; has been produced by 41 ; :ref:`concat_eraiy.sh`. 42 ; 27 43 ; :file:`${PROJECT_ID}/mask_oaflux_30N30S.nc` 28 44 ; containing OAFLUX grid … … 49 65 ; digraph interp_erai_ws { 50 66 ; 51 ; file_u10 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_u10_TROP_1989_2009.nc"]; 52 ; file_v10 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_v10_TROP_1989_2009.nc"]; 67 ; file_u10_erai1 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_u10_TROP_1989_2009.nc"]; 68 ; file_v10_erai1 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/20c3m_erai_v10_TROP_1989_2009.nc"]; 69 ; file_u10_erai2 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_u10_{yyyyb}_{yyyye}.nc"]; 70 ; file_v10_erai2 [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/erai_v10_{yyyyb}_{yyyye}.nc"]; 53 71 ; mask [shape=ellipse,fontname=Courier,label="${PROJECT_ID}/mask_oaflux_30N30S.nc"]; 54 72 ; file_out [shape=ellipse,fontname=Courier,label="${PROJECT_OD}/erai_ws_19890101_20091231_oafluxgrid.nc"]; … … 60 78 ; label="${PROJECT}/src/interp_erai_ws.pro"]; 61 79 ; 62 ; {file_u10 file_v10mask} -> {interp_erai_ws} -> {file_out}80 ; {file_u10_erai1 file_v10_erai1 file_u10_erai2 file_v10_erai2 mask} -> {interp_erai_ws} -> {file_out} 63 81 ; 64 82 ; } … … 72 90 ; 73 91 ; Used by :ref:`tropflux.sh` 92 ; 93 ; :ref:`compute_erai_daily_region_2d.sh` 94 ; :ref:`concat_eraiy.sh` 74 95 ; 75 96 ; :func:`report <saxo:report>` … … 87 108 ; ======== 88 109 ; 89 ; ::110 ; With ERA-I type 1:: 90 111 ; 91 112 ; .compile file_interp 92 113 ; yyyymmddb = 20000101L 93 114 ; yyyymmdde = 20001231L 94 ; result = interp_erai_ws(yyyymmddb, yyyymmdde) 115 ; eraitype = 1 116 ; result = interp_erai_ws(yyyymmddb, yyyymmdde, eraitype) 95 117 ; print, result 118 ; 119 ; With ERA-I type 2:: 120 ; 121 ; .compile file_interp 122 ; yyyymmddb = 20000101L 123 ; yyyymmdde = 20001231L 124 ; eraitype = 2 125 ; result = interp_erai_ws(yyyymmddb, yyyymmdde, eraitype) 96 126 ; 97 127 ; TODO … … 153 183 ; $URL: svn+ssh://pinsard@forge.ipsl.jussieu.fr/ipsl/forge/projets/tropflux/svn/trunk/src/interp_erai_ws.pro $ 154 184 ; 185 ; - fplod 20120704T113504Z cratos (Linux) 186 ; 187 ; * add eraitype parameter 188 ; * deal with time units (days vs hours) and time origin 189 ; 155 190 ; - fplod 20120320 156 191 ; … … 196 231 function interp_erai_ws $ 197 232 , yyyymmddb $ 198 , yyyymmdde 233 , yyyymmdde $ 234 , eraitype 199 235 ; 200 236 ;++compile_opt idl2, strictarrsubs, logical_predicate … … 205 241 result = -1 206 242 ; 207 usage = 'result = interp_erai_lwr(yyyymmddb, yyyymmdde )'243 usage = 'result = interp_erai_lwr(yyyymmddb, yyyymmdde, eraitype)' 208 244 nparam = N_PARAMS() 209 IF (nparam NE 2) THEN BEGIN245 IF (nparam NE 3) THEN BEGIN 210 246 ras = report(['Incorrect number of arguments.' $ 211 247 + '!C' $ … … 258 294 ; 259 295 ; build u10 data filename 260 filename='20c3m_erai_u10_TROP_1989_2009.nc' 296 IF eraitype EQ 1 THEN BEGIN 297 erai_var = 'u10' 298 filename='20c3m_erai_u10_TROP_1989_2009.nc' 299 tutoday = 24.d 300 tmporig = date2jul(19570101L,month=immo,day=iddo,year=iyyyyo) 301 endif 302 IF (eraitype eq 2) THEN BEGIN 303 erai_var = 'u10' 304 tmpb = date2jul(yyyymmddb,month=immb,day=iddb,year=iyyyyb) 305 tmpe = date2jul(yyyymmdde,month=imme,day=idde,year=iyyyye) 306 filename = 'erai_' + erai_var + '_' + string(iyyyyb,format='(I4.4)') + '_' + string(iyyyye,format='(I4.4)') + '.nc' 307 tutoday = 1.d 308 tmporig = date2jul(19500101L,month=immo,day=iddo,year=iyyyyo) 309 ENDIF 261 310 ; 262 311 ; check if this file exists … … 304 353 ; 305 354 initncdf, fullfilename 306 u10in=read_ncdf( "u10", yyyymmddb - .5d, yyyymmdde, file=fullfilename,/nostr)307 ; 308 timein= 24.d*(time-julday(1,1,1957,0,0,0))355 u10in=read_ncdf(erai_var, yyyymmddb - .5d, yyyymmdde, file=fullfilename,/nostr) 356 ; 357 timein=tutoday*(time-julday(immo,iddo,iyyyyo,0,0,0)) 309 358 jpt=n_elements(timein) 310 359 da=jul2date(time[0]) … … 316 365 ; 317 366 ; build v10 data filename 318 filename='20c3m_erai_v10_TROP_1989_2009.nc' 367 IF eraitype EQ 1 THEN BEGIN 368 erai_var = 'v10' 369 filename='20c3m_erai_v10_TROP_1989_2009.nc' 370 endif 371 IF (eraitype eq 2) THEN BEGIN 372 erai_var = 'v10' 373 tmpb = date2jul(yyyymmddb,month=immb,day=iddb,year=iyyyyb) 374 tmpe = date2jul(yyyymmdde,month=imme,day=idde,year=iyyyye) 375 filename = 'erai_' + erai_var + '_' + string(iyyyyb,format='(I4.4)') + '_' + string(iyyyye,format='(I4.4)') + '.nc' 376 ENDIF 319 377 ; 320 378 ; check if this file exists … … 328 386 ENDIF 329 387 initncdf, fullfilename 330 v10in=read_ncdf( "v10", yyyymmddb - .5d, yyyymmdde, file=fullfilename,/nostr)388 v10in=read_ncdf(erai_var, yyyymmddb - .5d, yyyymmdde, file=fullfilename,/nostr) 331 389 ; 332 390 initncdf, fullfilename … … 337 395 print, 'lon grid ',min(lonin),max(lonin),lonin[1]-lonin[0] 338 396 ; 339 timein= 24.d*(time-julday(1,1,1957,0,0,0))397 timein=tutoday*(time-julday(immo,iddo,iyyyyo,0,0,0)) 340 398 jptin=n_elements(timein) 341 399 da=jul2date(time[0]) -
trunk/src/tropflux.sh
r188 r191 15 15 # :: 16 16 # 17 # $ tropflux.sh -b yyyymmdd -e yyyymmdd17 # $ tropflux.sh [-f] -b yyyymmdd -e yyyymmdd 18 18 # 19 19 # DESCRIPTION … … 26 26 # .. option:: -b beginning date <yyyymmdd> 27 27 # .. option:: -e end date <yyyymmdd> 28 # .. option:: -f to overwrite existing files 28 29 # 29 30 # Some IDL programs are launched here using ${IDL_CMD} command … … 89 90 # 90 91 # Use : 92 # :ref:`concat_eraiy.sh`, 91 93 # :func:`oaflux_mask_30n30s`, :func:`interp_erai_t2m`, 92 94 # :func:`interp_erai_msl`, :func:`interp_erai_dewt`, :func:`interp_erai_lwr`, … … 96 98 # :func:`t2m_correction_ncdf`, :func:`ws_correction_ncdf`, 97 99 # :func:`tropflux_swr_dt`, :func:`tropflux_swr_nrt`, :func:`tropflux_swr_blnd`, 98 # :func:`tropflux_nrt_ cdf`,:func:`tropflux_wind_stress`100 # :func:`tropflux_nrt_ncdf`,:func:`tropflux_wind_stress` 99 101 # etc. 100 102 # … … 108 110 # make it work 109 111 # 110 # if yyyymmdd < 20071231, is it meaningfull to call all the fu cntions ?112 # if yyyymmdd < 20071231, is it meaningfull to call all the functions ? 111 113 # 112 114 # idl status = 0 even if not ok … … 120 122 # 121 123 # $URL$ 124 # 125 # - fplod 20120704T123711Z cratos (Linux) 126 # 127 # * typo 128 # * add usage of concat_eraiy.sh 129 # * really implement -f option 122 130 # 123 131 # - pinsard 20120329 … … 210 218 # default 211 219 debug=0 220 force=0 212 221 yyyymmddb=20000101 213 222 yyyymmdde=20000302 … … 234 243 yyyymmdde=${2} 235 244 shift 245 ;; 246 -f) 247 force=1 236 248 ;; 237 249 -h) … … 328 340 echo "" 1>> ${log} 329 341 # 342 # prepare era-i files 343 concat_eraiy.sh -b ${yyyymmddb} -e ${yyyymmdde} 344 # ++ test if ok see TODO in concat_eraiy.sh 330 345 cat >> ${PROJECT}/src/tropflux_${$}.pro << EOF 331 346 pro tropflux_${$} … … 335 350 ; define overwrite status 336 351 ; set to 1 to overwrite existing files 337 project_overwrite = 1 352 project_overwrite = ${force} 353 ; define eraitype 354 eraitype=2 338 355 ; 339 356 result = oaflux_mask_30n30s() … … 343 360 exit 344 361 ENDIF 345 result = interp_erai_dewt(${yyyymmddb}, ${yyyymmdde} )362 result = interp_erai_dewt(${yyyymmddb}, ${yyyymmdde}, eraitype) 346 363 IF result < 0 THEN BEGIN 347 364 msg = 'eee : pb after interp_erai_dewt ' + string(result) … … 349 366 exit 350 367 ENDIF 351 result = interp_erai_lwr(${yyyymmddb}, ${yyyymmdde} )368 result = interp_erai_lwr(${yyyymmddb}, ${yyyymmdde}, eraitype) 352 369 IF result < 0 THEN BEGIN 353 370 msg = 'eee : pb after interp_erai_lwr ' + string(result) … … 355 372 exit 356 373 ENDIF 357 result = interp_erai_msl(${yyyymmddb}, ${yyyymmdde} )374 result = interp_erai_msl(${yyyymmddb}, ${yyyymmdde}, eraitype) 358 375 IF result < 0 THEN BEGIN 359 376 msg = 'eee : pb after interp_erai_msl ' + string(result) … … 361 378 exit 362 379 ENDIF 363 result = interp_erai_sst(${yyyymmddb}, ${yyyymmdde} )380 result = interp_erai_sst(${yyyymmddb}, ${yyyymmdde}, eraitype) 364 381 IF result < 0 THEN BEGIN 365 382 msg = 'eee : pb after interp_erai_sst ' + string(result) … … 367 384 exit 368 385 ENDIF 369 result = interp_erai_t2m(${yyyymmddb}, ${yyyymmdde} )386 result = interp_erai_t2m(${yyyymmddb}, ${yyyymmdde}, eraitype) 370 387 IF result < 0 THEN BEGIN 371 388 msg = 'eee : pb after interp_erai_t2m ' + string(result) … … 373 390 exit 374 391 ENDIF 375 result = interp_erai_ws(${yyyymmddb}, ${yyyymmdde} )392 result = interp_erai_ws(${yyyymmddb}, ${yyyymmdde}, eraitype) 376 393 IF result < 0 THEN BEGIN 377 394 msg = 'eee : pb after interp_erai_ws ' + string(result) … … 453 470 exit 454 471 ENDIF 455 result = tropflux_nrt_nc f(${yyyymmddb}, ${yyyymmdde})472 result = tropflux_nrt_ncdf(${yyyymmddb}, ${yyyymmdde}) 456 473 IF result < 0 THEN BEGIN 457 474 msg = 'eee : pb after tropflux_nrt_ncdf' + string(result)
Note: See TracChangeset
for help on using the changeset viewer.