14 |
|
|
15 |
gcmfaces_global; |
gcmfaces_global; |
16 |
|
|
|
fprintf('to do list : embed README in global attributes\n'); |
|
|
fprintf('to do list : create tim variable\n'); |
|
|
|
|
17 |
%directory names |
%directory names |
18 |
listDirs={'STATE/','TRSP/'}; |
listDirs={'STATE/','TRSP/'}; |
19 |
filAvailDiag=[dirModel 'available_diagnostics.log']; |
filAvailDiag=[dirModel 'available_diagnostics.log']; |
20 |
|
filReadme=[dirModel 'README']; |
21 |
dirOut=[dirModel 'nctiles/']; |
dirOut=[dirModel 'nctiles/']; |
22 |
if ~isdir(dirOut); mkdir(dirOut); end; |
if ~isdir(dirOut); mkdir(dirOut); end; |
23 |
|
|
59 |
myDiag=rdmds2gcmfaces([dirIn fileModel '*'],NaN,'rec',irec); |
myDiag=rdmds2gcmfaces([dirIn fileModel '*'],NaN,'rec',irec); |
60 |
|
|
61 |
%ancilliary fields for netcdf file |
%ancilliary fields for netcdf file |
62 |
tim=[1:size(myDiag{1},3)]; |
nn=length(size(myDiag{1})); |
63 |
timName='month index'; |
tim=[1:size(myDiag{1},nn)]; |
64 |
descr=nameDiag; |
descr=nameDiag; |
65 |
|
|
66 |
%get units and long name from available_diagnostics.log |
%get units and long name from available_diagnostics.log |
67 |
[avail_diag]=read_avail_diag(filAvailDiag,nameDiag); |
[avail_diag]=read_avail_diag(filAvailDiag,nameDiag); |
68 |
|
|
69 |
|
%get description of estimate from README |
70 |
|
[rdm]=read_readme(filReadme); |
71 |
|
disp(rdm'); |
72 |
|
|
73 |
%convert to MITgcm format (90x1170 array) |
%convert to MITgcm format (90x1170 array) |
74 |
myFile=[dirOut nameDiag]; |
myFile=[dirOut nameDiag]; |
75 |
|
|
80 |
doCreate=1; |
doCreate=1; |
81 |
dimOut=write2nctiles(myFile,myDiag,doCreate,... |
dimOut=write2nctiles(myFile,myDiag,doCreate,... |
82 |
{'fldName',nameDiag},{'longName',avail_diag.longNameDiag},... |
{'fldName',nameDiag},{'longName',avail_diag.longNameDiag},... |
83 |
{'units',avail_diag.units},{'descr',descr}); |
{'units',avail_diag.units},{'descr',descr},{'rdm',rdm}); |
84 |
|
|
85 |
%prepare to add fields |
%prepare to add fields |
86 |
doCreate=0; |
doCreate=0; |
87 |
|
|
88 |
%determine relevant dimensions (note the reverse order) |
%determine relevant dimensions (note the reverse order) |
89 |
for ff=1:mygrid.nFaces; |
for ff=1:mygrid.nFaces; |
90 |
|
dimtim{ff}={dimOut{ff}{1}}; |
91 |
dim2d{ff}={dimOut{ff}{end-1:end}}; |
dim2d{ff}={dimOut{ff}{end-1:end}}; |
92 |
if avail_diag.nr~=1; |
if avail_diag.nr~=1; |
93 |
dimmsk{ff}={dimOut{ff}{end-2:end}}; |
dimmsk{ff}={dimOut{ff}{end-2:end}}; |
99 |
end; |
end; |
100 |
|
|
101 |
%now add fields |
%now add fields |
102 |
|
write2nctiles(myFile,tim,doCreate,{'fldName','month'},... |
103 |
|
{'longName','month index starting Jan. 1992'},... |
104 |
|
{'units',''},{'dimIn',dimtim}); |
105 |
write2nctiles(myFile,grid_diag.lon,doCreate,... |
write2nctiles(myFile,grid_diag.lon,doCreate,... |
106 |
{'fldName','longitude'},{'units',''},{'dimIn',dim2d}); |
{'fldName','longitude'},{'units',''},{'dimIn',dim2d}); |
107 |
write2nctiles(myFile,grid_diag.lat,doCreate,... |
write2nctiles(myFile,grid_diag.lat,doCreate,... |
150 |
|
|
151 |
%% |
%% |
152 |
|
|
153 |
|
function [rdm]=read_readme(filReadme); |
154 |
|
|
155 |
|
gcmfaces_global; |
156 |
|
|
157 |
|
rdm=[]; |
158 |
|
|
159 |
|
fid=fopen(filReadme,'rt'); |
160 |
|
while ~feof(fid); |
161 |
|
nn=length(rdm); |
162 |
|
rdm{nn+1} = fgetl(fid); |
163 |
|
end; |
164 |
|
fclose(fid); |
165 |
|
|
166 |
|
%% |
167 |
|
|
168 |
function [avail_diag]=read_avail_diag(filAvailDiag,nameDiag); |
function [avail_diag]=read_avail_diag(filAvailDiag,nameDiag); |
169 |
|
|
170 |
gcmfaces_global; |
gcmfaces_global; |