Changeset 458


Ignore:
Timestamp:
04/12/11 09:45:09 (13 years ago)
Author:
smasson
Message:

supress call to execute in ncdf_meshread

File:
1 edited

Legend:

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

    r454 r458  
    324324    name = varinq.name 
    325325@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 
    329350  ENDFOR 
    330 ; for compatibility with old versions of meshmask/partial steps 
    331 ; change e3[tw]p to e3[tw]_ps 
    332   IF n_elements(e3tp) NE 0 THEN e3t_ps = temporary(e3tp) 
    333   IF n_elements(e3wp) NE 0 THEN e3w_ps = temporary(e3wp) 
    334351; in the case of key_stride ne [1, 1, 1] redefine f points 
    335352; coordinates: they must be in the middle of 3 T points 
     
    532549  IF (where(allvarname EQ 'e3t_0'))[0] NE -1 THEN fnamevar = ['e3t_0', 'e3w_0', 'gdept_0', 'gdepw_0'] $ 
    533550  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 
    536552    varinq = ncdf_varinq(cdfid, fnamevar[i]) 
    537553    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] 
    553557    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 
    561569  ENDFOR 
    562570;------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.