% % Rotate the grid by -37 degrees longitude % rlon = -37.0; gvars = { 'XC','YC','DXF','DYF','RA','XG','YG','DXV', ... 'DYU','RAZ','DXC','DYC','RAW','RAS','DXG','DYG' }; i = 1; for i = [ 1:5 ] fbname = sprintf('llc_p90_%d',i); eval([ '!cp ' fbname '.nc ' fbname '_rot.nc' ]); nc = netcdf([ fbname '_rot.nc' ],'write'); nxp1 = length( nc('Xp1') ); nx = nxp1 - 1; nyp1 = length( nc('Yp1') ); ny = nyp1 - 1; XCo = []; XGo = []; XCo = nc{'XC'}(:); XGo = nc{'XG'}(:); XC = XCo + rlon; XG = XGo + rlon; icp = find( XC(:) < -180.0 ); XC(icp) = XC(icp) + 360.0; icm = find( XC(:) > 180.0 ); XC(icm) = XC(icm) - 360.0; igp = find( XG(:) < -180.0 ); XG(icp) = XG(icp) + 360.0; igm = find( XG(:) > 180.0 ); XG(icm) = XG(icm) - 360.0; nc{'XC'}(:) = XC(:); nc{'XG'}(:) = XG(:); gid = fopen([ fbname '.mitgrid' ], 'r', 'ieee-be'); tmp = reshape(fread(gid,inf,'real*8',0,'ieee-be'),[nxp1*nyp1,16]); XC = tmp(:,1) + rlon; XG = tmp(:,6) + rlon; icp = find( XC(:) < -180.0 ); XC(icp) = XC(icp) + 360.0; icm = find( XC(:) > 180.0 ); XC(icm) = XC(icm) - 360.0; igp = find( XG(:) < -180.0 ); XG(icp) = XG(icp) + 360.0; igm = find( XG(:) > 180.0 ); XG(icm) = XG(icm) - 360.0; tmp(:,1) = XC; tmp(:,6) = XG; fclose( gid ); gid = fopen([ fbname '_rot.mitgrid' ], 'w', 'ieee-be'); fwrite(gid,tmp,'real*8'); fclose( gid ); end