Changeset 226 for trunk/SRC/Grid/checkperio.pro
- Timestamp:
- 03/16/07 10:22:26 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SRC/Grid/checkperio.pro
r197 r226 8 8 ; @param file {in}{required}{type=scalar string} 9 9 ; A string giving the name of the NetCdf file 10 ; 10 ; 11 11 ; @keyword WRITE {default=0}{type=scalar: 0 or 1} 12 12 ; Define to 1 to write the good periodicity in the file. 13 ; By default print only mes age of periodicity errors13 ; By default print only message of periodicity errors 14 14 ; 15 15 ; @restrictions … … 38 38 ; @history 39 39 ; October 2006: Sebastien Masson (smasson\@locean-ipsl.upmc.fr) 40 ; 40 ; 41 41 ; @version 42 42 ; $Id$ … … 44 44 PRO checkperio, file, WRITE = write 45 45 46 IF file_test(file) EQ 0 THEN BEGIN 46 IF file_test(file) EQ 0 THEN BEGIN 47 47 print, 'file '+file+' not found' 48 48 RETURN … … 53 53 ; 54 54 dimsz = lonarr(finq.ndims) 55 FOR did = 0, finq.ndims-1 DO BEGIN 55 FOR did = 0, finq.ndims-1 DO BEGIN 56 56 ncdf_diminq, cdfid, did, name, size 57 57 dimsz[did] = size 58 58 ENDFOR 59 59 ; 60 FOR vid = 0, finq.nvars-1 DO BEGIN 60 FOR vid = 0, finq.nvars-1 DO BEGIN 61 61 vinq = ncdf_varinq(cdfid, vid) 62 62 IF vinq.ndims GE 2 THEN BEGIN … … 68 68 ; 2D VAR 69 69 ;------------------------------ 70 2:BEGIN 70 2:BEGIN 71 71 ; y periodicity (1) 72 72 CASE 1 OF … … 75 75 ncdf_varget, cdfid, vid, part2, count = [jpi-2, 1], offset = [1, jpj-3] 76 76 part2 = reverse(shift(part2, -1)) 77 IF array_equal(part1, part2) NE 1 THEN BEGIN 77 IF array_equal(part1, part2) NE 1 THEN BEGIN 78 78 print, vinq.name+' bad y periodicity (1)' 79 79 IF keyword_set(write) THEN $ … … 85 85 ncdf_varget, cdfid, vid, part2, count = [jpi-2, 1], offset = [1, jpj-2] 86 86 part2 = reverse(part2) 87 IF array_equal(part1, part2) NE 1 THEN BEGIN 87 IF array_equal(part1, part2) NE 1 THEN BEGIN 88 88 print, vinq.name+' bad y periodicity (1)' 89 89 IF keyword_set(write) THEN $ … … 99 99 ncdf_varget, cdfid, vid, part2, count = [(jpi-1)/2-2+1, 1], offset = [ 2, jpj-2] 100 100 part2 = reverse(part2) 101 IF array_equal(part1, part2) NE 1 THEN BEGIN 101 IF array_equal(part1, part2) NE 1 THEN BEGIN 102 102 print, vinq.name+' bad y periodicity (2)' 103 103 IF keyword_set(write) THEN $ … … 112 112 ncdf_varget, cdfid, vid, part1, count = [1, jpj], offset = [0, 0] 113 113 ncdf_varget, cdfid, vid, part2, count = [1, jpj], offset = [jpi-2, 0] 114 IF array_equal(part1, part2) NE 1 THEN BEGIN 114 IF array_equal(part1, part2) NE 1 THEN BEGIN 115 115 print, vinq.name+' bad x periodicity (1)' 116 116 IF keyword_set(write) THEN $ … … 120 120 ncdf_varget, cdfid, vid, part1, count = [1, jpj], offset = [jpi-1, 0] 121 121 ncdf_varget, cdfid, vid, part2, count = [1, jpj], offset = [1, 0] 122 IF array_equal(part1, part2) NE 1 THEN BEGIN 122 IF array_equal(part1, part2) NE 1 THEN BEGIN 123 123 print, vinq.name+' bad x periodicity (2)' 124 124 IF keyword_set(write) THEN $ … … 129 129 ; 3D VAR 130 130 ;------------------------------ 131 3:BEGIN 131 3:BEGIN 132 132 jpk = vdimsz[2] 133 133 ; y periodicity (1) … … 138 138 IF jpk EQ 1 THEN part2 = reform(part2, jpi-2, 1, jpk, /over) 139 139 part2 = reverse(shift(part2, -1, 0, 0), 1) 140 IF array_equal(part1, part2) NE 1 THEN BEGIN 140 IF array_equal(part1, part2) NE 1 THEN BEGIN 141 141 print, vinq.name+' bad y periodicity (1)' 142 142 IF keyword_set(write) THEN $ … … 149 149 IF jpk EQ 1 THEN part2 = reform(part2, jpi-2, 1, jpk, /over) 150 150 part2 = reverse(part2, 1) 151 IF array_equal(part1, part2) NE 1 THEN BEGIN 151 IF array_equal(part1, part2) NE 1 THEN BEGIN 152 152 print, vinq.name+' bad y periodicity (1)' 153 153 IF keyword_set(write) THEN $ … … 163 163 ncdf_varget, cdfid, vid, part2, count = [(jpi-1)/2-2+1, 1, jpk], offset = [ 2, jpj-2, 0] 164 164 part2 = reverse(part2, 1) 165 IF array_equal(part1, part2) NE 1 THEN BEGIN 165 IF array_equal(part1, part2) NE 1 THEN BEGIN 166 166 print, vinq.name+' bad y periodicity (2)' 167 167 IF keyword_set(write) THEN $ … … 176 176 ncdf_varget, cdfid, vid, part1, count = [1, jpj, jpk], offset = [0, 0, 0] 177 177 ncdf_varget, cdfid, vid, part2, count = [1, jpj, jpk], offset = [jpi-2, 0, 0] 178 IF array_equal(part1, part2) NE 1 THEN BEGIN 178 IF array_equal(part1, part2) NE 1 THEN BEGIN 179 179 print, vinq.name+' bad x periodicity (1)' 180 180 IF keyword_set(write) THEN $ … … 184 184 ncdf_varget, cdfid, vid, part1, count = [1, jpj, jpk], offset = [jpi-1, 0, 0] 185 185 ncdf_varget, cdfid, vid, part2, count = [1, jpj, jpk], offset = [1, 0, 0] 186 IF array_equal(part1, part2) NE 1 THEN BEGIN 186 IF array_equal(part1, part2) NE 1 THEN BEGIN 187 187 print, vinq.name+' bad x periodicity (2)' 188 188 IF keyword_set(write) THEN $ … … 193 193 ; 4D VAR 194 194 ;------------------------------ 195 4:BEGIN 195 4:BEGIN 196 196 jpk = vdimsz[2] 197 197 jpt = vdimsz[3] … … 203 203 IF jpt EQ 1 THEN part2 = reform(part2, jpi-2, 1, jpk, jpt, /over) 204 204 part2 = reverse(shift(part2, -1, 0, 0, 0), 1) 205 IF array_equal(part1, part2) NE 1 THEN BEGIN 205 IF array_equal(part1, part2) NE 1 THEN BEGIN 206 206 print, vinq.name+' bad y periodicity (1)' 207 207 IF keyword_set(write) THEN $ … … 214 214 IF jpt EQ 1 THEN part2 = reform(part2, jpi-2, 1, jpk, jpt, /over) 215 215 part2 = reverse(part2, 1) 216 IF array_equal(part1, part2) NE 1 THEN BEGIN 216 IF array_equal(part1, part2) NE 1 THEN BEGIN 217 217 print, vinq.name+' bad y periodicity (1)' 218 218 IF keyword_set(write) THEN $ … … 228 228 ncdf_varget, cdfid, vid, part2, count = [(jpi-1)/2-2+1, 1, jpk, jpt], offset = [ 2, jpj-2, 0, 0] 229 229 part2 = reverse(part2, 1) 230 IF array_equal(part1, part2) NE 1 THEN BEGIN 230 IF array_equal(part1, part2) NE 1 THEN BEGIN 231 231 print, vinq.name+' bad y periodicity (2)' 232 232 IF keyword_set(write) THEN $ … … 241 241 ncdf_varget, cdfid, vid, part1, count = [1, jpj, jpk, jpt], offset = [0, 0, 0, 0] 242 242 ncdf_varget, cdfid, vid, part2, count = [1, jpj, jpk, jpt], offset = [jpi-2, 0, 0, 0] 243 IF array_equal(part1, part2) NE 1 THEN BEGIN 243 IF array_equal(part1, part2) NE 1 THEN BEGIN 244 244 print, vinq.name+' bad x periodicity (1)' 245 245 IF keyword_set(write) THEN $ … … 249 249 ncdf_varget, cdfid, vid, part1, count = [1, jpj, jpk, jpt], offset = [jpi-1, 0, 0, 0] 250 250 ncdf_varget, cdfid, vid, part2, count = [1, jpj, jpk, jpt], offset = [1, 0, 0, 0] 251 IF array_equal(part1, part2) NE 1 THEN BEGIN 251 IF array_equal(part1, part2) NE 1 THEN BEGIN 252 252 print, vinq.name+' bad x periodicity (2)' 253 253 IF keyword_set(write) THEN $ … … 257 257 ELSE:print, vinq.name+' nothing to check' 258 258 ENDCASE 259 ENDIF 259 ENDIF 260 260 ENDFOR 261 261
Note: See TracChangeset
for help on using the changeset viewer.