--- MITgcm_contrib/enderton/PeriodicCoupling/MakePcForcing.m 2006/02/28 23:16:02 1.1 +++ MITgcm_contrib/enderton/PeriodicCoupling/MakePcForcing.m 2006/06/16 16:57:05 1.3 @@ -1,6 +1,6 @@ -function MakePcForcing(cplFiles,atmFiles,gridFiles,prevFocnFiles,period,... - outDir,FocnRoot,focnRoot,iter,... - dtC,gWeight,FocnOnly,InspectFocn,Inspectfocn) +function MakePcForcing(cplFiles,atmFiles,gridFiles,prevFocnFiles,... + period,outDir,FocnRoot,focnRoot,iterO,iterA,... + dtC,dtA,gWeight,FocnOnly,InspectFocn,Inspectfocn) % Make fields for forcing ocean component of periodic coupling. @@ -57,18 +57,30 @@ % Select Coupled Field Data % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -test = ismember(iter,datacpl.iter); -index = ismember(datacpl.iter,iter); +if ~isequal(datacpl.iter,dataatm.iter./(dtC./dtA)) + disp('datacpl.iter'); datacpl.iter + disp('dataatm.iter/dt_ratio'); dataatm.iter./(dtC./dtA) + error('Iterations for coupled and atmospheric data do not match.'); +end +test = ismember(iterO,datacpl.iter); +indexO = ismember(datacpl.iter,iterO); if ~isempty(find(test==0)) error('Specified indecies not present in cpl_tave.* files.'); +else + for ifield = 1:length(fieldscpl) + data.(fieldscpl{ifield}) = ... + datacpl.(fieldscpl{ifield})(1:6*nc,1:nc,indexO); + end end -for ifield = 1:length(fieldscpl) - data.(fieldscpl{ifield}) = ... - datacpl.(fieldscpl{ifield})(1:6*nc,1:nc,index); -end -for ifield = 1:length(fieldsatm) - data.(fieldsatm{ifield}) = ... - dataatm.(fieldsatm{ifield})(1:6*nc,1:nc,index); +test = ismember(iterA,dataatm.iter); +indexA = ismember(dataatm.iter,iterA); +if ~isempty(find(test==0)) + error('Specified indecies not present in DiagAtmForcing.* files.'); +else + for ifield = 1:length(fieldsatm) + data.(fieldsatm{ifield}) = ... + dataatm.(fieldsatm{ifield})(1:6*nc,1:nc,indexA); + end end % field = 'PREC'; % merccube_mod(XG,YG,dataCplSelect.(field)); @@ -121,7 +133,7 @@ if ~FocnOnly - years = iter.*dtC./31104000; + years = iterO.*dtC./31104000; yrfrc = rem(years,floor(years)); yrfrc(yrfrc == 0) = 1; uyrfrc = sort(unique(yrfrc));