--- MITgcm_contrib/enderton/Diagnostics/DiagLoadGradsData.m 2005/01/31 19:58:15 1.2 +++ MITgcm_contrib/enderton/Diagnostics/DiagLoadGradsData.m 2005/06/28 21:33:51 1.4 @@ -5,10 +5,10 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Parse table file % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - +ShiftData = 0; format = 'NONSEQUENTIAL'; -tablfile = [dad,'/',Grads,'.tabl']; +tablfile = [dad,'/',Grads]; file = textread(tablfile,'%s','delimiter','\n','whitespace',''); for iline = 1:length(file) @@ -27,7 +27,7 @@ inc = str2num(tokens{5}); xax = [ini:inc:ini+(num-1)*inc]; if min(xax) >= 0 && max(xax) > 180 - xax = xax - 180; + ShiftData = 1; end nx = length(xax); end @@ -66,6 +66,10 @@ end if length(ini) == 13 monchar=ini(9:11); + elseif length(ini)==7 + monchar=ini(1:3); + else + error('Cannot parse TDEF correctly'); end if isequal(monchar,'JAN'), inimonth = 1; elseif isequal(monchar,'FEB'), inimonth = 2; @@ -99,7 +103,7 @@ end if isequal(tokens{1},'FORMAT') - if isequal(tokens{2},'SEQUENTIAL') + if isequal(tokens{2},'SEQUENTIAL') | isequal(tokens{2},'sequential') format = 'SEQUENTIAL'; else disp(['Unrecognized grads FORMAT: ',tokens{2}]); @@ -139,7 +143,7 @@ fid=fopen(datafile,'r','b'); data = fread(fid,'real*4'); fclose(fid); -if isequal(format,'SEQUENTIAL') +if isequal(format,'SEQUENTIAL') | isequal(format,'sequential') index=true([nx*ny*nz*nv*nt+2*nv*nt,1]); index([1:nx*ny*nz+2:end])=false; index([2:nx*ny*nz+2:end])=false; @@ -147,4 +151,12 @@ end data = reshape(data,[nx,ny,nz,nv,nt]); data = squeeze(data(:,:,:,ivar,:)); -data( abs((data-undef)/undef) < tol ) = NaN; \ No newline at end of file +data( abs((data-undef)/undef) < tol ) = NaN; +if ShiftData + indexWestHemi = xax>=180; + indexEastHemi = xax<180; + data = cat(1,data(indexWestHemi,:,:),data(indexEastHemi,:,:)); + xax = cat(2,xax(indexWestHemi)-360,xax(indexEastHemi)); +end +datatmp(:,:,inimonth:num+inimonth-1) = data; +data=datatmp;