- Timestamp:
- 06/05/08 15:06:39 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SRC/Grid/ncdf_meshread.pro
r327 r359 403 403 ENDELSE 404 404 ; boundary conditions used to compute umask. 405 varinq = ncdf_varinq(cdfid, 'umask') 406 name = varinq.name 407 nx = 1L 408 firstx = jpi-1 409 lastx = jpi-1 410 IF micromask NE -1 THEN BEGIN 411 @read_ncdf_varget 412 umaskred = reform(binary(res), 8*ny, jpk, /over) 413 umaskred = umaskred[yyy1 MOD 8: 8*ny - 8 + yyy2 MOD 8, *] 414 IF key_stridetrue[1] NE 1 THEN umaskred = temporary(umaskred[yind, *]) 415 ENDIF ELSE BEGIN 416 @read_ncdf_varget 417 umaskred = reform(byte(res), /over) 418 ENDELSE 405 IF ncdf_varid(cdfid, 'umask') NE -1 THEN BEGIN 406 varinq = ncdf_varinq(cdfid, 'umask') 407 name = varinq.name 408 nx = 1L 409 firstx = jpi-1 410 lastx = jpi-1 411 IF micromask NE -1 THEN BEGIN 412 @read_ncdf_varget 413 umaskred = reform(binary(res), 8*ny, jpk, /over) 414 umaskred = umaskred[yyy1 MOD 8: 8*ny - 8 + yyy2 MOD 8, *] 415 IF key_stridetrue[1] NE 1 THEN umaskred = temporary(umaskred[yind, *]) 416 ENDIF ELSE BEGIN 417 @read_ncdf_varget 418 umaskred = reform(byte(res), /over) 419 ENDELSE 420 ENDIF ELSE umaskred = bytarr(jpj, jpk) 419 421 ; boundary conditions used to compute fmask (1). 420 varinq = ncdf_varinq(cdfid, 'fmask') 421 name = varinq.name 422 IF micromask NE -1 THEN BEGIN 423 @read_ncdf_varget 424 fmaskredy = reform(binary(res), 8*ny, jpk, /over) 425 fmaskredy = fmaskredy[yyy1 MOD 8: 8*ny - 8 + yyy2 MOD 8, *] 426 IF key_stridetrue[1] NE 1 THEN fmaskredy = temporary(fmaskredy[yind, *]) 427 ENDIF ELSE BEGIN 428 @read_ncdf_varget 429 fmaskredy = reform(byte(res), /over) 430 fmaskredy = temporary(fmaskredy) MOD 2 431 ENDELSE 422 IF ncdf_varid(cdfid, 'fmask') NE -1 THEN BEGIN 423 varinq = ncdf_varinq(cdfid, 'fmask') 424 name = varinq.name 425 IF micromask NE -1 THEN BEGIN 426 @read_ncdf_varget 427 fmaskredy = reform(binary(res), 8*ny, jpk, /over) 428 fmaskredy = fmaskredy[yyy1 MOD 8: 8*ny - 8 + yyy2 MOD 8, *] 429 IF key_stridetrue[1] NE 1 THEN fmaskredy = temporary(fmaskredy[yind, *]) 430 ENDIF ELSE BEGIN 431 @read_ncdf_varget 432 fmaskredy = reform(byte(res), /over) 433 fmaskredy = temporary(fmaskredy) MOD 2 434 ENDELSE 435 ENDIF ELSE fmaskredy = bytarr(jpj, jpk) 432 436 ; boundary conditions used to compute vmask 433 varinq = ncdf_varinq(cdfid, 'vmask') 434 name = varinq.name 435 nx = jpi 436 firstx = 0L 437 lastx = jpi-1L 438 ny = 1L 439 firsty = jpj-1 440 lasty = jpj-1 441 IF micromask NE -1 THEN BEGIN 442 yyy1 = firsty*key_stridetrue[1]+iyminmeshtrue 443 yyy2 = lasty*key_stridetrue[1]+iyminmeshtrue 444 iyminmesh = 0L 445 firsty = yyy1/8 446 lasty = yyy2/8 447 ny = lasty-firsty+1 448 @read_ncdf_varget 449 IF jpk EQ 1 THEN res = reform(res, jpi, 1, jpk, /over) 450 vmaskred = transpose(temporary(res), [1, 0, 2]) 451 vmaskred = reform(binary(vmaskred), 8*ny, nx, nz, /over) 452 vmaskred = transpose(temporary(vmaskred), [1, 0, 2]) 453 vmaskred = reform(vmaskred[*, yyy1 MOD 8: 8*ny - 8 + yyy2 MOD 8, *]) 454 ENDIF ELSE BEGIN 455 @read_ncdf_varget 456 vmaskred = reform(byte(res), /over) 457 ENDELSE 437 IF ncdf_varid(cdfid, 'vmask') NE -1 THEN BEGIN 438 varinq = ncdf_varinq(cdfid, 'vmask') 439 name = varinq.name 440 nx = jpi 441 firstx = 0L 442 lastx = jpi-1L 443 ny = 1L 444 firsty = jpj-1 445 lasty = jpj-1 446 IF micromask NE -1 THEN BEGIN 447 yyy1 = firsty*key_stridetrue[1]+iyminmeshtrue 448 yyy2 = lasty*key_stridetrue[1]+iyminmeshtrue 449 iyminmesh = 0L 450 firsty = yyy1/8 451 lasty = yyy2/8 452 ny = lasty-firsty+1 453 @read_ncdf_varget 454 IF jpk EQ 1 THEN res = reform(res, jpi, 1, jpk, /over) 455 vmaskred = transpose(temporary(res), [1, 0, 2]) 456 vmaskred = reform(binary(vmaskred), 8*ny, nx, nz, /over) 457 vmaskred = transpose(temporary(vmaskred), [1, 0, 2]) 458 vmaskred = reform(vmaskred[*, yyy1 MOD 8: 8*ny - 8 + yyy2 MOD 8, *]) 459 ENDIF ELSE BEGIN 460 @read_ncdf_varget 461 vmaskred = reform(byte(res), /over) 462 ENDELSE 463 ENDIF ELSE vmaskred = bytarr(jpi, jpk) 458 464 ; boundary conditions used to compute fmask (2). 459 varinq = ncdf_varinq(cdfid, 'fmask') 460 name = varinq.name 461 IF micromask NE -1 THEN BEGIN 462 @read_ncdf_varget 463 IF jpk EQ 1 THEN res = reform(res, jpi, 1, jpk, /over) 464 fmaskredx = transpose(temporary(res), [1, 0, 2]) 465 fmaskredx = reform(binary(fmaskredx), 8*ny, nx, nz, /over) 466 fmaskredx = transpose(temporary(fmaskredx), [1, 0, 2]) 467 fmaskredx = reform(fmaskredx[*, yyy1 MOD 8: 8*ny - 8 + yyy2 MOD 8, *]) 468 ; 469 iyminmesh = iyminmeshtrue 470 key_stride = key_stridetrue 471 ENDIF ELSE BEGIN 472 @read_ncdf_varget 473 fmaskredx = reform(byte(res), /over) 474 fmaskredx = fmaskredx MOD 2 475 ENDELSE 465 IF ncdf_varid(cdfid, 'fmask') NE -1 THEN BEGIN 466 varinq = ncdf_varinq(cdfid, 'fmask') 467 name = varinq.name 468 IF micromask NE -1 THEN BEGIN 469 @read_ncdf_varget 470 IF jpk EQ 1 THEN res = reform(res, jpi, 1, jpk, /over) 471 fmaskredx = transpose(temporary(res), [1, 0, 2]) 472 fmaskredx = reform(binary(fmaskredx), 8*ny, nx, nz, /over) 473 fmaskredx = transpose(temporary(fmaskredx), [1, 0, 2]) 474 fmaskredx = reform(fmaskredx[*, yyy1 MOD 8: 8*ny - 8 + yyy2 MOD 8, *]) 475 ; 476 iyminmesh = iyminmeshtrue 477 key_stride = key_stridetrue 478 ENDIF ELSE BEGIN 479 @read_ncdf_varget 480 fmaskredx = reform(byte(res), /over) 481 fmaskredx = fmaskredx MOD 2 482 ENDELSE 483 ENDIF ELSE fmaskredx = bytarr(jpi, jpk) 476 484 ;------------------------------------------------------- 477 485 ; 1d arrays
Note: See TracChangeset
for help on using the changeset viewer.