Changeset 435 for trunk/SRC


Ignore:
Timestamp:
06/23/10 10:06:05 (14 years ago)
Author:
smasson
Message:

update computegrid for closea domain

File:
1 edited

Legend:

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

    r421 r435  
    11091109; 
    11101110  IF jpi GT 2 AND jpj GT 2 AND NOT keyword_set(plain) $ 
    1111      AND ixminmesh EQ 0l AND ixmaxmesh eq jpiglo-1 $ 
    1112      AND iyminmesh EQ 0l AND iymaxmesh eq jpjglo-1 $ 
     1111;;      AND ixminmesh EQ 0l AND ixmaxmesh eq jpiglo-1 $ 
     1112;;      AND iyminmesh EQ 0l AND iymaxmesh eq jpjglo-1 $ 
    11131113     AND total(tmask[*, 0, *]) EQ 0 AND total(tmask[*, jpj-1, *]) EQ 0 $ 
    11141114     AND total(tmask[0, *, *]) EQ 0 AND total(tmask[jpi-1, *, *]) EQ 0 THEN BEGIN 
    1115         xminmesh = 1 
    1116         xmaxmesh = -1 
    1117         yminmesh = 1 
    1118         ymaxmesh = -1 
    1119         computegrid, XAXIS = glamt, YAXIS = gphit, ZAXIS = zaxis $ 
    1120                      , MASK = mask, GLAMBOUNDARY = glamboundary $ 
    1121                      , XMINMESH = xminmesh, XMAXMESH = xmaxmesh $ 
    1122                      , YMINMESH = yminmesh, YMAXMESH = ymaxmesh $ 
    1123                      , ZMINMESH = zminmesh, ZMAXMESH = zmaxmesh $ 
    1124                      , ONEARTH = onearth, PERIODIC = periodic $ 
    1125                      , PLAIN = plain, SHIFT = shift, STRIDE = stride $ 
    1126                      , FULLCGRID = fullcgrid, XYINDEX = xyindex $ 
    1127                      , UBASE2TBASE = ubase2tbase, VBASE2TBASE = vbase2tbase $ 
    1128                      , FBASE2TBASE = fbase2tbase, STRCALLING = strcalling $ 
    1129                      , ROMSH = romsh, _extra = ex 
    1130         return 
     1115    IF NOT keyword_set(key_periodic) THEN BEGIN  
     1116      xminmesh = ixminmesh + 1 
     1117      xmaxmesh = ixmaxmesh - 1 
     1118    ENDIF 
     1119    yminmesh = iyminmesh + 1 
     1120    ymaxmesh = iymaxmesh - 1 
     1121; come back to the original grid before calling computegrid with the 
     1122; new parameters... 
     1123    IF keyword_set(yreverse) THEN BEGIN 
     1124      gphit = reverse(gphit, 2) 
     1125      glamt = reverse(glamt, 2) 
     1126      tmask = reverse(tmask, 2)     
     1127      IF jpk EQ 1 THEN tmask = reform(tmask, jpi, jpj, jpk, /over) 
     1128    ENDIF 
     1129    IF keyword_set(zreverse) THEN BEGIN 
     1130      zaxis = reverse(zaxis) 
     1131      tmask = reverse(tmask, 3) 
     1132      IF jpk EQ 1 THEN tmask = reform(tmask, jpi, jpj, jpk, /over) 
     1133    ENDIF 
     1134    IF key_shift NE 0 THEN BEGIN 
     1135      glamt = shift(glamt, -key_shift, 0) 
     1136      gphit = shift(gphit, -key_shift, 0) 
     1137      tmask = shift(tmask, -key_shift, 0, 0) 
     1138      IF jpk EQ 1 THEN tmask = reform(tmask, jpi, jpj, jpk, /over) 
     1139    ENDIF 
     1140    IF ixminmesh NE 0 THEN BEGIN 
     1141      glamt = [fltarr(ixminmesh, jpj), glamt] 
     1142      gphit = [fltarr(ixminmesh, jpj), gphit] 
     1143      tmask = [fltarr(ixminmesh, jpj), tmask] 
     1144      jpi = jpi+ixminmesh 
     1145      IF jpk EQ 1 THEN tmask = reform(tmask, jpi, jpj, jpk, /over) 
     1146    ENDIF 
     1147    IF ixmaxmesh NE jpiglo-1 THEN BEGIN 
     1148      glamt = [glamt, fltarr(jpiglo-1-ixmaxmesh, jpj)] 
     1149      gphit = [gphit, fltarr(jpiglo-1-ixmaxmesh, jpj)] 
     1150      tmask = [tmask, fltarr(jpiglo-1-ixmaxmesh, jpj)] 
     1151      jpi = jpi+jpiglo-1-ixmaxmesh 
     1152      IF jpk EQ 1 THEN tmask = reform(tmask, jpi, jpj, jpk, /over) 
     1153    ENDIF 
     1154    IF iyminmesh NE 0 THEN BEGIN 
     1155      glamt = [[fltarr(jpi, iyminmesh)], [glamt]] 
     1156      gphit = [[fltarr(jpi, iyminmesh)], [gphit]] 
     1157      tmask = [[fltarr(jpi, iyminmesh)], [tmask]] 
     1158      jpj = jpj+iyminmesh 
     1159      IF jpk EQ 1 THEN tmask = reform(tmask, jpi, jpj, jpk, /over) 
     1160    ENDIF 
     1161    IF iymaxmesh NE jpjglo-1 THEN BEGIN 
     1162      glamt = [[glamt], [fltarr(jpi, jpjglo-1-iymaxmesh)]] 
     1163      gphit = [[gphit], [fltarr(jpi, jpjglo-1-iymaxmesh)]] 
     1164      tmask = [[tmask], [fltarr(jpi, jpjglo-1-iymaxmesh)]] 
     1165      jpj = jpj+jpjglo-1-iymaxmesh 
     1166      IF jpk EQ 1 THEN tmask = reform(tmask, jpi, jpj, jpk, /over) 
     1167    ENDIF 
     1168    computegrid, XAXIS = glamt, YAXIS = gphit, ZAXIS = zaxis $ 
     1169                 , MASK = tmask, GLAMBOUNDARY = glamboundary $ 
     1170                 , XMINMESH = xminmesh, XMAXMESH = xmaxmesh $ 
     1171                 , YMINMESH = yminmesh, YMAXMESH = ymaxmesh $ 
     1172                 , ZMINMESH = zminmesh, ZMAXMESH = zmaxmesh $ 
     1173                 , ONEARTH = onearth, PERIODIC = key_periodic $ 
     1174                 , PLAIN = plain, SHIFT = key_shift, STRIDE = key_stride $ 
     1175                 , FULLCGRID = fullcgrid, XYINDEX = xyindex $ 
     1176                 , UBASE2TBASE = ubase2tbase, VBASE2TBASE = vbase2tbase $ 
     1177                 , FBASE2TBASE = fbase2tbase, STRCALLING = strcalling $ 
     1178                 , ROMSH = romsh, _extra = ex 
     1179    return 
    11311180  ENDIF 
    11321181; 
Note: See TracChangeset for help on using the changeset viewer.