Changeset 458 for trunk/SRC/Grid/ncdf_meshread.pro
- Timestamp:
- 04/12/11 09:45:09 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SRC/Grid/ncdf_meshread.pro
r454 r458 324 324 name = varinq.name 325 325 @read_ncdf_varget 326 IF strmid(name, 0, 2) EQ 'e3' THEN command = namevar[i]+' = temporary(res)' $ 327 ELSE command = namevar[i]+' = float(temporary(res))' 328 nothing = execute(command) 326 CASE namevar[i] OF 327 'glamt':glamt = float(temporary(res)) 328 'glamu':glamu = float(temporary(res)) 329 'glamv':glamv = float(temporary(res)) 330 'glamf':glamf = float(temporary(res)) 331 'gphit':gphit = float(temporary(res)) 332 'gphiu':gphiu = float(temporary(res)) 333 'gphiv':gphiv = float(temporary(res)) 334 'gphif':gphif = float(temporary(res)) 335 'e1t':e1t = float(temporary(res)) 336 'e1u':e1u = float(temporary(res)) 337 'e1v':e1v = float(temporary(res)) 338 'e1f':e1f = float(temporary(res)) 339 'e2t':e2t = float(temporary(res)) 340 'e2u':e2u = float(temporary(res)) 341 'e2v':e2v = float(temporary(res)) 342 'e2f':e2f = float(temporary(res)) 343 'hdept':hdept = float(temporary(res)) 344 'hdepw':hdepw = float(temporary(res)) 345 'e3t_ps':e3t_ps = temporary(res) 346 'e3tp':e3t_ps = temporary(res) 347 'e3w_ps':e3w_ps = temporary(res) 348 'e3wp':e3w_ps = temporary(res) 349 ENDCASE 329 350 ENDFOR 330 ; for compatibility with old versions of meshmask/partial steps331 ; change e3[tw]p to e3[tw]_ps332 IF n_elements(e3tp) NE 0 THEN e3t_ps = temporary(e3tp)333 IF n_elements(e3wp) NE 0 THEN e3w_ps = temporary(e3wp)334 351 ; in the case of key_stride ne [1, 1, 1] redefine f points 335 352 ; coordinates: they must be in the middle of 3 T points … … 532 549 IF (where(allvarname EQ 'e3t_0'))[0] NE -1 THEN fnamevar = ['e3t_0', 'e3w_0', 'gdept_0', 'gdepw_0'] $ 533 550 ELSE fnamevar = ['e3t', 'e3w', 'gdept', 'gdepw'] 534 namevar = ['e3t', 'e3w', 'gdept', 'gdepw'] 535 for i = 0, n_elements(namevar)-1 do begin 551 for i = 0, n_elements(fnamevar)-1 do begin 536 552 varinq = ncdf_varinq(cdfid, fnamevar[i]) 537 553 CASE n_elements(varinq.dim) OF 538 4:BEGIN 539 command = 'ncdf_varget,cdfid,fnamevar[i],'+namevar[i] $ 540 +',offset = [0,0,izminmesh,0], count = [1,1,jpk,1]' 541 if key_stride[2] NE 1 then command = command+', stride=[1,1,key_stride[2],1]' 542 END 543 2:BEGIN 544 command = 'ncdf_varget,cdfid,fnamevar[i],'+namevar[i] $ 545 +',offset = [izminmesh,0], count = [jpk,1]' 546 if key_stride[2] NE 1 then command = command+', stride=key_stride[2]' 547 END 548 1:BEGIN 549 command = 'ncdf_varget,cdfid,fnamevar[i],'+namevar[i] $ 550 +',offset = [izminmesh], count = [jpk]' 551 if key_stride[2] NE 1 then command = command+', stride=key_stride[2]' 552 END 554 4:ncdf_varget,cdfid,fnamevar[i],tmp,offset = [0,0,izminmesh,0], count = [1,1,jpk,1], stride=[1,1,key_stride[2],1] 555 2:ncdf_varget,cdfid,fnamevar[i],tmp,offset = [izminmesh,0], count = [jpk,1], stride=[key_stride[2], 1] 556 1:ncdf_varget,cdfid,fnamevar[i],tmp,offset = [izminmesh], count = [jpk], stride=key_stride[2] 553 557 ENDCASE 554 nothing = execute(command) 555 IF strmid(fnamevar[i], 0, 2) NE 'e3' THEN BEGIN 556 command = namevar[i]+'=float('+namevar[i]+')' 557 nothing = execute(command) 558 ENDIF 559 command = 'if size('+namevar[i]+', /n_dimension) gt 0 then '+namevar[i]+' = reform('+namevar[i]+', /over)' 560 nothing = execute(command) 558 if size(tmp, /n_dimension) gt 0 then tmp = reform(tmp, /over) 559 CASE fnamevar[i] OF 560 'gdept':gdept = float(tmp) 561 'gdept_0':gdept = float(tmp) 562 'gdepw':gdepw = float(tmp) 563 'gdepw_0':gdepw = float(tmp) 564 'e3t':e3t = tmp 565 'e3t_0':e3t = tmp 566 'e3w':e3w = tmp 567 'e3w_0':e3w = tmp 568 ENDCASE 561 569 ENDFOR 562 570 ;-------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.