/[MITgcm]/MITgcm_contrib/gael/matlab_class/gcmfaces_IO/process2nctiles.m
ViewVC logotype

Diff of /MITgcm_contrib/gael/matlab_class/gcmfaces_IO/process2nctiles.m

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

revision 1.4 by gforget, Mon Feb 3 14:28:52 2014 UTC revision 1.6 by gforget, Mon Feb 3 20:20:47 2014 UTC
# Line 16  function []=process2nctiles(dirModel,fil Line 16  function []=process2nctiles(dirModel,fil
16    
17  gcmfaces_global;  gcmfaces_global;
18    
19    %listFiles={'state_2d_set1','state_2d_set2','state_3d_set1','state_3d_set2'};
20    %listFiles={'trsp_3d_set1','trsp_3d_set2','trsp_3d_set3'};
21    %for ff=1:length(listFiles); process2nctiles('iter12/',listFiles{ff},[],[90 90]); end;
22    
23  %directory names  %directory names
24  listDirs={'STATE/','TRSP/'};  listDirs={'STATE/','TRSP/'};
25  filAvailDiag=[dirModel 'available_diagnostics.log'];  filAvailDiag=[dirModel 'available_diagnostics.log'];
# Line 68  if length(irec)~=1; error('field not in Line 72  if length(irec)~=1; error('field not in
72  %read time series  %read time series
73  myDiag=rdmds2gcmfaces([dirIn fileModel '*'],NaN,'rec',irec);  myDiag=rdmds2gcmfaces([dirIn fileModel '*'],NaN,'rec',irec);
74    
75  %ancilliary fields for netcdf file  %set ancilliary time variable
76  nn=length(size(myDiag{1}));  nn=length(size(myDiag{1}));
77  tim=[1:size(myDiag{1},nn)];  nn=size(myDiag{1},nn);
78  descr=nameDiag;  %tim=[1:nn];
79    tim=[1992*ones(nn,1) [1:nn]' 15*ones(nn,1)];
80    tim=datenum(tim)-datenum([1992 1 0]);
81    timUnits='days since 1992-1-1 0:0:0';
82    
83  %get units and long name from available_diagnostics.log  %get units and long name from available_diagnostics.log
84  [avail_diag]=read_avail_diag(filAvailDiag,nameDiag);  [avail_diag]=read_avail_diag(filAvailDiag,nameDiag);
# Line 88  myFile=[myFile '/' nameDiag];%second ins Line 95  myFile=[myFile '/' nameDiag];%second ins
95  %get grid params  %get grid params
96  [grid_diag]=set_grid_diag(avail_diag);  [grid_diag]=set_grid_diag(avail_diag);
97    
98    %apply mask, and convert to land mask
99    msk=grid_diag.msk;
100    if length(size(myDiag{1}))==3;
101      msk=repmat(msk,[1 1 size(myDiag{1},3)]);
102    end;
103    for kk=1:size(myDiag{1},4);
104      myDiag(:,:,:,kk)=myDiag(:,:,:,kk).*msk;
105    end;
106    clear msk;
107    %
108    land=isnan(grid_diag.msk);
109    
110    %set 'coord' attribute
111    if avail_diag.nr~=1;
112      coord='lon lat dep tim';
113    else;
114      coord='lon lat tim';
115    end;
116    
117  %create netcdf file using write2nctiles (works only with old matlab, thus far ...)  %create netcdf file using write2nctiles (works only with old matlab, thus far ...)
118  doCreate=1;  doCreate=1;
119  dimlist=write2nctiles(myFile,myDiag,doCreate,{'tileNo',tileNo},...  dimlist=write2nctiles(myFile,myDiag,doCreate,{'tileNo',tileNo},...
120      {'fldName',nameDiag},{'longName',avail_diag.longNameDiag},...      {'fldName',nameDiag},{'longName',avail_diag.longNameDiag},...
121      {'units',avail_diag.units},{'descr',descr},{'rdm',rdm});      {'units',avail_diag.units},{'descr',nameDiag},{'coord',coord},{'rdm',rdm});
122    
123  %determine relevant dimensions  %determine relevant dimensions
124  for ff=1:length(dimlist);  for ff=1:length(dimlist);
# Line 112  doCreate=0; Line 138  doCreate=0;
138    
139  %now add fields  %now add fields
140  write2nctiles(myFile,tim,doCreate,{'tileNo',tileNo},...  write2nctiles(myFile,tim,doCreate,{'tileNo',tileNo},...
141    {'fldName','month'},{'longName','month index starting Jan. 1992'},...    {'fldName','tim'},{'longName','time'},...
142    {'units',''},{'dimIn',dim.tim});    {'units',timUnits},{'dimIn',dim.tim});
143  write2nctiles(myFile,grid_diag.lon,doCreate,{'tileNo',tileNo},...  write2nctiles(myFile,grid_diag.lon,doCreate,{'tileNo',tileNo},...
144    {'fldName','longitude'},{'units',''},{'dimIn',dim.twoD});    {'fldName','lon'},{'units','degrees_east'},{'dimIn',dim.twoD});
145  write2nctiles(myFile,grid_diag.lat,doCreate,{'tileNo',tileNo},...  write2nctiles(myFile,grid_diag.lat,doCreate,{'tileNo',tileNo},...
146    {'fldName','latitude'},{'units',''},{'dimIn',dim.twoD});    {'fldName','lat'},{'units','degrees_north'},{'dimIn',dim.twoD});
147  write2nctiles(myFile,grid_diag.msk,doCreate,{'tileNo',tileNo},...  write2nctiles(myFile,grid_diag.msk,doCreate,{'tileNo',tileNo},...
148    {'fldName','landmask'},{'units',''},...    {'fldName','land'},{'units','1'},{'longName','land mask'},{'dimIn',dim.threeD});
   {'longName','land mask'},{'dimIn',dim.threeD});  
149  write2nctiles(myFile,grid_diag.RAC,doCreate,{'tileNo',tileNo},...  write2nctiles(myFile,grid_diag.RAC,doCreate,{'tileNo',tileNo},...
150    {'fldName','cellarea'},{'units','m^2'},...    {'fldName','area'},{'units','m^2'},{'longName','grid cell area'},{'dimIn',dim.twoD});
   {'longName','grid cell area'},{'dimIn',dim.twoD});  
151  if isfield(grid_diag,'dep');  if isfield(grid_diag,'dep');
152      write2nctiles(myFile,grid_diag.dep,doCreate,{'tileNo',tileNo},...      write2nctiles(myFile,grid_diag.dep,doCreate,{'tileNo',tileNo},...
153        {'fldName','depth'},{'units','m'},{'dimIn',dim.dep});        {'fldName','dep'},{'units','m'},{'dimIn',dim.dep});
154      write2nctiles(myFile,grid_diag.dz,doCreate,{'tileNo',tileNo},...      write2nctiles(myFile,grid_diag.dz,doCreate,{'tileNo',tileNo},...
155        {'fldName','cellthick'},{'units','m'},{'dimIn',dim.dep});        {'fldName','thic'},{'units','m'},{'dimIn',dim.dep});
156  end;  end;
157    
158  end;%for vv=1:length(listFlds);  end;%for vv=1:length(listFlds);

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.6

  ViewVC Help
Powered by ViewVC 1.1.22