/[MITgcm]/MITgcm_contrib/enderton/Diagnostics/DiagLoadGradsData.m
ViewVC logotype

Diff of /MITgcm_contrib/enderton/Diagnostics/DiagLoadGradsData.m

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.2 by enderton, Mon Jan 31 19:58:15 2005 UTC revision 1.4 by molod, Tue Jun 28 21:33:51 2005 UTC
# Line 5  function [data,xax,yax,zax,months,time,d Line 5  function [data,xax,yax,zax,months,time,d
5  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6  %                          Parse table file                               %  %                          Parse table file                               %
7  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8    ShiftData = 0;
9  format = 'NONSEQUENTIAL';  format = 'NONSEQUENTIAL';
10    
11  tablfile = [dad,'/',Grads,'.tabl'];  tablfile = [dad,'/',Grads];
12  file = textread(tablfile,'%s','delimiter','\n','whitespace','');  file = textread(tablfile,'%s','delimiter','\n','whitespace','');
13    
14  for iline = 1:length(file)  for iline = 1:length(file)
# Line 27  for iline = 1:length(file) Line 27  for iline = 1:length(file)
27          inc = str2num(tokens{5});          inc = str2num(tokens{5});
28          xax = [ini:inc:ini+(num-1)*inc];          xax = [ini:inc:ini+(num-1)*inc];
29          if min(xax) >= 0 && max(xax) > 180          if min(xax) >= 0 && max(xax) > 180
30              xax = xax - 180;              ShiftData = 1;
31          end          end
32          nx = length(xax);          nx = length(xax);
33      end      end
# Line 66  for iline = 1:length(file) Line 66  for iline = 1:length(file)
66          end          end
67          if length(ini) == 13          if length(ini) == 13
68              monchar=ini(9:11);              monchar=ini(9:11);
69            elseif length(ini)==7
70                monchar=ini(1:3);
71            else
72             error('Cannot parse TDEF correctly');
73          end          end
74          if     isequal(monchar,'JAN'), inimonth = 1;          if     isequal(monchar,'JAN'), inimonth = 1;
75          elseif isequal(monchar,'FEB'), inimonth = 2;          elseif isequal(monchar,'FEB'), inimonth = 2;
# Line 99  for iline = 1:length(file) Line 103  for iline = 1:length(file)
103      end      end
104            
105      if isequal(tokens{1},'FORMAT')      if isequal(tokens{1},'FORMAT')
106          if isequal(tokens{2},'SEQUENTIAL')          if isequal(tokens{2},'SEQUENTIAL') | isequal(tokens{2},'sequential')
107              format = 'SEQUENTIAL';              format = 'SEQUENTIAL';
108          else          else
109              disp(['Unrecognized grads FORMAT:  ',tokens{2}]);              disp(['Unrecognized grads FORMAT:  ',tokens{2}]);
# Line 139  tol = 1e-5; Line 143  tol = 1e-5;
143  fid=fopen(datafile,'r','b');  fid=fopen(datafile,'r','b');
144  data = fread(fid,'real*4');  data = fread(fid,'real*4');
145  fclose(fid);  fclose(fid);
146  if isequal(format,'SEQUENTIAL')  if isequal(format,'SEQUENTIAL') | isequal(format,'sequential')
147      index=true([nx*ny*nz*nv*nt+2*nv*nt,1]);      index=true([nx*ny*nz*nv*nt+2*nv*nt,1]);
148      index([1:nx*ny*nz+2:end])=false;      index([1:nx*ny*nz+2:end])=false;
149      index([2:nx*ny*nz+2:end])=false;      index([2:nx*ny*nz+2:end])=false;
# Line 147  if isequal(format,'SEQUENTIAL') Line 151  if isequal(format,'SEQUENTIAL')
151  end  end
152  data = reshape(data,[nx,ny,nz,nv,nt]);  data = reshape(data,[nx,ny,nz,nv,nt]);
153  data = squeeze(data(:,:,:,ivar,:));  data = squeeze(data(:,:,:,ivar,:));
 data( abs((data-undef)/undef) < tol ) = NaN;  
154    data( abs((data-undef)/undef) < tol ) = NaN;
155    if ShiftData
156        indexWestHemi = xax>=180;
157        indexEastHemi = xax<180;
158        data = cat(1,data(indexWestHemi,:,:),data(indexEastHemi,:,:));
159        xax = cat(2,xax(indexWestHemi)-360,xax(indexEastHemi));
160    end
161    datatmp(:,:,inimonth:num+inimonth-1) = data;
162    data=datatmp;

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.22