function []=gcmfaces_lines_zonal(varargin); %object: define the set of quasi longitudinal lines % along which transports will integrated; % LATS_MASKS that will be added to mygrid. % LONS_MASKS that will be added to mygrid. %optional input: % LATS_VAL is the latitudes vector ([-89:89]' by default) % LONS_VAL is the latitudes vector ([-179.5:179.5]' by default) gcmfaces_global; if nargin>0; LATS_VAL=varargin{1}; else; LATS_VAL=[-89:89]'; end; if nargin>1; LONS_VAL=varargin{2}; else; LONS_VAL=[-179.5:179.5]'; end; if iscell(LONS_VAL); warning('gcmfaces_lines_zonal now takes LONS_VAL as 2nd argument'); LONS_VAL=[-179.5:179.5]'; end; MSKS_NAM={'mskCint','mskCedge','mskWedge','mskSedge'}; for iy=1:length(LATS_VAL); mskCint=1*(mygrid.YC>=LATS_VAL(iy)); [mskCedge,mskWedge,mskSedge]=gcmfaces_edge_mask(mskCint); for im=1:length(MSKS_NAM); eval(['tmp1.' MSKS_NAM{im} '=' MSKS_NAM{im} ';']); end; tmp1.lat=LATS_VAL(iy); %store: if iy==1; LATS_MASKS=tmp1; else; LATS_MASKS(iy)=tmp1; end; end; d2r=pi/180; for iy=1:length(LONS_VAL); mskCint=1*(sin(d2r*(mygrid.XC-LONS_VAL(iy)))>=0); [mskCedge,mskWedge,mskSedge]=gcmfaces_edge_mask(mskCint); tmp1=1*(cos(d2r*(mygrid.XC-LONS_VAL(iy)))>0); mskCedge=mskCedge.*tmp1; tmp1=1*(cos(d2r*(mygrid.XG-LONS_VAL(iy)))>0); mskWedge=mskWedge.*tmp1; tmp1=1*(cos(d2r*(mygrid.XC-LONS_VAL(iy)))>0); mskSedge=mskSedge.*tmp1; clear tmp1; for im=1:length(MSKS_NAM); eval(['tmp1.' MSKS_NAM{im} '=' MSKS_NAM{im} ';']); end; tmp1.lon=LONS_VAL(iy); %store: if iy==1; LONS_MASKS=tmp1; else; LONS_MASKS(iy)=tmp1; end; end; mygrid.LATS_MASKS=LATS_MASKS; mygrid.LONS_MASKS=LONS_MASKS; mygrid.LATS=[mygrid.LATS_MASKS.lat]'; mygrid.LONS=[mygrid.LONS_MASKS.lon]';