--- MITgcm_contrib/enderton/PeriodicCoupling/MakePcForcing.m 2006/03/09 00:23:38 1.2 +++ 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) + period,outDir,FocnRoot,focnRoot,iterO,iterA,... + dtC,dtA,gWeight,FocnOnly,InspectFocn,Inspectfocn) % Make fields for forcing ocean component of periodic coupling. @@ -22,13 +22,13 @@ % Load Data % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -datacpl = rdmnc(cplFiles,'iter','HFtave','TXtave','TYtave','FWtave','T'); -dataatm = rdmnc(atmFiles,'iter','THETA' ,'ALBVISDF','RADSWG' ,... - 'DWNLWG' ,'TS' ,'QS' ,... - 'WINDS' ,'PRECON' ,'PRECLS','T'); -datagrd = rdmnc(gridFiles,'rA','XG','YG','XC','YC','HFacC'); +% datacpl = rdmnc(cplFiles,'iter','HFtave','TXtave','TYtave','FWtave','T'); +% dataatm = rdmnc(atmFiles,'iter','THETA' ,'ALBVISDF','RADSWG' ,... +% 'DWNLWG' ,'TS' ,'QS' ,... +% 'WINDS' ,'PRECON' ,'PRECLS','T'); +% datagrd = rdmnc(gridFiles,'rA','XG','YG','XC','YC','HFacC'); % save('DataPerCpl.mat','datacpl','dataatm','datagrd'); -% load('DataPerCpl.mat'); +load('DataPerCpl.mat'); nc = size(datagrd.rA,2); RAC = datagrd.rA; mask = datagrd.HFacC(:,:,1); @@ -57,23 +57,30 @@ % Select Coupled Field Data % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -if ~isequal(datacpl.iter,dataatm.iter./8) - disp('datacpl.iter'); datacpl.iter - disp('dataatm.iter/8'); dataatm.iter./8 +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(iter,datacpl.iter); -index = ismember(datacpl.iter,iter); +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)); @@ -126,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));