| 1 |
% Plot shifted cube fields in six panel layout |
| 2 |
function [facet_list] = shift_lon() |
| 3 |
global bdata |
| 4 |
global facet_list |
| 5 |
global xCshift |
| 6 |
global nr nb ng |
| 7 |
|
| 8 |
% "facet" sizes table |
| 9 |
% llc |
| 10 |
nr=90; |
| 11 |
ng=90; |
| 12 |
nb=360; |
| 13 |
% cs32 |
| 14 |
%% nr=32; |
| 15 |
%% ng=32; |
| 16 |
%% nb=32; |
| 17 |
facet_list=[]; |
| 18 |
clear facet_list; |
| 19 |
facet_list(1).fsize=[nr nb]; |
| 20 |
facet_list(2).fsize=[ng nb]; |
| 21 |
facet_list(3).fsize=[nr ng]; |
| 22 |
facet_list(4).fsize=[nb nr]; |
| 23 |
facet_list(5).fsize=[nb ng]; |
| 24 |
facet_list(6).fsize=[ng nr]; |
| 25 |
|
| 26 |
|
| 27 |
% 1 - read in grid parameters from .mitgrid files |
| 28 |
% (use .nc files later) |
| 29 |
% llc |
| 30 |
bdir='.'; |
| 31 |
% cs32 |
| 32 |
%% bdir='cs32'; |
| 33 |
fl=dir(bdir); |
| 34 |
ngrid=0; |
| 35 |
for f=1:length(fl) |
| 36 |
n=fl(f).name; |
| 37 |
a=regexp(n,'.*\.mitgrid$','match'); |
| 38 |
if length(a) == 1 |
| 39 |
ngrid=ngrid+1; |
| 40 |
gl(ngrid)=a; |
| 41 |
end |
| 42 |
end |
| 43 |
ngrid; |
| 44 |
|
| 45 |
% |
| 46 |
% |
| 47 |
if length(gl) ~= length(facet_list) |
| 48 |
fprintf(1,'ERROR: Number of .mitgrid files does not match number of expected facets\n'); |
| 49 |
return |
| 50 |
end |
| 51 |
for g=1:length(gl) |
| 52 |
fn=sprintf('%s/%s',bdir,gl{g}); |
| 53 |
fid=fopen(fn,'r','ieee-be'); |
| 54 |
s1=facet_list(g).fsize(1); |
| 55 |
s2=facet_list(g).fsize(2); |
| 56 |
% Read the sixteen values |
| 57 |
% xc, xg, yc, yg, dxC, dyC, dxF, dyF, dxG, dyG, dxV, dyU, rA, rAz, rAw, rAs, AngleCS, AngleSN |
| 58 |
% xc, yc, dxF, dyF, rA, xG, yG, dxV, dyU, rAz, dxC, dyC, rAw, rAs, dxG, dyG, AngleCS, AngleSN |
| 59 |
facet_list(g).xC = fread(fid,[s1+1 s2+1],'float64'); |
| 60 |
facet_list(g).yC = fread(fid,[s1+1 s2+1],'float64'); |
| 61 |
facet_list(g).dxF = fread(fid,[s1+1 s2+1],'float64'); |
| 62 |
facet_list(g).dyF = fread(fid,[s1+1 s2+1],'float64'); |
| 63 |
facet_list(g).rA = fread(fid,[s1+1 s2+1],'float64'); |
| 64 |
facet_list(g).xG = fread(fid,[s1+1 s2+1],'float64'); |
| 65 |
facet_list(g).yG = fread(fid,[s1+1 s2+1],'float64'); |
| 66 |
facet_list(g).dxV = fread(fid,[s1+1 s2+1],'float64'); |
| 67 |
facet_list(g).dyU = fread(fid,[s1+1 s2+1],'float64'); |
| 68 |
facet_list(g).rAz = fread(fid,[s1+1 s2+1],'float64'); |
| 69 |
facet_list(g).dxC = fread(fid,[s1+1 s2+1],'float64'); |
| 70 |
facet_list(g).dyC = fread(fid,[s1+1 s2+1],'float64'); |
| 71 |
facet_list(g).rAw = fread(fid,[s1+1 s2+1],'float64'); |
| 72 |
facet_list(g).rAs = fread(fid,[s1+1 s2+1],'float64'); |
| 73 |
facet_list(g).dxG = fread(fid,[s1+1 s2+1],'float64'); |
| 74 |
facet_list(g).dyG = fread(fid,[s1+1 s2+1],'float64'); |
| 75 |
facet_list(g).AngleCS = fread(fid,[s1+1 s2+1],'float64'); |
| 76 |
facet_list(g).AngleSN = fread(fid,[s1+1 s2+1],'float64'); |
| 77 |
fclose(fid); |
| 78 |
end |
| 79 |
|
| 80 |
% Make grid plots to check things look good so far |
| 81 |
figure(1); clf |
| 82 |
%%% mkcubeplot( 'xc',{facet_list(:).xC} , 1. ); |
| 83 |
%%% mkcubeplot( 'yc',{facet_list(:).yC} , 1. ); |
| 84 |
%%% mkcubeplot('dxF',{facet_list(:).dxF}, 1./1e3 ); |
| 85 |
%%% mkcubeplot('dyF',{facet_list(:).dyF}, 1./1e3 ); |
| 86 |
%%% mkcubeplot( 'rA',{facet_list(:).rA} , 1./1e6 ) |
| 87 |
%%% mkcubeplot( 'xg',{facet_list(:).xG} , 1. ); |
| 88 |
%%% mkcubeplot( 'yg',{facet_list(:).yG} , 1. ); |
| 89 |
%%% mkcubeplot('dxV',{facet_list(:).dxV}, 1./1e3 ); |
| 90 |
%%% mkcubeplot('dyU',{facet_list(:).dyU}, 1./1e3 ); |
| 91 |
%%% mkcubeplot('rAz',{facet_list(:).rAz}, 1./1e6 ); |
| 92 |
%%% mkcubeplot('dxC',{facet_list(:).dxC}, 1./1e3 ); |
| 93 |
%%% mkcubeplot('dyC',{facet_list(:).dyC}, 1./1e3 ); |
| 94 |
%%% mkcubeplot('rAw',{facet_list(:).rAw}, 1./1e6 ); |
| 95 |
%%% mkcubeplot('rAs',{facet_list(:).rAs}, 1./1e6 ); |
| 96 |
%%% mkcubeplot('dxG',{facet_list(:).dxG}, 1./1e3 ); |
| 97 |
%%% mkcubeplot('dyG',{facet_list(:).dyG}, 1./1e3 ); |
| 98 |
|
| 99 |
a={facet_list(:).xC}; |
| 100 |
size(a,2) |
| 101 |
for ia=1:size(a,2) |
| 102 |
phi=a{ia}; |
| 103 |
phi=phi-37.; |
| 104 |
i180=find(phi>180.); |
| 105 |
phi(i180)=phi(i180)-360.; |
| 106 |
i180=find(phi<-180.); |
| 107 |
phi(i180)=phi(i180)+360.; |
| 108 |
a{ia}=phi; |
| 109 |
xCshift=a; |
| 110 |
end |
| 111 |
mkcubeplot( 'xCshift',a , 1. ); |
| 112 |
|
| 113 |
a={facet_list(:).xG}; |
| 114 |
size(a,2) |
| 115 |
for ia=1:size(a,2) |
| 116 |
phi=a{ia}; |
| 117 |
phi=phi-37.; |
| 118 |
i180=find(phi>180.); |
| 119 |
phi(i180)=phi(i180)-360.; |
| 120 |
i180=find(phi<-180.); |
| 121 |
phi(i180)=phi(i180)+360.; |
| 122 |
a{ia}=phi; |
| 123 |
xGshift=a; |
| 124 |
end |
| 125 |
mkcubeplot( 'xGshift',a , 1. ); |
| 126 |
|
| 127 |
for g=1:6 |
| 128 |
fn=sprintf('%s_%d.mitgrid','llc90x90x360_lonshift',g); |
| 129 |
fid=fopen(fn,'w','ieee-be'); |
| 130 |
s1=facet_list(g).fsize(1); |
| 131 |
s2=facet_list(g).fsize(2); |
| 132 |
%fwrite(fid,facet_list(g).xC, 'float64'); |
| 133 |
fwrite(fid,xCshift{g}, 'float64'); |
| 134 |
fwrite(fid,facet_list(g).yC, 'float64'); |
| 135 |
fwrite(fid,facet_list(g).dxF,'float64'); |
| 136 |
fwrite(fid,facet_list(g).dyF,'float64'); |
| 137 |
fwrite(fid,facet_list(g).rA, 'float64'); |
| 138 |
%fwrite(fid,facet_list(g).xG, 'float64'); |
| 139 |
fwrite(fid,xGshift{g}, 'float64'); |
| 140 |
fwrite(fid,facet_list(g).yG, 'float64'); |
| 141 |
fwrite(fid,facet_list(g).dxV,'float64'); |
| 142 |
fwrite(fid,facet_list(g).dyU,'float64'); |
| 143 |
fwrite(fid,facet_list(g).rAz,'float64'); |
| 144 |
fwrite(fid,facet_list(g).dxC,'float64'); |
| 145 |
fwrite(fid,facet_list(g).dyC,'float64'); |
| 146 |
fwrite(fid,facet_list(g).rAw,'float64'); |
| 147 |
fwrite(fid,facet_list(g).rAs,'float64'); |
| 148 |
fwrite(fid,facet_list(g).dxG,'float64'); |
| 149 |
fwrite(fid,facet_list(g).dyG,'float64'); |
| 150 |
fwrite(fid,facet_list(g).AngleCS,'float64'); |
| 151 |
fwrite(fid,facet_list(g).AngleSN,'float64'); |
| 152 |
% Read the sixteen values |
| 153 |
% xc, xg, yc, yg, dxC, dyC, dxF, dyF, dxG, dyG, dxV, dyU, rA, rAz, rAw, rAs, AngleCS, AngleSN |
| 154 |
% xc, yc, dxF, dyF, rA, xG, yG, dxV, dyU, rAz, dxC, dyC, rAw, rAs, dxG, dyG, AngleCS, AngleSN |
| 155 |
%% facet_list(g).xC = fread(fid,[s1+1 s2+1],'float64'); |
| 156 |
%% facet_list(g).yC = fread(fid,[s1+1 s2+1],'float64'); |
| 157 |
%% facet_list(g).dxF = fread(fid,[s1+1 s2+1],'float64'); |
| 158 |
%% facet_list(g).dyF = fread(fid,[s1+1 s2+1],'float64'); |
| 159 |
%% facet_list(g).rA = fread(fid,[s1+1 s2+1],'float64'); |
| 160 |
%% facet_list(g).xG = fread(fid,[s1+1 s2+1],'float64'); |
| 161 |
%% facet_list(g).yG = fread(fid,[s1+1 s2+1],'float64'); |
| 162 |
%% facet_list(g).dxV = fread(fid,[s1+1 s2+1],'float64'); |
| 163 |
%% facet_list(g).dyU = fread(fid,[s1+1 s2+1],'float64'); |
| 164 |
%% facet_list(g).rAz = fread(fid,[s1+1 s2+1],'float64'); |
| 165 |
%% facet_list(g).dxC = fread(fid,[s1+1 s2+1],'float64'); |
| 166 |
%% facet_list(g).dyC = fread(fid,[s1+1 s2+1],'float64'); |
| 167 |
%% facet_list(g).rAw = fread(fid,[s1+1 s2+1],'float64'); |
| 168 |
%% facet_list(g).rAs = fread(fid,[s1+1 s2+1],'float64'); |
| 169 |
%% facet_list(g).dxG = fread(fid,[s1+1 s2+1],'float64'); |
| 170 |
%% facet_list(g).dyG = fread(fid,[s1+1 s2+1],'float64'); |
| 171 |
%% facet_list(g).AngleCS = fread(fid,[s1+1 s2+1],'float64'); |
| 172 |
%% facet_list(g).AngleSN = fread(fid,[s1+1 s2+1],'float64'); |
| 173 |
fclose(fid); |
| 174 |
end |
| 175 |
|
| 176 |
end |
| 177 |
|
| 178 |
function [] = mkcubeplot(ptit,temp,sf) |
| 179 |
ploc=[9 10 6 7 3 4]; |
| 180 |
phil=[]; |
| 181 |
for g=1:length(temp) |
| 182 |
phi=temp{g}*sf; |
| 183 |
phil=[ phil phi(:)']; |
| 184 |
end |
| 185 |
for g=1:length(temp) |
| 186 |
phi=temp{g}*sf; |
| 187 |
phi=flipud(phi'); |
| 188 |
subplot(3,4,ploc(g)); |
| 189 |
imagesc(phi);caxis([min(phil) max(phil)]); |
| 190 |
end |
| 191 |
subplot(3,4,1); |
| 192 |
axis off |
| 193 |
caxis([min(phil) max(phil)]);colorbar; |
| 194 |
title(ptit); |
| 195 |
drawnow |
| 196 |
|
| 197 |
pnam=sprintf('%s.jpeg',ptit); |
| 198 |
print('-djpeg100',pnam); |
| 199 |
|
| 200 |
end |