/[MITgcm]/MITgcm_contrib/enderton/PeriodicCoupling/MakePcForcing.m
ViewVC logotype

Diff of /MITgcm_contrib/enderton/PeriodicCoupling/MakePcForcing.m

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.2 by enderton, Thu Mar 9 00:23:38 2006 UTC revision 1.3 by enderton, Fri Jun 16 16:57:05 2006 UTC
# Line 1  Line 1 
1  function MakePcForcing(cplFiles,atmFiles,gridFiles,prevFocnFiles,...  function MakePcForcing(cplFiles,atmFiles,gridFiles,prevFocnFiles,...
2                         period,outDir,FocnRoot,focnRoot,iter,...                         period,outDir,FocnRoot,focnRoot,iterO,iterA,...
3                         dtC,gWeight,FocnOnly,InspectFocn,Inspectfocn)                         dtC,dtA,gWeight,FocnOnly,InspectFocn,Inspectfocn)
4    
5  % Make fields for forcing ocean component of periodic coupling.  % Make fields for forcing ocean component of periodic coupling.
6    
# Line 22  mkdir(outDir); Line 22  mkdir(outDir);
22  %                                 Load Data                               %  %                                 Load Data                               %
23  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
24    
25  datacpl = rdmnc(cplFiles,'iter','HFtave','TXtave','TYtave','FWtave','T');  % datacpl = rdmnc(cplFiles,'iter','HFtave','TXtave','TYtave','FWtave','T');
26  dataatm = rdmnc(atmFiles,'iter','THETA'   ,'ALBVISDF','RADSWG'  ,...  % dataatm = rdmnc(atmFiles,'iter','THETA'   ,'ALBVISDF','RADSWG'  ,...
27                                  'DWNLWG'  ,'TS'      ,'QS'      ,...  %                                 'DWNLWG'  ,'TS'      ,'QS'      ,...
28                                  'WINDS'   ,'PRECON'  ,'PRECLS','T');  %                                 'WINDS'   ,'PRECON'  ,'PRECLS','T');
29  datagrd = rdmnc(gridFiles,'rA','XG','YG','XC','YC','HFacC');  % datagrd = rdmnc(gridFiles,'rA','XG','YG','XC','YC','HFacC');
30  % save('DataPerCpl.mat','datacpl','dataatm','datagrd');  % save('DataPerCpl.mat','datacpl','dataatm','datagrd');
31  % load('DataPerCpl.mat');  load('DataPerCpl.mat');
32  nc = size(datagrd.rA,2);  nc = size(datagrd.rA,2);
33  RAC = datagrd.rA;  RAC = datagrd.rA;
34  mask = datagrd.HFacC(:,:,1);  mask = datagrd.HFacC(:,:,1);
# Line 57  end Line 57  end
57  %                      Select Coupled Field Data                          %  %                      Select Coupled Field Data                          %
58  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
59    
60  if ~isequal(datacpl.iter,dataatm.iter./8)  if ~isequal(datacpl.iter,dataatm.iter./(dtC./dtA))
61      disp('datacpl.iter');    datacpl.iter      disp('datacpl.iter');           datacpl.iter
62      disp('dataatm.iter/8');  dataatm.iter./8      disp('dataatm.iter/dt_ratio');  dataatm.iter./(dtC./dtA)
63      error('Iterations for coupled and atmospheric data do not match.');      error('Iterations for coupled and atmospheric data do not match.');
64  end  end
65  test  = ismember(iter,datacpl.iter);  test   = ismember(iterO,datacpl.iter);
66  index = ismember(datacpl.iter,iter);  indexO = ismember(datacpl.iter,iterO);
67  if ~isempty(find(test==0))  if ~isempty(find(test==0))
68      error('Specified indecies not present in cpl_tave.* files.');      error('Specified indecies not present in cpl_tave.* files.');
69    else
70        for ifield = 1:length(fieldscpl)
71            data.(fieldscpl{ifield}) = ...
72                datacpl.(fieldscpl{ifield})(1:6*nc,1:nc,indexO);
73        end
74  end  end
75  for ifield = 1:length(fieldscpl)  test   = ismember(iterA,dataatm.iter);
76      data.(fieldscpl{ifield}) = ...  indexA = ismember(dataatm.iter,iterA);
77          datacpl.(fieldscpl{ifield})(1:6*nc,1:nc,index);  if ~isempty(find(test==0))
78  end      error('Specified indecies not present in DiagAtmForcing.* files.');
79  for ifield = 1:length(fieldsatm)  else
80      data.(fieldsatm{ifield}) = ...      for ifield = 1:length(fieldsatm)
81          dataatm.(fieldsatm{ifield})(1:6*nc,1:nc,index);          data.(fieldsatm{ifield}) = ...
82                dataatm.(fieldsatm{ifield})(1:6*nc,1:nc,indexA);
83        end
84  end  end
85  % field = 'PREC';  % field = 'PREC';
86  % merccube_mod(XG,YG,dataCplSelect.(field));  % merccube_mod(XG,YG,dataCplSelect.(field));
# Line 126  end Line 133  end
133    
134  if ~FocnOnly  if ~FocnOnly
135            
136      years = iter.*dtC./31104000;      years = iterO.*dtC./31104000;
137      yrfrc = rem(years,floor(years));      yrfrc = rem(years,floor(years));
138      yrfrc(yrfrc == 0) = 1;      yrfrc(yrfrc == 0) = 1;
139      uyrfrc = sort(unique(yrfrc));      uyrfrc = sort(unique(yrfrc));

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

  ViewVC Help
Powered by ViewVC 1.1.22