Changeset 48 for trunk/condmag_from_orca.pro
- Timestamp:
- 03/16/14 20:38:39 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/condmag_from_orca.pro
r41 r48 27 27 ; to specify on which grid we do the interpolation T, U, V 28 28 ; must belong to T, U or V 29 ; ++ je ne sais pas comment ce param ètre doit intervenir29 ; ++ je ne sais pas comment ce paramÚtre doit intervenir 30 30 ; 31 31 ; @keyword DRAKKAR_EXP … … 33 33 ; only used when orcares = ORCA025 34 34 ; must be G42 ++ G70 35 ; ++ je ne sais pas comment ce param ètre doit intervenir a priori36 ; la partie mesh est la m ême pour toutes les expériences mais attention37 ; pas forc ément le mask.35 ; ++ je ne sais pas comment ce paramÚtre doit intervenir a priori 36 ; la partie mesh est la même pour toutes les expériences mais attention 37 ; pas forcément le mask. 38 38 ; 39 39 ; @keyword PERF … … 88 88 PRO condmag_from_orca, orcares, method, gridtype, DRAKKAR_EXP = drakkar_exp, PERF = perf 89 89 ; 90 compile_opt idl2, strictarrsubs 91 ; 92 IF keyword_set(perf) EQ 1 THEN BEGIN 93 msg = 'iii : start profiler' 90 compile_opt idl2, strictarrsubs 91 ; 92 IF keyword_set(perf) EQ 1 THEN BEGIN 93 msg = 'iii : start profiler' 94 ras = report(msg) 95 ;PROFILER, /SYSTEM & PROFILER 96 PROFILER, /SYSTEM & PROFILER 97 ; ++ ne tracera que les modules compilés au moment de l'appel à cette commande 98 ; donc ++ regarder si on a bien tout et si on doit ajouter des PROFILER,toto dans 99 ; tous les modules 100 ENDIF 101 ; 102 ;---- 103 ; check input parameters 104 ;---- 105 ; 106 ; check orcares definition 107 ; 108 CASE orcares OF 109 'ORCA2': BEGIN 110 msg = 'iii : valid orcares parameter = ' + orcares 111 ras = report(msg) 112 filename_oce = 'meshmask_bab.nc' 113 IF keyword_set(DRAKKAR_EXP) THEN BEGIN 114 msg = 'www : unused DRAKKAR_EXP keyword = ' + drakkar_exp 115 ras = report(msg) 116 END 117 END 118 'ORCA025': BEGIN 119 msg = 'iii : valid orcares parameter = ' + orcares 120 ras = report(msg) 121 IF keyword_set(DRAKKAR_EXP) THEN BEGIN 122 msg = 'iii : DRAKKAR_EXP keyword set' 123 ras = report(msg) 124 msg = 'iii : DRAKKAR_EXP = ' + drakkar_exp 125 ras = report(msg) 126 CASE drakkar_exp OF 127 'G42' : BEGIN 128 msg = 'iii : valid DRAKKAR_EXP keyword = ' + drakkar_exp 129 ras = report(msg) 130 END 131 'G70' : BEGIN 132 msg = 'iii : valid DRAKKAR_EXP keyword = ' + drakkar_exp 133 ras = report(msg) 134 END 135 ELSE : BEGIN 136 msg = 'eee : invalid DRAKKAR_EXP keyword = ' + drakkar_exp 137 ras = report(msg) 138 RETURN 139 END 140 ENDCASE 141 filename_oce = orcares + '-' + drakkar_exp + '_mesh_hgr.nc' 142 ENDIF ELSE BEGIN 143 msg = 'eee : unset DRAKKAR_EXP keyword' 144 ras = report(msg) 145 msg = 'eee : orcares must be G42 or G70' 146 ras = report(msg) 147 RETURN 148 ENDELSE 149 END 150 ELSE : BEGIN 151 msg = 'eee : invalid orcares parameter = ' + orcares 152 ras = report(msg) 153 msg = 'eee : orcares must be ORCA2 or ORCA025' 154 ras = report(msg) 155 RETURN 156 END 157 ENDCASE 158 ; 159 ; check method definition 160 CASE method OF 161 'bilinear': BEGIN 162 msg = 'iii : valid method parameter = ' + method 163 ras = report(msg) 164 END 165 ELSE : BEGIN 166 msg = 'eee : invalid method parameter = ' + method 167 ras = report(msg) 168 msg = 'eee : method must be bilinear' 169 ras = report(msg) 170 RETURN 171 END 172 ENDCASE 173 ; 174 ; check gridtype definition 175 gridtype = strupcase(gridtype) 176 CASE gridtype OF 177 'T' : BEGIN 178 msg = 'iii : valid gridtype parameter = ' + gridtype 179 ras = report(msg) 180 END 181 'U' : BEGIN 182 msg = 'iii : valid gridtype parameter = ' + gridtype 183 ras = report(msg) 184 END 185 'V' : BEGIN 186 msg = 'iii : valid gridtype parameter = ' + gridtype 187 ras = report(msg) 188 END 189 ELSE : BEGIN 190 msg = 'eee : invalid gridtype parameter = ' + gridtype 191 ras = report(msg) 192 msg = 'eee : gridtype must be T, U or V' 193 ras = report(msg) 194 RETURN 195 END 196 ENDCASE 197 ; 198 ; check for input files 199 ; 200 ; test if ${GEOMAG_ID} defined 201 geomag_id_env=GETENV('GEOMAG_ID') 202 CASE geomag_id_env OF 203 '' : BEGIN 204 msg = 'eee : ${GEOMAG_ID} is not defined' 205 ras = report(msg) 206 RETURN 207 END 208 ELSE: BEGIN 209 msg = 'iii : ${GEOMAG_ID} is ' + geomag_id_env 210 ras = report(msg) 211 END 212 ENDCASE 213 ; 214 iodirin = isadirectory(geomag_id_env) 215 ; 216 ; existence and protection of ${GEOMAG_ID} 217 IF (FILE_TEST(iodirin, /DIRECTORY,/EXECUTABLE , /READ) EQ 0) THEN BEGIN 218 msg = 'eee : the directory' + iodirin + ' is not accessible.' 219 ras = report(msg) 220 RETURN 221 ENDIF 222 ; 223 ; build input filenames 224 filename_cond_sed = 'cond_sed' + '_' + orcares +'.nc' 225 fullfilename_cond_sed = iodirin + filename_cond_sed 226 ; 227 ; check if this file exists 228 fullfilename_cond_sed = isafile(iodirin + filename_cond_sed, NEW=0,/MUST_EXIST) 229 IF fullfilename_cond_sed[0] EQ '' THEN BEGIN 230 msg = 'eee : the file ' + fullfilename_cond_sed + ' was not found.' 231 ras = report(msg) 232 RETURN 233 ENDIF 234 ; 235 ; protection 236 IF (FILE_TEST(fullfilename_cond_sed[0], /READ) EQ 0) THEN BEGIN 237 msg = 'eee : the file ' + fullfilename_cond_sed[0] + ' is not readable.' 238 ras = report(msg) 239 RETURN 240 ENDIF 241 ; 242 filename_Br = 'Br' + '_' + orcares +'.nc' 243 fullfilename_Br = iodirin + filename_Br 244 ; 245 ; check if this file exists 246 fullfilename_Br = isafile(iodirin + filename_Br, NEW=0,/MUST_EXIST) 247 IF fullfilename_Br[0] EQ '' THEN BEGIN 248 msg = 'eee : the file ' + fullfilename_Br + ' was not found.' 249 ras = report(msg) 250 RETURN 251 ENDIF 252 ; 253 ; protection 254 IF (FILE_TEST(fullfilename_Br[0], /READ) EQ 0) THEN BEGIN 255 msg = 'eee : the file ' + fullfilename_Br[0] + ' is not readable.' 256 ras = report(msg) 257 RETURN 258 ENDIF 259 ; 260 ; mesh mask 261 ; check if this file exists 262 fullfilename_oce = isafile(iodirin + filename_oce, NEW=0, /MUST_EXIST, $ 263 RECURSIVE=0) 264 IF fullfilename_oce[0] EQ '' THEN BEGIN 265 msg = 'eee : the file ' + fullfilename_oce + ' was not found.' 266 ras = report(msg) 267 RETURN 268 ENDIF 269 ; 270 ; protection 271 IF (FILE_TEST(fullfilename_oce[0], /READ) EQ 0) THEN BEGIN 272 msg = 'eee : the file ' + fullfilename_oce[0] + ' is not readable.' 273 ras = report(msg) 274 RETURN 275 ENDIF 276 ; 277 filename_condmag = 'condmag.nc' 278 fullfilename_condmag = iodirin + filename_condmag 279 ; 280 ; check if this file exists 281 fullfilename_condmag = isafile(iodirin + filename_condmag, NEW=0,/MUST_EXIST) 282 IF fullfilename_condmag[0] EQ '' THEN BEGIN 283 msg = 'eee : the file ' + fullfilename_condmag + ' was not found.' 284 ras = report(msg) 285 RETURN 286 ENDIF 287 ; 288 ; protection 289 IF (FILE_TEST(fullfilename_condmag[0], /READ) EQ 0) THEN BEGIN 290 msg = 'eee : the file ' + fullfilename_condmag[0] + ' is not readable.' 291 ras = report(msg) 292 RETURN 293 ENDIF 294 ; 295 ; test if ${GEOMAG_OD} defined 296 geomag_od_env=GETENV('GEOMAG_OD') 297 CASE geomag_od_env OF 298 '' : BEGIN 299 msg = 'eee : ${GEOMAG_OD} is not defined' 300 ras = report(msg) 301 RETURN 302 END 303 ELSE: BEGIN 304 msg = 'iii : ${GEOMAG_OD} is ' + geomag_od_env 305 ras = report(msg) 306 END 307 ENDCASE 308 ; 309 ; check if output data will be possible 310 iodirout = isadirectory(geomag_od_env) 311 ; 312 ; existence and protection 313 IF (FILE_TEST(iodirout, /DIRECTORY,/WRITE) EQ 0) THEN BEGIN 314 msg = 'eee : the directory' + iodirout + ' was not found.' 315 ras = report(msg) 316 RETURN 317 ENDIF 318 ; 319 ; build output filename 320 filename = 'condmag_from_' + orcares +'.nc' 321 fullfilename = iodirout + filename 322 ; 323 ; in order to avoid unexpected overwritten 324 IF (FILE_TEST(fullfilename) EQ 1) THEN BEGIN 325 msg = 'eee : the file ' + fullfilename + ' already exists.' 326 ras = report(msg) 327 RETURN 328 ENDIF 329 ; 330 ;---- 331 ; Oceanic grid parameters ie input grid + mask 332 ;---- 333 ; 334 initocemesh, orcares, DRAKKAR_EXP = drakkar_exp 335 ; 336 ;---- 337 ; read data to interpolate on regular grid 338 ;---- 339 ; 340 a=read_ncdf('cond_sed', 0, /timestep, $ 341 file = fullfilename_cond_sed[0], /nostruct) 342 msg = 'iii : ' + fullfilename_cond_sed[0] + ' opened for read' 94 343 ras = report(msg) 95 ;PROFILER, /SYSTEM & PROFILER 96 PROFILER, /SYSTEM & PROFILER 97 ; ++ ne tracera que les modules compilés au moment de l'appel à cette commande 98 ; donc ++ regarder si on a bien tout et si on doit ajouter des PROFILER,toto dans 99 ; tous les modules 100 ENDIF 101 ; 102 ;---- 103 ; check input parameters 104 ;---- 105 ; 106 ; check orcares definition 107 ; 108 CASE orcares OF 109 'ORCA2': BEGIN 110 msg = 'iii : valid orcares parameter = ' + orcares 111 ras = report(msg) 112 filename_oce = 'meshmask_bab.nc' 113 IF keyword_set(DRAKKAR_EXP) THEN BEGIN 114 msg = 'www : unused DRAKKAR_EXP keyword = ' + drakkar_exp 115 ras = report(msg) 116 END 117 END 118 'ORCA025': BEGIN 119 msg = 'iii : valid orcares parameter = ' + orcares 120 ras = report(msg) 121 IF keyword_set(DRAKKAR_EXP) THEN BEGIN 122 msg = 'iii : DRAKKAR_EXP keyword set' 123 ras = report(msg) 124 msg = 'iii : DRAKKAR_EXP = ' + drakkar_exp 125 ras = report(msg) 126 CASE drakkar_exp OF 127 'G42' : BEGIN 128 msg = 'iii : valid DRAKKAR_EXP keyword = ' + drakkar_exp 129 ras = report(msg) 130 END 131 'G70' : BEGIN 132 msg = 'iii : valid DRAKKAR_EXP keyword = ' + drakkar_exp 133 ras = report(msg) 134 END 135 ELSE : BEGIN 136 msg = 'eee : invalid DRAKKAR_EXP keyword = ' + drakkar_exp 137 ras = report(msg) 138 RETURN 139 END 140 ENDCASE 141 filename_oce = orcares + '-' + drakkar_exp + '_mesh_hgr.nc' 142 ENDIF ELSE BEGIN 143 msg = 'eee : unset DRAKKAR_EXP keyword' 144 ras = report(msg) 145 msg = 'eee : orcares must be G42 or G70' 146 ras = report(msg) 147 RETURN 148 ENDELSE 149 END 150 ELSE : BEGIN 151 msg = 'eee : invalid orcares parameter = ' + orcares 152 ras = report(msg) 153 msg = 'eee : orcares must be ORCA2 or ORCA025' 154 ras = report(msg) 155 RETURN 156 END 157 ENDCASE 158 ; 159 ; check method definition 160 CASE method OF 161 'bilinear': BEGIN 162 msg = 'iii : valid method parameter = ' + method 163 ras = report(msg) 164 END 165 ELSE : BEGIN 166 msg = 'eee : invalid method parameter = ' + method 167 ras = report(msg) 168 msg = 'eee : method must be bilinear' 169 ras = report(msg) 170 RETURN 171 END 172 ENDCASE 173 ; 174 ; check gridtype definition 175 gridtype = strupcase(gridtype) 176 CASE gridtype OF 177 'T' : BEGIN 178 msg = 'iii : valid gridtype parameter = ' + gridtype 179 ras = report(msg) 180 END 181 'U' : BEGIN 182 msg = 'iii : valid gridtype parameter = ' + gridtype 183 ras = report(msg) 184 END 185 'V' : BEGIN 186 msg = 'iii : valid gridtype parameter = ' + gridtype 187 ras = report(msg) 188 END 189 ELSE: BEGIN 190 msg = 'eee : invalid gridtype parameter = ' + gridtype 191 ras = report(msg) 192 msg = 'eee : gridtype must be T, U or V' 193 ras = report(msg) 194 RETURN 195 END 196 ENDCASE 197 ; 198 ; check for input files 199 ; 200 ; test if ${GEOMAG_ID} defined 201 geomag_id_env=GETENV('GEOMAG_ID') 202 CASE geomag_id_env OF 203 '' : BEGIN 204 msg = 'eee : ${GEOMAG_ID} is not defined' 205 ras = report(msg) 206 RETURN 207 END 208 ELSE: BEGIN 209 msg = 'iii : ${GEOMAG_ID} is ' + geomag_id_env 210 ras = report(msg) 211 END 212 ENDCASE 213 ; 214 iodirin = isadirectory(geomag_id_env) 215 ; 216 ; existence and protection of ${GEOMAG_ID} 217 IF (FILE_TEST(iodirin, /DIRECTORY,/EXECUTABLE , /READ) EQ 0) THEN BEGIN 218 msg = 'eee : the directory' + iodirin + ' is not accessible.' 219 ras = report(msg) 220 RETURN 221 ENDIF 222 ; 223 ; build input filenames 224 filename_cond_sed = 'cond_sed' + '_' + orcares +'.nc' 225 fullfilename_cond_sed = iodirin + filename_cond_sed 226 ; 227 ; check if this file exists 228 fullfilename_cond_sed = isafile(iodirin + filename_cond_sed, NEW=0,/MUST_EXIST) 229 IF fullfilename_cond_sed[0] EQ '' THEN BEGIN 230 msg = 'eee : the file ' + fullfilename_cond_sed + ' was not found.' 231 ras = report(msg) 232 RETURN 233 ENDIF 234 ; 235 ; protection 236 IF (FILE_TEST(fullfilename_cond_sed[0], /READ) EQ 0) THEN BEGIN 237 msg = 'eee : the file ' + fullfilename_cond_sed[0] + ' is not readable.' 238 ras = report(msg) 239 RETURN 240 ENDIF 241 ; 242 filename_Br = 'Br' + '_' + orcares +'.nc' 243 fullfilename_Br = iodirin + filename_Br 244 ; 245 ; check if this file exists 246 fullfilename_Br = isafile(iodirin + filename_Br, NEW=0,/MUST_EXIST) 247 IF fullfilename_Br[0] EQ '' THEN BEGIN 248 msg = 'eee : the file ' + fullfilename_Br + ' was not found.' 249 ras = report(msg) 250 RETURN 251 ENDIF 252 ; 253 ; protection 254 IF (FILE_TEST(fullfilename_Br[0], /READ) EQ 0) THEN BEGIN 255 msg = 'eee : the file ' + fullfilename_Br[0] + ' is not readable.' 256 ras = report(msg) 257 RETURN 258 ENDIF 259 ; 260 ; mesh mask 261 ; check if this file exists 262 fullfilename_oce = isafile(iodirin + filename_oce, NEW=0, /MUST_EXIST, $ 263 RECURSIVE=0) 264 IF fullfilename_oce[0] EQ '' THEN BEGIN 265 msg = 'eee : the file ' + fullfilename_oce + ' was not found.' 266 ras = report(msg) 267 RETURN 268 ENDIF 269 ; 270 ; protection 271 IF (FILE_TEST(fullfilename_oce[0], /READ) EQ 0) THEN BEGIN 272 msg = 'eee : the file ' + fullfilename_oce[0] + ' is not readable.' 273 ras = report(msg) 274 RETURN 275 ENDIF 276 ; 277 filename_condmag = 'condmag.nc' 278 fullfilename_condmag = iodirin + filename_condmag 279 ; 280 ; check if this file exists 281 fullfilename_condmag = isafile(iodirin + filename_condmag, NEW=0,/MUST_EXIST) 282 IF fullfilename_condmag[0] EQ '' THEN BEGIN 283 msg = 'eee : the file ' + fullfilename_condmag + ' was not found.' 284 ras = report(msg) 285 RETURN 286 ENDIF 287 ; 288 ; protection 289 IF (FILE_TEST(fullfilename_condmag[0], /READ) EQ 0) THEN BEGIN 290 msg = 'eee : the file ' + fullfilename_condmag[0] + ' is not readable.' 291 ras = report(msg) 292 RETURN 293 ENDIF 294 ; 295 ; test if ${GEOMAG_OD} defined 296 geomag_od_env=GETENV('GEOMAG_OD') 297 CASE geomag_od_env OF 298 '' : BEGIN 299 msg = 'eee : ${GEOMAG_OD} is not defined' 300 ras = report(msg) 301 RETURN 302 END 303 ELSE: BEGIN 304 msg = 'iii : ${GEOMAG_OD} is ' + geomag_od_env 305 ras = report(msg) 306 END 307 ENDCASE 308 ; 309 ; check if output data will be possible 310 iodirout = isadirectory(geomag_od_env) 311 ; 312 ; existence and protection 313 IF (FILE_TEST(iodirout, /DIRECTORY,/WRITE) EQ 0) THEN BEGIN 314 msg = 'eee : the directory' + iodirout + ' was not found.' 315 ras = report(msg) 316 RETURN 317 ENDIF 318 ; 319 ; build output filename 320 filename = 'condmag_from_' + orcares +'.nc' 321 fullfilename = iodirout + filename 322 ; 323 ; in order to avoid unexpected overwritten 324 IF (FILE_TEST(fullfilename) EQ 1) THEN BEGIN 325 msg = 'eee : the file ' + fullfilename + ' already exists.' 326 ras = report(msg) 327 RETURN 328 ENDIF 329 ; 330 ;---- 331 ; Oceanic grid parameters ie input grid + mask 332 ;---- 333 ; 334 initocemesh, orcares, DRAKKAR_EXP = drakkar_exp 335 ; 336 ;---- 337 ; read data to interpolate on regular grid 338 ;---- 339 ; 340 a=read_ncdf('cond_sed', 0, /timestep, $ 341 file = fullfilename_cond_sed[0], /nostruct) 342 msg = 'iii : ' + fullfilename_cond_sed[0] + ' opened for read' 343 ras = report(msg) 344 ; mask and limite cond_sed on values below 5000 ++ 345 cond_sedin = extrapsmooth(a, tmask[*, *, 0]*(a le 5000), /x_periodic) 346 ; 347 b = read_ncdf('Br', 0, /timestep, $ 348 file = fullfilename_Br[0], /nostruct) 349 msg = 'iii : ' + fullfilename_Br[0] + ' opened for read' 350 ras = report(msg) 351 ; mask and limit Br on values below/above ++ 352 Brin = extrapsmooth(b, tmask[*, *, 0]*(b), /x_periodic) 353 ; 354 glamin = glamt 355 gphiin = gphit 356 maskin = tmask[*, *, 0] 357 ; 358 ;--- 359 ; conductivity and magnetic field grid parameters ie output grid 360 ;---- 344 ; mask and limite cond_sed on values below 5000 ++ 345 cond_sedin = extrapsmooth(a, tmask[*, *, 0]*(a le 5000), /x_periodic) 346 ; 347 b = read_ncdf('Br', 0, /timestep, $ 348 file = fullfilename_Br[0], /nostruct) 349 msg = 'iii : ' + fullfilename_Br[0] + ' opened for read' 350 ras = report(msg) 351 ; mask and limit Br on values below/above ++ 352 Brin = extrapsmooth(b, tmask[*, *, 0]*(b), /x_periodic) 353 ; 354 glamin = glamt 355 gphiin = gphit 356 maskin = tmask[*, *, 0] 357 ; 358 ;--- 359 ; conductivity and magnetic field grid parameters ie output grid 360 ;---- 361 361 362 initncdf, fullfilename_condmag[0], xaxisname = 'lo', yaxisname = 'la'363 msg = 'iii : ' + fullfilename_condmag[0] + ' opened for read'364 ras = report(msg)365 ;366 glamout = glamt367 gphiout = gphit368 ;362 initncdf, fullfilename_condmag[0], xaxisname = 'lo', yaxisname = 'la' 363 msg = 'iii : ' + fullfilename_condmag[0] + ' opened for read' 364 ras = report(msg) 365 ; 366 glamout = glamt 367 gphiout = gphit 368 ; 369 369 370 dimidxout = jpi371 dimidyout = jpj372 ;373 ;---------------374 ; Interpolate375 ;---------------376 ;++ cond_sedout = fromirr('bilinear', cond_sedin, glamin, gphiin, maskin, glamout, gphiout, -1, WEIG = weights, ADDR = addresses)370 dimidxout = jpi 371 dimidyout = jpj 372 ; 373 ;--------------- 374 ; Interpolate 375 ;--------------- 376 ;++ cond_sedout = fromirr('bilinear', cond_sedin, glamin, gphiin, maskin, glamout, gphiout, -1, WEIG = weights, ADDR = addresses) 377 377 cond_sedout=dindgen(dimidxout,dimidyout) 378 ;Brout=fromirr('bilinear', Brin, weights, addresses) ; ++ pb doc % Variable is undefined: LONOUT379 ;++Brout = fromirr('bilinear', Brin, glamin, gphiin, maskin, glamout, gphiout, -1, WEIG = weights, ADDR = addresses)380 ;378 ;Brout=fromirr('bilinear', Brin, weights, addresses) ; ++ pb doc % Variable is undefined: LONOUT 379 ;++Brout = fromirr('bilinear', Brin, glamin, gphiin, maskin, glamout, gphiout, -1, WEIG = weights, ADDR = addresses) 380 ; 381 381 Brout=dindgen(dimidxout,dimidyout) 382 382 383 ;384 ;---------------385 ; Produce outputs386 ;---------------387 ;388 netcdf_id = NCDF_CREATE(fullfilename, /clobber)389 NCDF_CONTROL, netcdf_id, /NOFILL390 ;391 ; dimension392 dimidxout = NCDF_DIMDEF(netcdf_id, 'la' , jpi)393 dimidyout = NCDF_DIMDEF(netcdf_id, 'lo' , jpj)394 ;395 ; global attributes396 NCDF_ATTPUT, netcdf_id, 'Conventions', 'GDT 1.2', /GLOBAL ; ++ conformite397 ;++ NCDF_ATTPUT, netcdf_id, 'file_name' , filename, /GLOBAL398 ;++ NCDF_ATTPUT, netcdf_id, 'Title' , title, /GLOBAL399 ;400 ; declaration of variables401 varid = lonarr(4)402 ;403 varid[0] = NCDF_VARDEF(netcdf_id, 'la' , [dimidxout], /FLOAT)404 varid[1] = NCDF_VARDEF(netcdf_id, 'lo' , [dimidyout], /FLOAT)405 varid[2] = NCDF_VARDEF(netcdf_id, 'cond_sed' , [dimidxout, dimidyout], /FLOAT)406 NCDF_ATTPUT, netcdf_id, varid[2], 'units' , 'siemens'407 varid[3] = NCDF_VARDEF(netcdf_id, 'Br' , [dimidxout, dimidyout], /FLOAT)408 NCDF_ATTPUT, netcdf_id, varid[3], 'units' , 'siemens'409 ;410 NCDF_CONTROL, netcdf_id, /ENDEF411 ;412 NCDF_VARPUT, netcdf_id, varid[0], dindgen(dimidxout,dimidyout)413 NCDF_VARPUT, netcdf_id, varid[1], dindgen(dimidyout,dimidyout)414 ;415 ; write the data416 ;417 NCDF_VARPUT, netcdf_id, varid[2], cond_sedout418 ;++ NCDF_VARPUT, netcdf_id, 'Br', Brout419 ;---------------------------420 ; close the netcdf files421 NCDF_CLOSE, netcdf_id422 ;423 msg = 'iii : ' + fullfilename + ' created'424 ras = report(msg)425 ;426 IF keyword_set(perf) EQ 1 THEN BEGIN427 msg = 'iii : report profiler results'428 ras = report(msg)429 ; ++ tri par ordre alpha , par ordre de pourcentage croissant ou décroissant430 ; +++ d'utilisation431 profiler,/REPORT432 ; shut down all profiling (according to433 ; http://www.dfanning.com/code_tips/whyslow.html)434 profiler, /CLEAR, /SYSTEM435 profiler, /CLEAR, /RESET383 ; 384 ;--------------- 385 ; Produce outputs 386 ;--------------- 387 ; 388 netcdf_id = NCDF_CREATE(fullfilename, /clobber) 389 NCDF_CONTROL, netcdf_id, /NOFILL 390 ; 391 ; dimension 392 dimidxout = NCDF_DIMDEF(netcdf_id, 'la' , jpi) 393 dimidyout = NCDF_DIMDEF(netcdf_id, 'lo' , jpj) 394 ; 395 ; global attributes 396 NCDF_ATTPUT, netcdf_id, 'Conventions', 'GDT 1.2', /GLOBAL ; ++ conformite 397 ;++ NCDF_ATTPUT, netcdf_id, 'file_name' , filename, /GLOBAL 398 ;++ NCDF_ATTPUT, netcdf_id, 'Title' , title, /GLOBAL 399 ; 400 ; declaration of variables 401 varid = lonarr(4) 402 ; 403 varid[0] = NCDF_VARDEF(netcdf_id, 'la' , [dimidxout], /FLOAT) 404 varid[1] = NCDF_VARDEF(netcdf_id, 'lo' , [dimidyout], /FLOAT) 405 varid[2] = NCDF_VARDEF(netcdf_id, 'cond_sed' , [dimidxout, dimidyout], /FLOAT) 406 NCDF_ATTPUT, netcdf_id, varid[2], 'units' , 'siemens' 407 varid[3] = NCDF_VARDEF(netcdf_id, 'Br' , [dimidxout, dimidyout], /FLOAT) 408 NCDF_ATTPUT, netcdf_id, varid[3], 'units' , 'siemens' 409 ; 410 NCDF_CONTROL, netcdf_id, /ENDEF 411 ; 412 NCDF_VARPUT, netcdf_id, varid[0], dindgen(dimidxout,dimidyout) 413 NCDF_VARPUT, netcdf_id, varid[1], dindgen(dimidyout,dimidyout) 414 ; 415 ; write the data 416 ; 417 NCDF_VARPUT, netcdf_id, varid[2], cond_sedout 418 ;++ NCDF_VARPUT, netcdf_id, 'Br', Brout 419 ;--------------------------- 420 ; close the netcdf files 421 NCDF_CLOSE, netcdf_id 422 ; 423 msg = 'iii : ' + fullfilename + ' created' 424 ras = report(msg) 425 ; 426 IF keyword_set(perf) EQ 1 THEN BEGIN 427 msg = 'iii : report profiler results' 428 ras = report(msg) 429 ; ++ tri par ordre alpha , par ordre de pourcentage croissant ou décroissant 430 ; +++ d'utilisation 431 profiler,/REPORT 432 ; shut down all profiling (according to 433 ; http://www.dfanning.com/code_tips/whyslow.html) 434 profiler, /CLEAR, /SYSTEM 435 profiler, /CLEAR, /RESET 436 436 ENDIF 437 ;437 ; 438 438 END
Note: See TracChangeset
for help on using the changeset viewer.