Changeset 359 for trunk


Ignore:
Timestamp:
06/05/08 15:06:39 (16 years ago)
Author:
smasson
Message:

default u/v/fmask definition when not existing

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SRC/Grid/ncdf_meshread.pro

    r327 r359  
    403403  ENDELSE 
    404404; 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) 
    419421; 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) 
    432436; 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) 
    458464; 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) 
    476484;------------------------------------------------------- 
    477485; 1d arrays 
Note: See TracChangeset for help on using the changeset viewer.