% Plot shifted cube fields in six panel layout function [facet_list] = shift_lon() global bdata global facet_list global xCshift global nr nb ng % "facet" sizes table % llc nr=90; ng=90; nb=360; % cs32 %% nr=32; %% ng=32; %% nb=32; facet_list=[]; clear facet_list; facet_list(1).fsize=[nr nb]; facet_list(2).fsize=[ng nb]; facet_list(3).fsize=[nr ng]; facet_list(4).fsize=[nb nr]; facet_list(5).fsize=[nb ng]; facet_list(6).fsize=[ng nr]; % 1 - read in grid parameters from .mitgrid files % (use .nc files later) % llc bdir='.'; % cs32 %% bdir='cs32'; fl=dir(bdir); ngrid=0; for f=1:length(fl) n=fl(f).name; a=regexp(n,'.*\.mitgrid$','match'); if length(a) == 1 ngrid=ngrid+1; gl(ngrid)=a; end end ngrid; % % if length(gl) ~= length(facet_list) fprintf(1,'ERROR: Number of .mitgrid files does not match number of expected facets\n'); return end for g=1:length(gl) fn=sprintf('%s/%s',bdir,gl{g}); fid=fopen(fn,'r','ieee-be'); s1=facet_list(g).fsize(1); s2=facet_list(g).fsize(2); % Read the sixteen values % xc, xg, yc, yg, dxC, dyC, dxF, dyF, dxG, dyG, dxV, dyU, rA, rAz, rAw, rAs, AngleCS, AngleSN % xc, yc, dxF, dyF, rA, xG, yG, dxV, dyU, rAz, dxC, dyC, rAw, rAs, dxG, dyG, AngleCS, AngleSN facet_list(g).xC = fread(fid,[s1+1 s2+1],'float64'); facet_list(g).yC = fread(fid,[s1+1 s2+1],'float64'); facet_list(g).dxF = fread(fid,[s1+1 s2+1],'float64'); facet_list(g).dyF = fread(fid,[s1+1 s2+1],'float64'); facet_list(g).rA = fread(fid,[s1+1 s2+1],'float64'); facet_list(g).xG = fread(fid,[s1+1 s2+1],'float64'); facet_list(g).yG = fread(fid,[s1+1 s2+1],'float64'); facet_list(g).dxV = fread(fid,[s1+1 s2+1],'float64'); facet_list(g).dyU = fread(fid,[s1+1 s2+1],'float64'); facet_list(g).rAz = fread(fid,[s1+1 s2+1],'float64'); facet_list(g).dxC = fread(fid,[s1+1 s2+1],'float64'); facet_list(g).dyC = fread(fid,[s1+1 s2+1],'float64'); facet_list(g).rAw = fread(fid,[s1+1 s2+1],'float64'); facet_list(g).rAs = fread(fid,[s1+1 s2+1],'float64'); facet_list(g).dxG = fread(fid,[s1+1 s2+1],'float64'); facet_list(g).dyG = fread(fid,[s1+1 s2+1],'float64'); facet_list(g).AngleCS = fread(fid,[s1+1 s2+1],'float64'); facet_list(g).AngleSN = fread(fid,[s1+1 s2+1],'float64'); fclose(fid); end % Make grid plots to check things look good so far figure(1); clf %%% mkcubeplot( 'xc',{facet_list(:).xC} , 1. ); %%% mkcubeplot( 'yc',{facet_list(:).yC} , 1. ); %%% mkcubeplot('dxF',{facet_list(:).dxF}, 1./1e3 ); %%% mkcubeplot('dyF',{facet_list(:).dyF}, 1./1e3 ); %%% mkcubeplot( 'rA',{facet_list(:).rA} , 1./1e6 ) %%% mkcubeplot( 'xg',{facet_list(:).xG} , 1. ); %%% mkcubeplot( 'yg',{facet_list(:).yG} , 1. ); %%% mkcubeplot('dxV',{facet_list(:).dxV}, 1./1e3 ); %%% mkcubeplot('dyU',{facet_list(:).dyU}, 1./1e3 ); %%% mkcubeplot('rAz',{facet_list(:).rAz}, 1./1e6 ); %%% mkcubeplot('dxC',{facet_list(:).dxC}, 1./1e3 ); %%% mkcubeplot('dyC',{facet_list(:).dyC}, 1./1e3 ); %%% mkcubeplot('rAw',{facet_list(:).rAw}, 1./1e6 ); %%% mkcubeplot('rAs',{facet_list(:).rAs}, 1./1e6 ); %%% mkcubeplot('dxG',{facet_list(:).dxG}, 1./1e3 ); %%% mkcubeplot('dyG',{facet_list(:).dyG}, 1./1e3 ); a={facet_list(:).xC}; size(a,2) for ia=1:size(a,2) phi=a{ia}; phi=phi-37.; i180=find(phi>180.); phi(i180)=phi(i180)-360.; i180=find(phi<-180.); phi(i180)=phi(i180)+360.; a{ia}=phi; xCshift=a; end mkcubeplot( 'xCshift',a , 1. ); a={facet_list(:).xG}; size(a,2) for ia=1:size(a,2) phi=a{ia}; phi=phi-37.; i180=find(phi>180.); phi(i180)=phi(i180)-360.; i180=find(phi<-180.); phi(i180)=phi(i180)+360.; a{ia}=phi; xGshift=a; end mkcubeplot( 'xGshift',a , 1. ); for g=1:6 fn=sprintf('%s_%d.mitgrid','llc90x90x360_lonshift',g); fid=fopen(fn,'w','ieee-be'); s1=facet_list(g).fsize(1); s2=facet_list(g).fsize(2); %fwrite(fid,facet_list(g).xC, 'float64'); fwrite(fid,xCshift{g}, 'float64'); fwrite(fid,facet_list(g).yC, 'float64'); fwrite(fid,facet_list(g).dxF,'float64'); fwrite(fid,facet_list(g).dyF,'float64'); fwrite(fid,facet_list(g).rA, 'float64'); %fwrite(fid,facet_list(g).xG, 'float64'); fwrite(fid,xGshift{g}, 'float64'); fwrite(fid,facet_list(g).yG, 'float64'); fwrite(fid,facet_list(g).dxV,'float64'); fwrite(fid,facet_list(g).dyU,'float64'); fwrite(fid,facet_list(g).rAz,'float64'); fwrite(fid,facet_list(g).dxC,'float64'); fwrite(fid,facet_list(g).dyC,'float64'); fwrite(fid,facet_list(g).rAw,'float64'); fwrite(fid,facet_list(g).rAs,'float64'); fwrite(fid,facet_list(g).dxG,'float64'); fwrite(fid,facet_list(g).dyG,'float64'); fwrite(fid,facet_list(g).AngleCS,'float64'); fwrite(fid,facet_list(g).AngleSN,'float64'); % Read the sixteen values % xc, xg, yc, yg, dxC, dyC, dxF, dyF, dxG, dyG, dxV, dyU, rA, rAz, rAw, rAs, AngleCS, AngleSN % xc, yc, dxF, dyF, rA, xG, yG, dxV, dyU, rAz, dxC, dyC, rAw, rAs, dxG, dyG, AngleCS, AngleSN %% facet_list(g).xC = fread(fid,[s1+1 s2+1],'float64'); %% facet_list(g).yC = fread(fid,[s1+1 s2+1],'float64'); %% facet_list(g).dxF = fread(fid,[s1+1 s2+1],'float64'); %% facet_list(g).dyF = fread(fid,[s1+1 s2+1],'float64'); %% facet_list(g).rA = fread(fid,[s1+1 s2+1],'float64'); %% facet_list(g).xG = fread(fid,[s1+1 s2+1],'float64'); %% facet_list(g).yG = fread(fid,[s1+1 s2+1],'float64'); %% facet_list(g).dxV = fread(fid,[s1+1 s2+1],'float64'); %% facet_list(g).dyU = fread(fid,[s1+1 s2+1],'float64'); %% facet_list(g).rAz = fread(fid,[s1+1 s2+1],'float64'); %% facet_list(g).dxC = fread(fid,[s1+1 s2+1],'float64'); %% facet_list(g).dyC = fread(fid,[s1+1 s2+1],'float64'); %% facet_list(g).rAw = fread(fid,[s1+1 s2+1],'float64'); %% facet_list(g).rAs = fread(fid,[s1+1 s2+1],'float64'); %% facet_list(g).dxG = fread(fid,[s1+1 s2+1],'float64'); %% facet_list(g).dyG = fread(fid,[s1+1 s2+1],'float64'); %% facet_list(g).AngleCS = fread(fid,[s1+1 s2+1],'float64'); %% facet_list(g).AngleSN = fread(fid,[s1+1 s2+1],'float64'); fclose(fid); end end function [] = mkcubeplot(ptit,temp,sf) ploc=[9 10 6 7 3 4]; phil=[]; for g=1:length(temp) phi=temp{g}*sf; phil=[ phil phi(:)']; end for g=1:length(temp) phi=temp{g}*sf; phi=flipud(phi'); subplot(3,4,ploc(g)); imagesc(phi);caxis([min(phil) max(phil)]); end subplot(3,4,1); axis off caxis([min(phil) max(phil)]);colorbar; title(ptit); drawnow pnam=sprintf('%s.jpeg',ptit); print('-djpeg100',pnam); end