% extract 25-Jul-2012 to 31-Oct-2012
% lats 10.5S-7S, lons 171W-168W
% Samoan Passage (small domain) for regional run

% define desired region
NX=936; NY=1062; NZ=90;
region_name='Box13';
minlat=-10.5;
maxlat=-7;
minlon=-171;
maxlon=-168;
mints=dte2ts('01-May-2012',25,2011,9,10);
maxts=dte2ts('14-Nov-2012',25,2011,9,10);

% extract indices for desired region
pin='~dmenemen/llc_4320/regions/Boxes/Box12/';
pout=['~dmenemen/llc_4320/regions/Boxes/' region_name '/'];
SUF1=['_' int2str(NX) 'x' int2str(NY)];
SUF2=[SUF1 'x' int2str(NZ)];
XC=readbin([pin 'grid/XC' SUF1],[NX NY]);
YC=readbin([pin 'grid/YC' SUF1],[NX NY]);
ix=find(XC(:,1)>=minlon&XC(:,1)<=maxlon);
jx=find(YC(1,:)>=minlat&YC(1,:)<=maxlat);
kx=1:NZ;

% Get and save grid information
eval(['mkdir ' pout 'grid'])
eval(['cd ' pout 'grid'])
suf1=['_' int2str(length(ix)) 'x' int2str(length(jx))];
suf2=[suf1 'x' int2str(length(kx))];
for fnm={'Depth','RAC','XC','YC','hFacC','XG','YG', ...
         'RAZ','DXC','DYC','DXV','DYU','DXG','DYG'}
    switch fnm{1}
      case{'hFacC'}
        fin=[pin 'grid/' fnm{1} SUF2];
        fld=read_ijk(fin,ix,jx,kx,NX,NY,NZ);
        fout=[fnm{1} suf2];
      otherwise
        fin=[pin 'grid/' fnm{1} SUF1];
        fld=read_ijk(fin,ix,jx,1,NX,NY,NZ);
        fout=[fnm{1} suf1];
    end
    writebin(fout,fld);
end

% get and save regional Eta and PhiBot
suf3='_10609.6859.1_936.1062.1';
for fnm={'Eta','PhiBot'}
    eval(['mkdir ' pout fnm{1}])
    eval(['cd ' pout fnm{1}])
    for ts=mints:144:maxts
        ts_str=myint2str(ts,10);
        fin=[pin fnm{1} '/' ts_str '_' fnm{1} suf3];
        fld=read_ijk(fin,ix,jx,1,NX,NY,1);
        fout=[fnm{1} suf1 '.' ts_str];
        writebin(fout,fld);
    end
end

% get and save regional S/T/U/W
suf3='_10609.6859.1_936.1062.90';
for fnm={'Salt','Theta','U','W'}
    eval(['mkdir ' pout fnm{1}])
    eval(['cd ' pout fnm{1}])
    for ts=mints:144:maxts
        ts_str=myint2str(ts,10);
        fin=[pin fnm{1} '/' ts_str '_' fnm{1} suf3];
        fld=read_ijk(fin,ix,jx,kx,NX,NY,NZ);
        fout=[fnm{1} suf2 '.' ts_str];
        writebin(fout,fld);
    end
end

% get and save regional V
suf3='_10609.6858.1_936.1062.90_Neg';
for fnm={'V'}
    eval(['mkdir ' pout fnm{1}])
    eval(['cd ' pout fnm{1}])
    for ts=mints:144:maxts
        ts_str=myint2str(ts,10);
        fin=[pin fnm{1} '/' ts_str '_' fnm{1} suf3];
        fld=read_ijk(fin,ix,jx,kx,NX,NY,NZ);
        fout=[fnm{1} suf2 '.' ts_str];
        writebin(fout,fld);
    end
end
