1 |
% |
2 |
% Rotate the grid by -37 degrees longitude |
3 |
% |
4 |
|
5 |
rlon = -37.0; |
6 |
|
7 |
gvars = { 'XC','YC','DXF','DYF','RA','XG','YG','DXV', ... |
8 |
'DYU','RAZ','DXC','DYC','RAW','RAS','DXG','DYG' }; |
9 |
|
10 |
i = 1; |
11 |
for i = [ 1:5 ] |
12 |
|
13 |
fbname = sprintf('llc_p90_%d',i); |
14 |
eval([ '!cp ' fbname '.nc ' fbname '_rot.nc' ]); |
15 |
|
16 |
nc = netcdf([ fbname '_rot.nc' ],'write'); |
17 |
nxp1 = length( nc('Xp1') ); nx = nxp1 - 1; |
18 |
nyp1 = length( nc('Yp1') ); ny = nyp1 - 1; |
19 |
XCo = []; |
20 |
XGo = []; |
21 |
XCo = nc{'XC'}(:); |
22 |
XGo = nc{'XG'}(:); |
23 |
XC = XCo + rlon; |
24 |
XG = XGo + rlon; |
25 |
icp = find( XC(:) < -180.0 ); XC(icp) = XC(icp) + 360.0; |
26 |
icm = find( XC(:) > 180.0 ); XC(icm) = XC(icm) - 360.0; |
27 |
igp = find( XG(:) < -180.0 ); XG(icp) = XG(icp) + 360.0; |
28 |
igm = find( XG(:) > 180.0 ); XG(icm) = XG(icm) - 360.0; |
29 |
nc{'XC'}(:) = XC(:); |
30 |
nc{'XG'}(:) = XG(:); |
31 |
|
32 |
gid = fopen([ fbname '.mitgrid' ], 'r', 'ieee-be'); |
33 |
tmp = reshape(fread(gid,inf,'real*8',0,'ieee-be'),[nxp1*nyp1,16]); |
34 |
XC = tmp(:,1) + rlon; |
35 |
XG = tmp(:,6) + rlon; |
36 |
icp = find( XC(:) < -180.0 ); XC(icp) = XC(icp) + 360.0; |
37 |
icm = find( XC(:) > 180.0 ); XC(icm) = XC(icm) - 360.0; |
38 |
igp = find( XG(:) < -180.0 ); XG(icp) = XG(icp) + 360.0; |
39 |
igm = find( XG(:) > 180.0 ); XG(icm) = XG(icm) - 360.0; |
40 |
tmp(:,1) = XC; |
41 |
tmp(:,6) = XG; |
42 |
fclose( gid ); |
43 |
|
44 |
gid = fopen([ fbname '_rot.mitgrid' ], 'w', 'ieee-be'); |
45 |
fwrite(gid,tmp,'real*8'); |
46 |
fclose( gid ); |
47 |
|
48 |
end |
49 |
|